Was ich erreichen möchte, ist folgendes: Ich möchte den maschinencode selber ermitteln. Ich tippe im Debugger das
jmp 065CE910 ein, und der trägt dafür an der entsprechenden Stelle die bytes
E98B18E1AF ein.
E9 codiert den sprung, soweit klar. Aber wie bestimme ich den Rest? Das Reference sheet was du mir gepostet hast, hatte ich schon gesehen, aber folgendes ist da komisch: Da steht für E9 länge von 3 bytes. Mein Befehl ist aber 5 bytes lang.
Ich möchte quasi eine funktion (in Delphi code später) bauen, der das sprungziel und die Quelladdresse gebe, und die mir die Maschinencode Bytes errechnet - So wie das der debugger auch macht, wenn ich da on the fly opcodes editiere.
Aus dem Assemblercode
Quelltext
1:
| 567BD080 --- jmp 065CE910 |
wird im bytecode ein
Quelltext
Und das funktioniert auch. Aber wie erechne ich das?
Wie passt das 567BD080 in die 8B18E1AF ??
lg Boldar