直接在 shell?

Disassemble opcode snippets directly in a shell?

我得到了一个小字节串,十六进制表示如下:

6631C08A2500000000

是否有反汇编程序,它接受操作码作为直接输入参数,而不需要编译文件?

例如:

$ disassembler -directOpcode 6631C08A2500000000      

0:  66 31 c0                xor    ax,ax
3:  8a 25 00 00 00 00       mov    ah,BYTE PTR ds:0x0 

由于 Peter 的有用评论,我找到了一个利用 python2 和一些 shell 管道的解决方案:

$ python -c "print '6631C08A2500000000'.decode('hex')" | head -c -1 | ndisasm -b32 -

00000000  6631C0            xor ax,ax
00000003  8A2500000000      mov ah,[dword 0x0]

我用 head -c -1 去掉了尾随的换行符,否则我得到:

00000000  6631C0            xor ax,ax
00000003  8A2500000000      mov ah,[dword 0x0]
00000009  0A                db 0x0a