Einzelnen Beitrag anzeigen
Alt 28.01.09, 17:48   #11 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 198
Standard

Du kannst auch im Code vor strcpy über inline ASM einen INT3 einfügen (oder Opcode 0CCh). Irgendwas mit
Code:
_asm{INT3} bzw _asm{db 0xCC}
(Syntax kommt auf den Compiler an)

oder auch über OllyDbg vor strcpy einen CC einfügen (Zeile markieren, STRG+E für Editmodus, vor dem Überschreiben aber den Byte merken und nacher wieder reinschreiben), Rechtsklick ->Copy to executable->all modification -> es öffnet sich ein Fenster -> Rechtsklick->save file.

Anschließend:
Gehst Du noch zu Olly Optionen ->Just in time Debugging-> "make olly JIT" und "attach without confirmation".

Das bewirkt nun, dass Du mit INT3 einen Breakpoint platzierst - wenn das Programm an INT3 angelangt ist, wird der Standarddebugger aufgerufen (bzw. es erscheint der Windows Dialog, ob man Problembericht senden möchte - in der linken Ecke ist aber der Debugbutton versteckt).
Nun kann man in Olly den Int3 ausnoppen/korrigieren und normal debuggen.

Weitere Alternative: vor strcpy eine Benutzereingabe einlesen (getchar, getc, scanf usw) - da pausiert das Programm ja auch, so dass man es attachen kann.
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61