Sonntag, 5. Juni 2011

Windows API Monitor - zur Programmanalyse

Hallo heute möchte ich euch mittels eines API Monitors zeigen, wie man man tiefe Einblicke in die Windows Systemebene erhält. Ich kenne das Programm noch von früher es wurde die Entwicklung der Version 1 im Jahre 2001 eingestellt und seit Juli 2010 als komplett neue Fassung veröffentlicht. Es befinden sich 10,000 API’s in 168 Kategorien!

rohitab bietet einen sehr guten API Monitor an, welcher die Funktionen übersichtlich präsentiert. Es wird derzeit an dem API Monitor Version zwei gearbeitet. Der API Monitor kommt in 32 Bit sowie 64 Bit daher.
Es sei angemerkt das sich mit der 32 Bit Version die Prozesse welche unter 32 Bit laufen Monitoren lassen und mit der 64 Bit Version eben 64 Bit Prozesse. Als erstes wird in der linken oberen Programmhälfte ausgewählt welche API Funktionen man überwachen möchte.

Der große API Katalog von API Monitor v2


Kategorien: 431
Variablen: 10702
DLLs: 172
APIs: 10341
COM Interfaces: 843
COM Methods: 10449


  • Administration und Mangement API
  • Component Development API
  • Data Access and Storage API
  • Delta Compression API
  • Diagnostics API
  • Documents and Printing API
  • Graphics and Multimedia API
  • Messaging and Collaboration API
  • Monitor Configuration API
  • Netcape Protable Runtime API
  • Network Security Services (NSS) API
  • Networking API
  • NT Native API
  • Office Development API
  • Security API
  • System Services API
  • Virtualization API
  • Web Development API
  • Windows Application UI Development API
  • Windows Driver Kit API
  • Windows Environment Development API
Bedienung von Windows API Monitor
Wie bereits erwähnt erst die API Funktionen aktivieren. Interessant ist z.B. System Services -> File Services oder auch Memory Management aber auch Security -> Cryptography. Wenn ihr euch für die Bereiche entschieden habt, seht ihr unten die laufenden Prozesse einfach Rechte Maustaste "Hook". Nun taucht das Programm in der Liste der "Hookes Processes" auf. Der Monitor ist jetzt aktiv. Es lassen sich auch mehrere Programme zeitgleich beobachten. Zur schnelleren Navigation sieht man die einzelnen Threads. 
Genauso verhalt es sich mit den "Services", welche allerdings Adminstrator Rechte erfordern. 

Arbeitsspeicher im Windows API Sniffer verändern
Unter "Hooked Processes" erhält man die Möglichkeit direkt im Arbeitsspeicher den Prozess oder seine Programmbibliotheken zu editieren. Das Programm erlaubt sogar geschützten Speicher zugänglich zu machen!
Wahlloses editieren im Speicher führt zwangsläufig zu einem Programmcrash. 

Arbeiten mit Breakpoints 
Es lassen sich Unterbrechnungspunkte setzen "Before Call", "After Call", "On Error", "On Exception". Was beeindruckend ist, ist die Funktion den API Call bevor er aufgerufen wird abzufangen! Man hat die Möglichkeit in dem Fenster für die Breakpoints auf "Break" zu klicken, dies führt eine injection im Thread durch und markiert die Position. Mit Ollydbg2 oder Win32DASM (Trail) sich an den Prozess anhängen "Attach" und im Call Stack sollte soetwas wie apimonitor-drv-x86.sys stehen...Using API Monitor to crack copy protected software.

Kleine Netzwerkanalyse mit rohitab WinAPI Monitor
Im API Katalog -> Network API -> Network Protocols (alles anharken) oder gleich Winsock 2 (mswsock.dll). Nun zum Beispiel Miranda überwachen und man sieht z.B. die gesendeten und verschickten Nachrichten unter "recv" sieht man im Hex / String Buffer die Daten!

Fazit
Praktisches Tool um z.B. seine eigene Anwendung zu überprüfen ob dort Fehler auftauchen, aber auch im das Dateisystem zu überwachen wie es Tools wie FileMon oder RegMon von Sysinternals machen! Der API Monitor funktioniert natürlich Programmiersprachen übergreifend und ermöglicht einen guten Einblick in welcher Reihenfolge und an welchen Stellen im Speicher (offset) die Befehle ausgeführt werden! Auch zur Cryptoanalyse stelle ich mir das interessant vor. Wollen wir mal schauen was es morgen neues gibt :-)


Keine Kommentare:

Kommentar veröffentlichen

Related Posts Plugin for WordPress, Blogger...