Aufgerufene Exe mit Ollydbg debuggen

Hallo zusammen,

ich bin gerade dabei mit Ollydbg eine exe auf einem schreibgeschützen USB-Stick zu debuggen. Leider ruft die erste Exe, die ich debugge, eine zweite Exe direkt aus einem ZIP-Verzeichnis auf dem schreibgeschützen USB-Stick auf.

Der Ollydbg läuft im degbugger nicht mehr in die zweite exe, sondern beendet den Debugmodus mit "process terminated with exit code 0".

Dies ist auch logisch, da die erste exe beendet ist. Ich möchte jetzt aber die aufgerufene Exe weiterdebuggen. Direkt mich an die exe hängen kann ich nicht, da diese im ZIP-Verzeichnis auf einem schreibgeschützen Stick liegt.

Hat jemand eine Idee? Wäre echt super, wenn jemand mir helfen kann. Danke!

Gruß
Dex24
 
Im Menü: File -> Attach, dann kannst du in der Liste der geladenen Module deine Exe heraussuchen und debuggen.
 
Es gibt mehrere Möglichkeiten; je nach dem, was die Lage verlangt.

Wenn es egal ist, ob man Ereignisse der Initialisation der zweiten Executable verpasst, dann kann man - wie TheShadowAE schon erwähnte - einfach attachen.

Wenn man allerdings den Start mitbekommen will, dann spräche doch nichts dagegen, die Executable zu entpacken und selbst zu starten? (Übrigens kann die Executable nicht direkt aus der ZIP heraus gestartet werden; sie wird wohl vorher entpackt. Einfach mal die Pfade mit Process Explorer checken)

Wenn allerdings der zweiten Executable vor dem Start Parameter mitgegeben werden, dann müsste man sich diese vorher merken und selbst übergeben.

Wenn allerdings die zweite Executable von der ersten auf gewisse Weise durch Interprozesskommunikation manipuliert bzw. mit Daten gefüttert wird, dann hilft beispielsweise bei der ersten Executable auf CreateProcess() zu breaken und das Flag CREATE_SUSPENDED hinzuzufügen. So hat man nach dem Step über diese API genügend Zeit mit einem zweiten Debugger dort zu attachen und beide Targets dann zu resumen. (Beispielsweise mit Process Explorer)

Es gibt sicher noch ein paar weitere "Wenn allerdings...". Die werden aber wohl erst dann voraussehbar, wenn du die obigen Vorschläge probierst bzw. erklärst warum diese nicht geeignet sind.
 
Hallo,

erst einmal vielen, vielen Dank für die Hinweis. Ich stehe zwar noch vor einem neuen Problem aber zunächst die Lösung für das alte Thema.

Das Problem bei der zweiten exe war eben, dass diese meldete, dass ich dieses Programm direkt gestartet habe und dies nicht erlaubt ist (vermutlich sicherheitsmechanismus). Ich habe aber dann beim Debuggen des ersten Programmes festgestellt, dass die zweite exe in ein Temp-Verzeichnis entpackt wird und ich habe auch gleich die interne Seriennummer und somit den Aufrufparameter gefunden und bin jetzt in der Lage die zweite exe mit diesen Aufrufparametern direkt zu starten ;-)

Normalerweise läuft die zweite Exe jetzt so ab, dass zunächst ein Dialog hochkommt, der dem User mitteilt, dass das Programm geladen wird und dann kommt eine Passwortabfrage. Ich möchte genau den Bereich der Passwortprüfung (richtig/falsch) debuggen. Leider bleibt der Debugger im Ladeprozess des Dialoges mit einer Sanduhr stehen und der Dialog der dem User mitteilt, dass er noch einen Moment warten soll bis die Passwortabfrage kommt, ist einfach ein weißes Fenster. Ich muss dann sowohl den Prozess des Programmes wie auch den Ollidbg-Debugger hart beenden...

Hat jemand eine Idee warum im Debugger alles hängen bleibt? Rufe ich die zu debuggende exe mit den herausgefunden Parametern auf so läuft er einwandfrei bis zur Passwortabfrage durch - an diese Stelle kann ich mich dann nur nach meinem Kenntnisstand nicht mehr mit den Debugger einhängen...

Wäre super, wenn mir jemand weiterhelfen würde...Kann dann sehr gerne meine Ergebnis wieder posten, wenn es jemanden interessiert.

Danke noch mal!

Gruß
Dex24
 
Zurück
Oben