如何使用Python中的pydasm库反汇编可执行代码的前200个字节?
我想知道如何设置缓冲区的大小以反汇编它。

#1 楼

从pydasm的README.txt中略作修改的版本。

import pydasm
import binascii

# Open, and read 200 bytes out of the file,
# while converting buffer to hex string
with open('file.bin','r') as f:
    buffer = binascii.hexlify(f.read(200))


# Iterate through the buffer and disassemble 
offset = 0
while offset < len(buffer):
   i = pydasm.get_instruction(buffer[offset:], pydasm.MODE_32)
   print pydasm.get_instruction_string(i, pydasm.FORMAT_INTEL, 0)
   if not i:
     break
   offset += i.length


添加:然后从那里阅读。如果您想读取嵌入到某个文件中的shellcode并且知道相对位置,则它特别有用。您必须使用“ b”选项来对文件进行编码,才能使其正常工作。有关详细信息,请查阅《 Python文件对象库参考》。