Я пытаюсь разобрать файлы Windows PE32 с помощью Python, но на основании вывода я не уверен, правильно ли я делаю.
В настоящее время я пытаюсь разобрать раздел .dataPE-файла с библиотекой pefile и capstone.
import pefile
from capstone import *
def disassemble(fpath):
pe = pefile.PE(fpath)
for s in pe.sections:
print(s.Name)
md = Cs(CS_ARCH_X86, CS_MODE_32)
for j in md.disasm(s.get_data(), pe.OPTIONAL_HEADER.ImageBase + s.VirtualAddress):
print("0x%x:\t%s\t%s" % (j.address, j.mnemonic, j.op_str))
Я ожидал (в разделе .data) что-то вроде
.data
example_var DW 12345
example_var2 DB 'c'
...
, но вместо этого выводит сборку вформат
<addr> <instr> <opstr>
0x4b601a add byte ptr [eax], al
Есть ли какой-нибудь способ получить вывод, который я ищу, или это невозможно, и если да, то почему? Он также должен быть разобран через Windows, а не Linux