Denn ich bekomme z.B. diesen Code vorgesetzt:
Code:
mov eax, .codestart
mov edx, .codeend
mov ecx, orginal entrypoint
xor ss[eax], magic
inc eax
cmp eax, edx
jne mainloop
jmp ecx // springe zum EntryPoint
Gibt es da jetzt irgendwie eine Liste mit Befehlen, die alle gleich sind, oder auf welchen Compiler / hardware bezieht sich dieser Code?
Man muss unterscheiden zwischen dem OP-Code und seiner Darstellung. Der OP-Code ist für alle X86-CPUs und alle Compiler der gleiche. Weil roher Maschinencode aber für einen Menschen schlecht lesbar ist, haben sich Mnemonics wie
inc eax
etabliert. Da gibt es verschiedene Standards, aber am häufigsten findet man die
AT&T-Syntax (vor allem bei Unix) und Intel-Syntax (z.B. bei Delphi). Ich finde die Intel-Syntax deutlich besser lesbar.