Forum: Programmieren allgemein
by sirius,
30. Aug 2007
Doch, das geht trotzdem. denn anders auch auch die CPU nicht. Wenn z.B. da eine $55 als erstes Byte steht, dann ist klar, dass es nur push ebp sein kann. Es gibt keinen anderen Befehl der mit $55 anfängt. Wenn da $E8 steht, dann ist klar, dass dies auch ein 1 Byte-Befehl ist, dem allerdings definitiv noch eine 32bit RVA (relativ virtual Adress) folgt.
Anders bei mov ($83 etc) -Befehlen, die...
Forum: Programmieren allgemein
by sirius,
30. Aug 2007
Was du definitv brauchst ist den Anfang eines Opcodes. Du kannst nicht blinklinks in einen CodeSchnippsel reinrennen. Und von da an ist es doch nicht allzu schwer, denke ich. Du nimmst dir das erste Byte und schaust ob noch mehr Bytes zu dem Befehl gehören.
Edit:
Na mit einem Hook manipuliert man doch keinen Speicher. Ein Hook ist dazu da, um irgendwelche Nachrichten, bzw. sonstige Aktionen...
Forum: Programmieren allgemein
by sirius,
30. Aug 2007
Hier gibt es eine disasm.dll (vielleicht auch den Source dazu)
Und im Anhang habe ich eine Klasse dazu, damit kannst du disassemblen oder anderweitig rumspielen.
btw: Hook und Speichermanipulation würde ich nicht in einen Topf werfen...