Ernst Baumann
2006-04-05 17:12:06 UTC
Hallo allerseits
Eigentlich will ich was ganz einfaches:
1)
Analysieren, was irgendeine exe-Datei macht.
Mit MS VC++ Vers. 6.0 kann ich zwar ein exe-Programm im Maschinencode
anschauen und schrittweise ablaufen lassen, doch muss die exe-Datei
mit MS VC++ Vers. 6.0 erstellt worden sein, d.h, durch Compilierung
des C++ Programms.
2)
Man kann zwar in MS VC++ Vers. 6.0 jeden Prozess (mit dem Debugger
debuggen: Start >Debug -> Attach to Process), doch das geht aber nur,
wenn dieser Prozess noch _läuft_.
Wenn ich aber ein Programm schreibe, das z.B. nur "Hallo Welt" ausgibt
und dann beendet wird, kann ich dies nicht debuggen.
Mir wurde gesagt, dass man "einen Prozess der nicht mehr im Speicher
liegt auch nicht mehr debuggen, aber disassemblieren kann".
Das verstehe ich nicht:
a)
Wenn man z.B. mit dem Turbodebugger (habe ich unter DOS-Zeiten schon
mal gemacht), ein Programm startet, also z.B:
td mytest.exe
dann war ich überzeugt, dass mytest.exe in den Arbeitsspeicher geladen
wird und das Programm dann auch jeweils durch Tastendruck F10 (glaube
ich) schrittweise abgearbeitet wird, oder täusche ich mich da ?
Ich kann mir ein anderes Szenario gerade nicht vorstellen (oder wird
da nur simuliert) ?
b)
Kann ich mit MS VC++ Vers. 6.0 (oder anderen Produkten diese
Produktreihe) nicht _disassemblieren_ ?
Wenn nicht, welchen Sinn soll das haben ?
3)
Kennt jemand ein gutes, kostenloses Tool, um Programme zu analysieren
(das nicht nur eine bestimmte Frist, z.B. 30 Tage lang funktioniert) ?
mfg
Ernst
Eigentlich will ich was ganz einfaches:
1)
Analysieren, was irgendeine exe-Datei macht.
Mit MS VC++ Vers. 6.0 kann ich zwar ein exe-Programm im Maschinencode
anschauen und schrittweise ablaufen lassen, doch muss die exe-Datei
mit MS VC++ Vers. 6.0 erstellt worden sein, d.h, durch Compilierung
des C++ Programms.
2)
Man kann zwar in MS VC++ Vers. 6.0 jeden Prozess (mit dem Debugger
debuggen: Start >Debug -> Attach to Process), doch das geht aber nur,
wenn dieser Prozess noch _läuft_.
Wenn ich aber ein Programm schreibe, das z.B. nur "Hallo Welt" ausgibt
und dann beendet wird, kann ich dies nicht debuggen.
Mir wurde gesagt, dass man "einen Prozess der nicht mehr im Speicher
liegt auch nicht mehr debuggen, aber disassemblieren kann".
Das verstehe ich nicht:
a)
Wenn man z.B. mit dem Turbodebugger (habe ich unter DOS-Zeiten schon
mal gemacht), ein Programm startet, also z.B:
td mytest.exe
dann war ich überzeugt, dass mytest.exe in den Arbeitsspeicher geladen
wird und das Programm dann auch jeweils durch Tastendruck F10 (glaube
ich) schrittweise abgearbeitet wird, oder täusche ich mich da ?
Ich kann mir ein anderes Szenario gerade nicht vorstellen (oder wird
da nur simuliert) ?
b)
Kann ich mit MS VC++ Vers. 6.0 (oder anderen Produkten diese
Produktreihe) nicht _disassemblieren_ ?
Wenn nicht, welchen Sinn soll das haben ?
3)
Kennt jemand ein gutes, kostenloses Tool, um Programme zu analysieren
(das nicht nur eine bestimmte Frist, z.B. 30 Tage lang funktioniert) ?
mfg
Ernst