Reference: qiling/arch/register.py

Read

  • Reading from string "exa"
ql.reg.read("EAX")
  • Reading from Unicorn Engine const
ql.reg.read(UC_X86_REG_EAX)
  • Reading eax
eax = ql.reg.eax

Write

  • Writing 0xFF to "eax"
ql.reg.write("EAX", 0xFF)
  • Writing 0xFF to eax, via Unicorn Engine const
ql.reg.write(UC_X86_REG_EAX, 0xFF)
  • Writing 0xFF to eax
ql.reg.eax =  0xFF

Cross architecture registers

  • This is for pc and sp only.
ql.reg.arch_pc
ql.reg.arch_sp
  • Reading from PC/SP on current arch, defined by ql.archtype
ql.reg.arch_pc = 0xFF
ql.reg.arch_sp = 0xFF

Get register table

  • Getting the list of current arch register table
ql.reg.register_mapping()

Get register bit

  • This is for architecture that comes with 64bit and 32bit register
  • In 64bit environment this will return 64
ql.reg.bit("rax")
  • In 64bit environment this will return 32
ql.reg.bit("eax")