Deutsch
Forum

Welche Dll's lädt ein Programm?

 
- Seite 1 -



Frank
Abbing
Ein kleines Tool von mir auf API-Hooking Basis. In einer Listbox werden alle Dlls aufgelistest, die gerade von Programmen geladen wurden.

Einfach Exe starten und dann irgendwelche Programme starten. Deren Dlls sollten jetzt gelistet werden und es pieps kurz.
Bitte testet mal, ob es noch irgendwo hakt.

3 kB
Hochgeladen:22.03.2007
Ladeanzahl101
Herunterladen
 
22.03.2007  
 



 
- Seite 2 -



Frank
Abbing
Mache ich ja, darum haut es eben nicht hin. Für 2000 existieren also nur 3 Trampolin-Bytes, unter XP sind es 5. Darum crashed es beim Rücksprung in die originale Routine.
Entweder berücksichtige ich jetzt die jeweilige NT-Version, oder ich baue die API komplett in meinen Code ein. Die zweite Möglichkeit ist flexibler.
 
23.03.2007  
 




Frank
Abbing
Diese neue Version müsste auch mit 2000 funktionieren. Testen konnte ich es aber nicht.

3 kB
Hochgeladen:23.03.2007
Ladeanzahl29
Herunterladen
 
23.03.2007  
 



Frank Abbing
Mache ich ja, darum haut es eben nicht hin. Für 2000 existieren also nur 3 Trampolin-Bytes, unter XP sind es 5. Darum crashed es beim Rücksprung in die originale Routine.
Entweder berücksichtige ich jetzt die jeweilige NT-Version, oder ich baue die API komplett in meinen Code ein. Die zweite Möglichkeit ist flexibler.


Hallo Frank...

Mal ein paar Gedanken:

Warum berücksichtigst du nicht die Opcodes? So viele sind das doch nicht. Manche haben eben nur ein Byte, andere dagegen sogar 6 (wenn eine Adresse angesprungen wird):
Also: Festellen, wo gültiger Opcode endet.

Warum kopierst du dann nicht den (gültigen) Opcode aus der DLL und springst ihn dann einfach an? Du müssest nur schauen, dass der Stack wieder passt. An das Ende des kopierten Opcodes schreibst du wieder den Opcode einer weiteren Call Anweisung.
Auch in der API muss dann aber der Stack wieder angepasst werden (schau mal bei QEditor, Opcodes, RET und CALL).

PS: Testergebnis folgt noch.
 
24.03.2007  
 



Hallo Frank...

Leider unter Windows2000 noch das selbe Problem:
Die erste DLL wird angezeigt, danach verabschiedet sich das gehookte Programm mit Fehlermeldung.

Als ich mir Shatter angesehen habe, habe ich ziemlich viel mit API rumgefuscht. Das was da passiert, kommt mir sehr bekannt vor - da sscheint etwas mit dem Stack nicht mehr zu stimmen und die API holt sich einen Pointer vom Stack, der nicht auf eine gültige Adresse verweist. Schau mal nach, ob da vielleicht irgendwo etwas (vielleicht mit Call) auf den Stack geschoben wird, was da vor dem Ausführen der restlichen API erst wieder runtergenommen werden muss. XP validiert solche Pointer scheinbar ( läuft ja auch stabiler), 2000 reagiert immer mit Absturz - nur so eine Vermutung durch meine früheren Basteleien.
 
24.03.2007  
 




Frank
Abbing
Oh, hab ein Byte dezimal ausgewertet, anstatt hexadezimal...
Im Anhang die neue Version, die jetzt hoffentlich läuft.


Warum berücksichtigst du nicht die Opcodes? So viele sind das doch nicht. Manche haben eben nur ein Byte, andere dagegen sogar 6 (wenn eine Adresse angesprungen wird):
Also: Festellen, wo gültiger Opcode endet.


Ich schreibe einen Jmp-Befehl an den Anfang der API, der in meine Routine springt. Die überschriebenen Bytes/Opcodes arbeite ich dann am Anfang meiner Routine da. Das Problem war, das 2000 und XP verschiedene Anfänge besitzen. MS fördert API-Hooking ab WindowsXP und hat deswegen alle APIs so modifiziert (das sinnlose MOV EDI,EDI eingefügt) , dass die ersten 5 Bytes nun leicht durch einen Jmp ersetzt werden können. Später springe ich wieder hinter den Jmp-Befehl und lasse die API normal weiterlaufen. Das ist die bei Hackern übliche Technik, die sich Trampolin nennt (eben hin und zurück springen).
Anstelle eines Jumps kann auch ein PUSH sprungaddr / RETN benutzt werden. Diese Technik besitzt aber ein 6 bytes grosses Trampolin.

