我有一些汇编代码,我真的不明白.我的想法是没有意义.不幸的是,我无法提供更多的指导信息.C的输出是什么?
0x1000: iretd
0x1001: cli
0x1002: in eax, dx
0x1003: inc byte ptr [rdi]
0x1005: add byte ptr [rax], al
0x1007: add dword ptr [rbx], eax
0x1009: add byte ptr [rax], al
0x100b: add byte ptr [rdx], 0
0x100e: add byte ptr [rax], al
Run Code Online (Sandbox Code Playgroud)
谢谢
Ped*_*d7g 14
前四个字节(如果我确实正确地重建它们)形成32位值0xFEEDFACF
.
把它放到谷歌导致我:
https://gist.github.com/softboysxp/1084476#file-gistfile1-asm-L15
%define MH_MAGIC_64 0xfeedfacf
Run Code Online (Sandbox Code Playgroud)
你是不是偶然从Mac OS X中拆解Mach-o x64可执行文件作为原始机器代码,而不是正确读取文件的元数据,而只拆解代码部分?
PS在这样的问题中,还包括源机器代码数据,所以经验丰富的人可以通过针对不同的平台来检查反汇编,比如32b x86或16b实模式代码,或完全不同的CPU,这可能有助于万一你会错误地对待机器代码与错误的目标平台反汇编.我必须首先组装你的反汇编来查看原始字节.