Einzelnen Beitrag anzeigen

Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#37

Re: Adresse einer Funktion ohne @ ermitteln (evtl über CS:IP

  Alt 17. Dez 2007, 00:02
Zitat von Zacherl:
//Edit 2: Verwende ich in den Microsoft Exen CreateThread ist der Fehler ERROR_BAD_EXE_FORMAT, verwende ich die native NtCreateThreadEx Funktion, welche erst unter Vista zur Verfügung steht, liefert SysErrorMessage: "%1 ist keine gültige Win32 Anwendung!"
Das ist das gleiche in Grün, nur einmal als Fehlercode und einmal in eine Klartextfehlermeldung übersetzt.

Zitat von Zacherl:
Ich hab mir eine Unit nach dem InMemExe Prinzip gebastelt. Vielleicht hilft es dir, wenn du den Code siehst.
Ja, ich sagte ja ich muss mir den noch anschauen.

Zitat von Zacherl:
//Edit 1: Ich bemerke grade etwas .. und zwar funktioniert der CreateThread aufruf unter Vista doch. Allerdings nur unter gewissen Vorraussetzungen. Zum Testen habe ich als Zielprozess die ganze Zeit notepad.exe verwendet. Jetzt habe ich testweise mal firefox.exe genommen und siehe da es funktioniert oO

Woran könnte das liegen? Ein extra Schutz für MS Dateien? Mit iexplore.exe funktioniert es auch nicht.
Das wäre nicht das erste Mal dass die Besonderheiten von MS-Exen zu seltsamen Effekten führen

Und wie ich oben schon erwähnte, müssen die Exen für diese Tauschaktion recht ähnlich sein. Auf jeden Fall muss das Characteristics-Field identisch sein. Bit 0 nicht gesetzt heisst zum Beispiel dass das File Relocations enthält. Wenn dann Exe und PE-Header dazu im Konflikt stehen, könnte das schon ausreichen. JFTR: Meine notepad.exe (XP) hat auch nicht 0x00400000 als image base sondern 0x01000000 Allerdings Characteristics 0x010f, womit teilweise erklärt sein dürfte, warum es unter XP geht, aber nicht unter Vista.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat