-
Notifications
You must be signed in to change notification settings - Fork 499
Description
I fixed the taint.py in example/taint2, however I got the warnning and I don't know how to fix it.
I am running panda in a virtualBox virtual machine, Ubuntu 22.04
Is there any way to fix this problem?
Here is my code:
from pandare import Panda
panda = Panda(generic='x86_64')
@panda.queue_blocking
def driver():
panda.revert_sync('root')
print(panda.run_serial_cmd("grep root /etc/passwd"))
panda.end_analysis()
@panda.cb_after_machine_init
def setup(cpu):
print("===>taint enabled<===")
# Enable tainting
panda.taint_enable()
'''
require was deprecated
'''
panda.load_plugin("osi")
panda.load_plugin("osi_linux")
panda.load_plugin("taint2")
def fd_to_fname(cpu, fd):
proc = panda.plugins['osi'].get_current_process(cpu)
procname = panda.ffi.string(proc.name) if proc != panda.ffi.NULL else "error"
fname_ptr = panda.plugins['osi_linux'].osi_linux_fd_to_filename(cpu, proc, fd)
fname = panda.ffi.string(fname_ptr) if fname_ptr != panda.ffi.NULL else "error"
return fname
@panda.ppp("syscalls2", "on_sys_read_return")
def read(cpu, tb, fd, buf, cnt):
fname = fd_to_fname(cpu, fd)
fnamestr = fname.decode('utf-8', 'ignore')
print(f"read {fnamestr}")
if fnamestr == "/etc/passwd":
label = 1
for idx in range(cnt):
panda.taint_label_ram(buf + idx, label)
label = label + 1
@panda.queue_blocking
@panda.ppp("taint2", "on_branch2")
def something(addr, size, from_helper, tainted):
print("Tainted branch")
panda.run()