![]() |
asm code aus anderen prozessen lesen
Hallo,
ich möchte den asm code aus einem laufendem prozess auslesen. nicht den ganzen, sondern nur stellen aus bestimmten adressen. z. B. ist auf 00X12345 push ebp könnte ich jetzt den asmteil von 00X12345 sehen? also ohne einen debugger. kann man so etwas in delphi umsetzen? und welche funktionen müsste ich dafür benutzen? |
Re: asm code aus anderen prozessen lesen
Hallo,
mit der Funktion ![]() Gruß xaromz |
Re: asm code aus anderen prozessen lesen
ich möchte nicht die werte der adresse haben, sondern den asm code...
|
Re: asm code aus anderen prozessen lesen
Hallo,
Zitat:
Oder willst Du den Maschinencode in Mnemonics umwandeln? Dann musst Du Dir einen Disassembler bauen. Gruß xaromz |
Re: asm code aus anderen prozessen lesen
also...
nehmen wir an, dass es so aussieht: 00123456 push ebp 00234567 mov ecx 00345678 xxx ich möchte aus diesen adressen (00123456,...) den asm code bekommen, also push ebp. wie stelle ich das an? |
Re: asm code aus anderen prozessen lesen
Hi,
indem du den Maschinencode einliest (s. o.) und dann deassemblierst (s. o.) Mfg FAlter |
Re: asm code aus anderen prozessen lesen
Zitat:
Dann hast du eben die Bytes dieser Adressen. Das ist quasi der Assemblercode. Man muss diese Bytes nur eben richtig interpretieren. Ach ja Zitat:
|
Re: asm code aus anderen prozessen lesen
Kleines Beispiel: 90 (hexadezimal) entspricht z.B. NOP
Genaueres kannst du entsprechenden Tabellen dazu entnehmen, übersetzen musst du das dann schon selbst. Die erste Tabelle, die ich eben auf die schnelle gefunden hab, ist z.B. diese: ![]() Man beachte, dass das Gnze unter Umständen aber vom Prozessor abhängig ist. |
Re: asm code aus anderen prozessen lesen
The package "madDisAsm" features a full x86 disassembler including MMX, 3dNow enhanced, SSE and SSE2 support. The disassembler can examine a single x86 instruction (see ParseCode) or a full function (see ParseFunction) and either return a short analysis or a full text disassembly. Register contents are watched/followed if possible, this improves the analyses for jump/call targets. Case/switch jump tables are automatically detected and handled correctly.
![]() |
Re: asm code aus anderen prozessen lesen
Hallo zusammen,
so einfach ist das aber nicht. Im Prinzip steht im Speicher OpCode,Daten,OpCode,Daten.... NOP z.B. hat keine zugehörigen Daten. Aber was ist wenn 90 kein OpCode sodern Daten ist? Dann läuft die Interpretation ganz schön vor die Wand. Wenn der Code von fremden Anwendungen interessant ist, würde ich die entsprechende exe durch einen Disassembler jagen, dann hat man die Chance was halbwegs vernünftiges zu bekommen. Zu DOS-Zeiten konnte DEBUG auch direkt auf den Haupspeicher zugreifen, wenn der's heute noch kann, warum in Delphi nochmal neu schreiben? Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz