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.
from qiling import Qiling # import from qiling.const import QL_VERBOSE
code=b"\x90" ql = Qiling(code=code, archtype='x86', ostype='Linux', verbose=QL_VERBOSE.DISASM)
ql.arch.regs.read("EAX") # read register ql.arch.regs.write("EAX", 0xff) # write register
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