如何把十六进制代码为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 0xc3foo.s然后gcc -c foo.s然后objdump -d foo.o

+1

如果你从字面上有hexdump都可以,不是非此即彼,你也可以将十六进制“undump”回二进制就可以拆卸。 'xxd -r'就是这样做的,它可能比按照逗号分隔的字节列表更容易,作为操作数指向'.byte'指令。 –

+0

非常感谢!这两个工作非常好=] – Testare