After installing the Capstone python module, I ran this example on a Win7x86 PC with a minor edit (added arch and mode).
However, when attempting to use insn.regs_access()
, it throws a NoneType
object which is not iterable:
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)))
However, I get the following:
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
How can this be resolved?