Diese Methode kannst du auch leicht benutzen, um nachzuprüfen, ob eine API gehookt ist oder nicht. Ist das erste ausgelesene Byte der API nicht $55 und nicht $8B, ist die API mit Sicherheit Inline-gehooked.

3 kB
Hochgeladen:24.03.2007
Ladeanzahl28
Herunterladen
 
24.03.2007  
 



Hallo Frank...

Interessante Infos! Schau dir bitte mal die API AreFileApisAnsi aus der Kernel32 an.



Ist das erste ausgelesene Byte der API nicht $55 und nicht $8B, ist die API mit Sicherheit Inline-gehooked.


Ich denke mal, ich würde evtl. etwas hinbekommen, was auf allen Systemen und bei allen APIs läuft. Wenn ich mal ganz große Lust habe, setze ich mich da vielleicht auch mal dran.
 
24.03.2007  
 



Hallo Frank, geht jetzt auch unter Windows2000. Hatte nur ein Problem mit dem Profan Editor, das liegt aber wohl nicht an dir.

Sehr interessant, was Windows da macht! Schaue ich mir noch näher an.
 
24.03.2007  
 




Frank
Abbing
Super! Unter Vista funktioniert es ebenfalls, das hat Rolf vorhin getestet. Vista hat die gleichen Dll-Startcodes wie XP.

Jetzt kann ich Sinnvolles programmieren, nachdem der Rahmen nun steht.
 
24.03.2007  
 




Dieter
Zornow
Ich denke dein Tool ist auch gefährlich, ich habe ja das Problem, dass bei mir immer
nur die psapi.dll angezeigt wird sonst nichts. Die Dll ist eine Microsoft DLL und kam mit SP2 sie wird unter anderem von Explorer und meinem Virenprogramm geladen.
Beim Testen deiner letzten Version hat meine Firewall gemeldet, dass mein Virenprogramm beendet werden muss, da Speicher überschrieben wurde. Ist also nicht ganz ungefährlich die Sache. Ich denke dass mein Problem mit dem Virenscanner und der Firewall zusammen hängt.

Virenscanner Antivir, Firewall Outpost

Gruß

Dieter
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
25.03.2007  
 




Frank
Abbing
Dieter, vielleicht hookt ein anderes Programm ebenfalls in deinem System. Könnte sein, dass du einen Trojaner eingefangen hast?

AntiVir ist ja nun nicht sonderlich sicher. Ich war nicht zufrieden damit, nachdem es mehrmals Trojaner bei mir durchgelassen hat und mein System allgemein auch belastete.
Ich benutze nur noch Avast, das bemerkt man gar nicht und bislang ist noch nichts durchgekommen.
 
25.03.2007  
 



Hallo Dieter...

Jetzt wirds interessant! Was sagt dein System zu ProcessHider auf meiner Homepage? Bidde bidde mal testen!
Zuerst aber mal mit ProcHunter schauen, ob da vielleicht doch ein Trojaner (RootKit) sein Unwesen treibt.
 
25.03.2007  
 




Dieter
Zornow
Hallo Frank,

Ich habe mein System nun mit einigen Root Kit Scannern getestet, keiner hat etwas
gefunden. Es gibt nur noch den Treiber meiner Firewall der 2 Fubktionen hooked.
Das Verhalten mit deinem Tool ist auch reproduzierbar. Du überschreibst durch deine Hooks einen Speicherbereich und wenn dort gerade ein Programm ist oder diesen benutzt, stürzt es ab deshalb denke ich nicht ungefährlich das ganze.

@Andeas,
Ich habe deinen Process-Hider mal probiert, soweit ich es beurteilen kann läuft alles
normal. Mir ist nur aufgefallen, wenn ich eine ganz normale Anwendung verstecke
ist sie nur deinem Tool unsichtbar auch nach refresh. Der Taskmanager zeigt sie weiter ganz normal unter Anwendungen an.
Ich habe auch Prochunter ausprobiert, er zeigt keine versteckten Processe. Nur wenn
ich Native ID abhake werden rote Einträge gefunden, da aber nur die ID und keine
Namen angezeigt werden, auch nicht in der Editbox, kann ich sie nicht zuordnen. Ich habe mir einige Rootkit Scanner aus dem Internet gezogen, die meisten suchen auch
nach Hooks

Gruß

Dieter
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
25.03.2007  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

3.516 Betrachtungen

Unbenanntvor 0 min.
Ernst30.04.2014
gerd17.02.2013
Unbenannt22.03.2012
Christian Hahn14.12.2011

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie