PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tracer


z3r0x
24.04.2002, 12:40
Hiho...

Ich suche einen Task-Tracer...
Er sollte unter Windoof laufen und in der Lage sein einen gerade laufenden Prozess disassembliert auszugeben (inkl. Offset-Adressen).
Außerdem wäre es noch ganz gut, wenn er "step by step" tracing unterstützen würde, ist aber nicht ganz so wichtig.

Wäre dankbar für jeden Hinweis! :D

Gruß z3r0x...


cYrus
24.04.2002, 13:09
Ich suche
solche formulierungen gehören ins Off-Topic..

wenn ich dich recht verstanden habe, möchtest du doch selber sowas coden, nicht wahr? ;)

so long
cYrus

z3r0x
24.04.2002, 13:42
Yap, sry...

War mir nicht ganz sicher ob Off-Topic oder hier...
Dachte halt es passt ganz gut hierher, da es ja schließlich um ein Tool geht, welches den Assembler-Code eines laufenden Prozesses ausgeben soll.
Forenbeschreibung:
hier wird alles gepostet was mit diesem Thema in Verbindung steht

Und NEIN!, ich wollte es nicht selber coden. ;)

Gruß z3r0x...

Felix Kaiser
24.04.2002, 14:41
Soweit ich weiß gibts das nicht und sowas ist auch nicht einfach so möglich. Die Prozesse laufen parallel. Man kann nicht einfach in einen laufenden Prozess sich als Debugger einhaken und den Prozess somit unterbrechen. Das geht nicht!

z3r0x
24.04.2002, 15:18
Hoi Guru... :D

Klar geht das!
Für diese Zwecke gab es ja selbst auf dem Amiga schon diverse Tools...

Die simpelste Methode wäre es ja das zu tracende Programm in einen Tracer einzuladen, und von diesem aus dann Code für Code an die CPU zu übergeben. Das ganze dann noch samt Offset-Adresse - disassembliert ausgeben, und schon hast nen Tracer den Du von der Ablaufgeschwindigkeit komplett beeinflussen kannst.

Gruß z3r0x...

Baegsch
24.04.2002, 16:11
Hi z3r0x, wie klein die Welt doch ist *gg*



Sowas kann IMHO nur Kernelseitig gemacht werden. Unter linux gibt es seit der 2.4er Serie ja das so nett gehasste ptrace() *gg* Runtime debugging wird allerdings schwer. Man müsste die Anfangsadrresse des Prozesses ausfindig machen, und dies ja wiederrum im Kernel, da ja jeder Prozess denkt er hätte Speciher von 0x08048000 (bei linux) an. Aber wieso so kompliziert? das .text segment, da wo die instructions stehen ist read-only (zumindest sollte es so sein). Also kannst du auch die binary laden und direkt aus ihr lesen.



Eine andere Sache wär jetzt den Stack auf Codefragmente zu untersuchen. Immerhin ist per default ein Stacksegment executable. Dies kann man zwar auch abstellen, allerdings installieren wenige Benutzer solche Sachen :rolleyes:

Felix Kaiser
24.04.2002, 20:10
Ja, wenn man die Anwendung in den Debugger lädt, dann ist tracen ja kein Problem. Aber jetzt in Windows einfach in einen laufenden Prozess einklinken und tracen geht nicht. Der Kernel verweigert den Zugriff aus Sicherheitsgründen. Sonst könnte man ja problemlos jeden Systemprozess unterbrechen und wenn die dann auf zu hohe Ebene kommen, tschüss System :)

z3r0x
24.04.2002, 22:02
Jo eben... :]

Aber kennst denn auch n gutes Prog dazu? *gg*

Felix Kaiser
24.04.2002, 22:05
Turbo Debugger 5.0 für Win32. Ist beim Turbo Assembler dabei :]

Schaf
24.04.2002, 22:33
falls du das dingen (zu tracende prog) selbst gecodet hast, mit delphi oder cppbuilder, kannst du auch den cpu-monitor davon nehmen. ich denke aber das is im tdebugger auch drin. nettes tool übrigends :D

Felix Kaiser
25.04.2002, 17:36
Der Debugger von Delphi oder C++ Builder schaltet sich auch ein, wenn eine Anwendung abkackt. Kann man dann irgendwelche Microsoftanwendungen mit Delphi im CPU Monitor debuggen, jojo 8)

Schaf
25.04.2002, 18:45
ne, dafür gibts ja das disasm-fenster vom devstudio ;)

Felix Kaiser
25.04.2002, 21:38
Aber mit Delphi / C++ Builder geht das auch :p
Auch wenn das Debugging in einem solchen Fall höchst sinnlos wäre, da man ja nicht den Quellcode einfach bugfixen im weiteren kann und dann noch recompilieren hehe. Sonst würde Windows95 ja garnicht mehr abstürzen :D

z3r0x
25.04.2002, 23:26
Najoa...ich werds nu erstmal midm TASM probieren...

Thnx @Guru :D