如何将十六进制代码转换为x86指令

时间:2016-11-15 19:17:48

标签: linux bash assembly x86-64 objdump

我试图创建一个脚本或程序来获取给定的字节(以十六进制给出),并将它们转换为x86指令(例如c3 - > retq)

我已尝试通过在包含

的程序集文件上调用gcc -c来执行此操作
retq
retq

然后使用脚本在其所说的" c3 c3"中插入字节,然后使用objdump -d查看它现在说的内容。但似乎它会混淆文件的格式,除非我只传递与原始指令字节大小相同的指令。

我使用SSH,BASH终端在Raspbian Pi(基于Linux的操作系统)上运行它。我使用的是BASH shell脚本和python,以及这里列出的工具和gdb。

1 个答案:

答案 0 :(得分:4)

反汇编平面二进制文件:objdump -D -b binary -m i386 foo.bin。或者使用汇编源中的.byte指令创建目标文件,例如将.byte 0xc3放入foo.s然后gcc -c foo.s然后objdump -d foo.o