如何把十六进制代码为x86指令
问题描述:
我试图让一个脚本或程序,将采取给予字节(以十六进制表示),并将其转换成一个x86指令(例如C3 - > retq)如何把十六进制代码为x86指令
我试着通过只含
retq
retq
部件文件调用gcc -c
,然后做它用脚本,将它说:“C3 C3”字节,然后使用objdump -d
,看看它现在说。但它似乎会弄乱文件的格式,除非我只传递与原始指令字节相同大小的指令。
我使用SSH,BASH终端在Raspbian Pi(基于Linux的操作系统)上运行它。我正在使用BASH shell脚本和python,以及这里列出的工具和gdb。
答
反汇编平面二进制文件:objdump -D -b binary -m i386 foo.bin
。或者使用来自汇编源的指令.byte
创建目标文件,例如把.byte 0xc3
到foo.s
然后gcc -c foo.s
然后objdump -d foo.o
如果你从字面上有hexdump都可以,不是非此即彼,你也可以将十六进制“undump”回二进制就可以拆卸。 'xxd -r'就是这样做的,它可能比按照逗号分隔的字节列表更容易,作为操作数指向'.byte'指令。 –
非常感谢!这两个工作非常好=] – Testare