如何使用Python 中的pydasm 库反汇编可执行代码的前 200 个字节?我想知道如何设置缓冲区的大小来反汇编它。
Pydasm:反汇编有限长度的可执行 shellcode
逆向工程
拆卸
Python
反汇编者
外壳代码
2021-06-11 00:51:36
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
添加:
您也可以播放seek()
到文件的某个位置,然后从那里读取。如果你想读取嵌入到某个文件中的 shellcode 并且你知道相对位置,它特别有用。您必须open()
使用带有“b”选项的文件才能使其工作。有关详细信息,请参阅Python 文件对象库参考。
其它你可能感兴趣的问题