Qiling is an advanced binary emulation framework. It can emulate various types of archs and can be used to perform advanced operations as well. Below are some of the quick commands which are needed for my tasks.

python module#

from qiling import Qiling # import
from qiling.const import QL_VERBOSE

init#

code=b"\x90"
ql = Qiling(code=code, archtype='x86', ostype='Linux', verbose=QL_VERBOSE.DISASM)

register#

ql.arch.regs.read("EAX") # read register
ql.arch.regs.write("EAX", 0xff) # write register

memory#

ql.mem.get_mapinfo() #get memory related information
ql.mem.get_formatted_mapinfo() # same as mapinfo but better
ql.mem.map(0x40300//4096*4096, 4096, info="name")

write to memory#

ql.mem.write(1002, b'\x41')
ql.mem.read(1002,1)

start the emulation#

ql.run()