Automatisierte Signaturgenerierung für Malware-Stämme - Zynamics
Automatisierte Signaturgenerierung für Malware-Stämme - Zynamics
Automatisierte Signaturgenerierung für Malware-Stämme - Zynamics
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
2.5 Analyse von <strong>Malware</strong> 29<br />
1 #include <br />
2<br />
3 static main() {<br />
4 auto ea, x;<br />
5 for (ea = NextFunction(0); ea != BADADDR; ea = NextFunction(ea)) {<br />
6 Message("Function at %08lX: %s", ea, GetFunctionName(ea));<br />
7 x = GetFunctionFlags(ea);<br />
8 if (x & FUNC_NORET) Message(" Noret");<br />
9 if (x & FUNC_FAR) Message(" Far");<br />
10 Message("\n");<br />
11 }<br />
12 }<br />
Listing 2.8: IDC-Script <strong>für</strong> die Ausgabe einer Funktionsliste<br />
IDA Pro ist modular aufgebaut und kann mit Plugins (engl. etwa Erweiterungen) um<br />
zusätzliche Funktionalität erweitert werden, wie zum Beispiel die Unterstützung <strong>für</strong><br />
neue Prozessortypen oder Dateiformate <strong>für</strong> ausführbare Programme. Technisch handelt<br />
es sich dabei um spät gebundene Programmbibliotheken (shared libraries), die bei Bedarf<br />
aufgerufen werden. Die in den Abschnitten 2.5.2 und 4.3.1 vorgestellten Werkzeuge sind<br />
Beispiele <strong>für</strong> IDA-Pro-Plugins.<br />
Um die Plugin-Entwicklung zu unterstützen, bietet IDA Pro eine Programmierschnittstelle<br />
(Application Programming Interface, API), die von Plugins zur Bereitstellung ihrer<br />
Funktionalität aufgerufen werden kann. Fast alle über die graphische Benutzeroberfläche<br />
verfügbaren Befehle lassen sich so aufrufen. 32<br />
Für einfache Aufgaben bietet IDA Pro neben der Programmierschnittstelle eine C-ähnliche<br />
Skriptsprache an (so genannte IDC-Scripts). Listing 2.8 zeigt ein solches Skript zur<br />
Ausgabe einer Liste von Funktionen in der aktuell geladenen ausführbaren Datei. Auch<br />
hier sind viele der über die Benutzeroberfläche erreichbaren Funktionen verfügbar. 32 Für<br />
die Stapelverarbeitung von Dateien können IDC-Scripts ebenfalls verwendet werden.<br />
Eine wesentliche Erleichterung bei der Analyse von Programmen ist außerdem die automatische<br />
Analyse beim Laden von ausführbaren Dateien – IDA Pro erzeugt <strong>für</strong> jede<br />
geladene Datei eine Datenbank (IDA Database, IDB) mit Metainformationen wie zum<br />
32 Eine bemerkenswerte Ausnahme ist die Funktion zum Öffnen von Dateien. Diese lässt sich ausschließlich<br />
über die GUI aufrufen.