答案 0 :(得分:1)
汇编程序和链接程序,是的。
对于linux,如果你不坚持字节,只需将汇编代码(除前两列之外的东西)复制到标题行foo.s
之后的文件.intel_syntax noprefix
中,然后执行{{ 1}}您将获得可加载到gcc -g -nostdlib -m32 foo.s
的可执行文件a.out
。
gdb
请注意,此代码将跳转到此粘贴中未包含的其他地址,因此它几乎没用。而且,它很简单,你几乎不需要单独执行它。基本上是这样的:
.intel_syntax noprefix
mov eax,0x0
mov ebx,0xbaaeb662
xor eax,ebx
mov ecx,0xc0ffee
mov edx,0xdeadbeef
cmp eax,0x31337
je loc_0000001f
jmp edx
loc_0000001f:
jmp ecx
(我假设零是一个占位符。)
如果你坚持使用原始机器代码字节,你可以将它们放在你的if (0 ^ 0xbaaeb662 == 0x31337) goto 0xc0ffee else goto 0xdeadbeef;
foo.s
指令中,如下所示:
.byte
你明白了,我不打算把所有这些都输出来。