安装 Capstone python 模块后,我在Win7x86 PC 上运行了这个示例,并进行了少量编辑(添加了 arch 和 mode)。
但是,当尝试使用时insn.regs_access()
,它会抛出一个NoneType
不可迭代的对象:
enter preformatted text here
1 from capstone import *
2
3 CODE = b"\x8d\x4c\x32\x08\x01\xd8"
4
5 md = Cs(CS_ARCH_X86, CS_MODE_32)
6 md.detail = True
7
8 for insn in md.disasm(code, 0x1000):
9 print("%s\t%s" % (insn.mnemonic, insn.op_str))
10
11 (regs_read, regs_write) = insn.regs_access()
12
13 if len(regs_read) > 0:
14 print("\n\tRegisters read:", end="")
15 for r in regs_read:
16 print(" %s" %(insn.reg_name(r)))
17
18
19 if len(regs_write) > 0:
20 print("\n\tRegisters modified:")
21 for r in regs_write:
22 print(" %s" %(insn.reg_name(r)))
但是,我得到以下信息:
X:\blah>python capTest.py
lea ecx, dword ptr [edx + esi + 8]
Traceback (most recent call last):
File "capTest.py", line 11, in <module>
(regs_read, regs_write) = insn.regs_access()
TypeError: 'NoneType' object is not iterable
如何解决这个问题?