rizin/test/scripts/shared_memory.py

33 lines
1 KiB
Python
Executable file

#!/usr/bin/env python3
from multiprocessing import shared_memory
import rzpipe
FILENAMES = ["bins/elf/_Exit (42)", "bins/pe/winver.exe", "bins/mach0/mach0_2-x86_64"]
for fname in FILENAMES:
with open(fname, "rb") as f:
data = f.read()
data_size = len(data)
shm = shared_memory.SharedMemory(create=True, size=data_size)
print("Copying %s..." % fname)
shm.buf[:data_size] = data[:]
print("Copied %s succesfully" % fname)
print("-------------")
print("Shared buffer size 0x{0:x}".format(data_size))
print("-------------")
rzp = rzpipe.open("shm://{0:s}/{1:d}".format(shm.name, data_size), flags=["-N"])
rzp.cmd("e scr.color=0")
rzp.cmd("e scr.utf8=false")
rzp.cmd("e scr.interactive=false")
infoj = rzp.cmdj("ij")
print(infoj["bin"])
print(rzp.cmd("px 16"))
rzp.cmd("aaa")
print(rzp.cmd("afl"))
print(rzp.cmd("pdf @ entry0"))
rzp.quit()
shm.close()
shm.unlink()