mirror of
https://github.com/qilingframework/qiling.git
synced 2026-10-12 02:21:40 +00:00
Adjust all set_syscall usages
This commit is contained in:
@@ -30,9 +30,9 @@ if __name__ == "__main__":
|
||||
# Known issue: If the syscall func is not be implemented in qiling, qiling does
|
||||
# not know which func should be replaced.
|
||||
# In that case, you must specify syscall by its number.
|
||||
ql.set_syscall(0x04, my_syscall_write)
|
||||
ql.os.set_syscall(0x04, my_syscall_write)
|
||||
|
||||
# set syscall by syscall name
|
||||
#ql.set_syscall("write", my_syscall_write)
|
||||
#ql.os.set_syscall("write", my_syscall_write)
|
||||
|
||||
ql.run()
|
||||
|
||||
@@ -22,6 +22,6 @@ def write_onexit(ql: Qiling, arg1, arg2, arg3, *args):
|
||||
if __name__ == "__main__":
|
||||
ql = Qiling(["rootfs/x8664_linux/bin/x8664_hello"], "rootfs/x8664_linux", verbose=QL_VERBOSE.DEBUG)
|
||||
|
||||
ql.set_syscall(SYSCALL_NR.write, write_onenter, QL_INTERCEPT.ENTER)
|
||||
ql.set_syscall(SYSCALL_NR.write, write_onexit, QL_INTERCEPT.EXIT)
|
||||
ql.os.set_syscall(SYSCALL_NR.write, write_onenter, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall(SYSCALL_NR.write, write_onexit, QL_INTERCEPT.EXIT)
|
||||
ql.run()
|
||||
|
||||
@@ -61,7 +61,7 @@ def my_netgear(path, rootfs):
|
||||
ql.os.root = False
|
||||
|
||||
ql.add_fs_mapper('/proc', '/proc')
|
||||
ql.set_syscall(4004, my_syscall_write)
|
||||
ql.os.set_syscall(4004, my_syscall_write)
|
||||
ql.set_api('bind', my_bind, QL_INTERCEPT.ENTER) # intercepting the bind call on enter
|
||||
|
||||
ql.run()
|
||||
|
||||
@@ -75,7 +75,7 @@ def my_sandbox(path, rootfs):
|
||||
ql.debugger = False
|
||||
|
||||
if ql.debugger == True:
|
||||
ql.set_syscall("vfork", myvfork)
|
||||
ql.os.set_syscall("vfork", myvfork)
|
||||
|
||||
ql.run()
|
||||
|
||||
|
||||
+34
-34
@@ -127,9 +127,9 @@ class ELFTest(unittest.TestCase):
|
||||
return str_len + 1
|
||||
|
||||
ql = Qiling(["../examples/rootfs/x8664_linux/bin/x8664_args","1234test", "12345678", "bin/x8664_hello"], "../examples/rootfs/x8664_linux", verbose=QL_VERBOSE.DEBUG)
|
||||
ql.set_syscall(1, write_onEnter, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall(1, write_onEnter, QL_INTERCEPT.ENTER)
|
||||
ql.set_api('puts', my_puts)
|
||||
ql.set_syscall(1, write_onexit, QL_INTERCEPT.EXIT)
|
||||
ql.os.set_syscall(1, write_onexit, QL_INTERCEPT.EXIT)
|
||||
ql.mem.map(0x1000, 0x1000)
|
||||
ql.mem.write(0x1000, b"\xFF\xFE\xFD\xFC\xFB\xFA\xFB\xFC\xFC\xFE\xFD")
|
||||
ql.mem.map(0x2000, 0x1000)
|
||||
@@ -332,12 +332,12 @@ class ELFTest(unittest.TestCase):
|
||||
return regreturn
|
||||
|
||||
ql = Qiling(["../examples/rootfs/x86_linux/bin/x86_posix_syscall"], "../examples/rootfs/x86_linux", verbose=QL_VERBOSE.DEBUG)
|
||||
ql.set_syscall(0x3, test_syscall_read)
|
||||
ql.set_syscall(0x4, test_syscall_write)
|
||||
ql.set_syscall(0x127, test_syscall_openat)
|
||||
ql.set_syscall(0xa, test_syscall_unlink)
|
||||
ql.set_syscall(0x5c, test_syscall_truncate)
|
||||
ql.set_syscall(0x5d, test_syscall_ftruncate)
|
||||
ql.os.set_syscall(0x3, test_syscall_read)
|
||||
ql.os.set_syscall(0x4, test_syscall_write)
|
||||
ql.os.set_syscall(0x127, test_syscall_openat)
|
||||
ql.os.set_syscall(0xa, test_syscall_unlink)
|
||||
ql.os.set_syscall(0x5c, test_syscall_truncate)
|
||||
ql.os.set_syscall(0x5d, test_syscall_ftruncate)
|
||||
ql.run()
|
||||
del ql
|
||||
|
||||
@@ -458,12 +458,12 @@ class ELFTest(unittest.TestCase):
|
||||
# os.remove(real_path)
|
||||
|
||||
# ql = Qiling(["../examples/rootfs/arm_linux/bin/arm_posix_syscall"], "../examples/rootfs/arm_linux", verbose=QL_VERBOSE.DEBUG)
|
||||
# ql.set_syscall(0x3, test_syscall_read)
|
||||
# ql.set_syscall(0x4, test_syscall_write)
|
||||
# ql.set_syscall(0x5, test_syscall_open)
|
||||
# ql.set_syscall(0xa, test_syscall_unlink)
|
||||
# ql.set_syscall(0x5c, test_syscall_truncate)
|
||||
# ql.set_syscall(0x5d, test_syscall_ftruncate)
|
||||
# ql.os.set_syscall(0x3, test_syscall_read)
|
||||
# ql.os.set_syscall(0x4, test_syscall_write)
|
||||
# ql.os.set_syscall(0x5, test_syscall_open)
|
||||
# ql.os.set_syscall(0xa, test_syscall_unlink)
|
||||
# ql.os.set_syscall(0x5c, test_syscall_truncate)
|
||||
# ql.os.set_syscall(0x5d, test_syscall_ftruncate)
|
||||
# ql.run()
|
||||
# del ql
|
||||
|
||||
@@ -634,12 +634,12 @@ class ELFTest(unittest.TestCase):
|
||||
return regreturn
|
||||
|
||||
ql = Qiling(["../examples/rootfs/arm64_linux/bin/arm64_posix_syscall"], "../examples/rootfs/arm64_linux", verbose=QL_VERBOSE.DEBUG)
|
||||
ql.set_syscall(0x3f, test_syscall_read)
|
||||
ql.set_syscall(0x40, test_syscall_write)
|
||||
ql.set_syscall(0x38, test_syscall_openat)
|
||||
ql.set_syscall(0x402, test_syscall_unlink)
|
||||
ql.set_syscall(0x2d, test_syscall_truncate)
|
||||
ql.set_syscall(0x2e, test_syscall_ftruncate)
|
||||
ql.os.set_syscall(0x3f, test_syscall_read)
|
||||
ql.os.set_syscall(0x40, test_syscall_write)
|
||||
ql.os.set_syscall(0x38, test_syscall_openat)
|
||||
ql.os.set_syscall(0x402, test_syscall_unlink)
|
||||
ql.os.set_syscall(0x2d, test_syscall_truncate)
|
||||
ql.os.set_syscall(0x2e, test_syscall_ftruncate)
|
||||
ql.run()
|
||||
del ql
|
||||
|
||||
@@ -777,12 +777,12 @@ class ELFTest(unittest.TestCase):
|
||||
return regreturn
|
||||
|
||||
ql = Qiling(["../examples/rootfs/mips32el_linux/bin/mips32el_posix_syscall"], "../examples/rootfs/mips32el_linux", verbose=QL_VERBOSE.DEBUG)
|
||||
ql.set_syscall(4003, test_syscall_read)
|
||||
ql.set_syscall(4004, test_syscall_write)
|
||||
ql.set_syscall(4005, test_syscall_open)
|
||||
ql.set_syscall(4010, test_syscall_unlink)
|
||||
ql.set_syscall(4092, test_syscall_truncate)
|
||||
ql.set_syscall(4093, test_syscall_ftruncate)
|
||||
ql.os.set_syscall(4003, test_syscall_read)
|
||||
ql.os.set_syscall(4004, test_syscall_write)
|
||||
ql.os.set_syscall(4005, test_syscall_open)
|
||||
ql.os.set_syscall(4010, test_syscall_unlink)
|
||||
ql.os.set_syscall(4092, test_syscall_truncate)
|
||||
ql.os.set_syscall(4093, test_syscall_ftruncate)
|
||||
ql.run()
|
||||
del ql
|
||||
|
||||
@@ -813,7 +813,7 @@ class ELFTest(unittest.TestCase):
|
||||
return regreturn
|
||||
|
||||
ql = Qiling(["../examples/rootfs/arm_linux/bin/arm_hello"], "../examples/rootfs/arm_linux")
|
||||
ql.set_syscall(0x04, my_syscall_write)
|
||||
ql.os.set_syscall(0x04, my_syscall_write)
|
||||
ql.run()
|
||||
|
||||
self.assertEqual(1, self.set_syscall)
|
||||
@@ -834,7 +834,7 @@ class ELFTest(unittest.TestCase):
|
||||
|
||||
ins_count = [0]
|
||||
ql.hook_code(instruction_count, ins_count)
|
||||
ql.set_syscall("_llseek", my__llseek)
|
||||
ql.os.set_syscall("_llseek", my__llseek)
|
||||
|
||||
ql.os.stdin = pipe.SimpleInStream(sys.stdin.fileno())
|
||||
ql.os.stdin.write(payload)
|
||||
@@ -900,8 +900,8 @@ class ELFTest(unittest.TestCase):
|
||||
def check_exit_code(ql, exit_code, *args, **kw):
|
||||
ql.exit_code = exit_code
|
||||
|
||||
ql.set_syscall("exit_group", check_exit_group_code, QL_INTERCEPT.ENTER)
|
||||
ql.set_syscall("exit", check_exit_code, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("exit_group", check_exit_group_code, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("exit", check_exit_code, QL_INTERCEPT.ENTER)
|
||||
|
||||
ql.run()
|
||||
self.assertEqual(0, ql.exit_code)
|
||||
@@ -937,8 +937,8 @@ class ELFTest(unittest.TestCase):
|
||||
def check_exit_code(ql, exit_code, *args, **kw):
|
||||
ql.exit_code = exit_code
|
||||
|
||||
ql.set_syscall("exit_group", check_exit_group_code, QL_INTERCEPT.ENTER)
|
||||
ql.set_syscall("exit", check_exit_code, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("exit_group", check_exit_group_code, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("exit", check_exit_code, QL_INTERCEPT.ENTER)
|
||||
|
||||
ql.run()
|
||||
self.assertEqual(0, ql.exit_code)
|
||||
@@ -959,8 +959,8 @@ class ELFTest(unittest.TestCase):
|
||||
def check_exit_code(ql, exit_code, *args, **kw):
|
||||
ql.exit_code = exit_code
|
||||
|
||||
ql.set_syscall("exit_group", check_exit_group_code, QL_INTERCEPT.ENTER)
|
||||
ql.set_syscall("exit", check_exit_code, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("exit_group", check_exit_group_code, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("exit", check_exit_code, QL_INTERCEPT.ENTER)
|
||||
|
||||
ql.run()
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ class ELFTest(unittest.TestCase):
|
||||
pass
|
||||
buf_out = None
|
||||
ql = Qiling(["../examples/rootfs/x86_linux/bin/x86_multithreading"], "../examples/rootfs/x86_linux", multithread=True, verbose=QL_VERBOSE.DEBUG)
|
||||
ql.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.run()
|
||||
|
||||
self.assertTrue("thread 2 ret val is" in buf_out)
|
||||
@@ -84,7 +84,7 @@ class ELFTest(unittest.TestCase):
|
||||
pass
|
||||
buf_out = None
|
||||
ql = Qiling(["../examples/rootfs/arm64_linux/bin/arm64_multithreading"], "../examples/rootfs/arm64_linux", multithread=True, verbose=QL_VERBOSE.DEBUG)
|
||||
ql.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.run()
|
||||
|
||||
self.assertTrue("thread 2 ret val is" in buf_out)
|
||||
@@ -103,7 +103,7 @@ class ELFTest(unittest.TestCase):
|
||||
pass
|
||||
buf_out = None
|
||||
ql = Qiling(["../examples/rootfs/x8664_linux/bin/x8664_multithreading"], "../examples/rootfs/x8664_linux", multithread=True, profile= "profiles/append_test.ql")
|
||||
ql.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.run()
|
||||
|
||||
self.assertTrue("thread 2 ret val is" in buf_out)
|
||||
@@ -122,7 +122,7 @@ class ELFTest(unittest.TestCase):
|
||||
pass
|
||||
buf_out = None
|
||||
ql = Qiling(["../examples/rootfs/mips32el_linux/bin/mips32el_multithreading"], "../examples/rootfs/mips32el_linux", multithread=True, verbose=QL_VERBOSE.DEBUG)
|
||||
ql.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.run()
|
||||
|
||||
self.assertTrue("thread 2 ret val is" in buf_out)
|
||||
@@ -141,7 +141,7 @@ class ELFTest(unittest.TestCase):
|
||||
pass
|
||||
buf_out = None
|
||||
ql = Qiling(["../examples/rootfs/arm_linux/bin/arm_multithreading"], "../examples/rootfs/arm_linux", multithread=True, verbose=QL_VERBOSE.DEBUG)
|
||||
ql.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.run()
|
||||
|
||||
self.assertTrue("thread 2 ret val is" in buf_out)
|
||||
@@ -159,7 +159,7 @@ class ELFTest(unittest.TestCase):
|
||||
except:
|
||||
pass
|
||||
ql = Qiling(["../examples/rootfs/x86_linux/bin/x86_tcp_test","20001"], "../examples/rootfs/x86_linux", multithread=True)
|
||||
ql.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.run()
|
||||
|
||||
self.assertEqual("server send() 14 return 14.\n", ql.buf_out)
|
||||
@@ -177,7 +177,7 @@ class ELFTest(unittest.TestCase):
|
||||
except:
|
||||
pass
|
||||
ql = Qiling(["../examples/rootfs/x8664_linux/bin/x8664_tcp_test","20002"], "../examples/rootfs/x8664_linux", multithread=True)
|
||||
ql.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.run()
|
||||
|
||||
self.assertEqual("server send() 14 return 14.\n", ql.buf_out)
|
||||
@@ -195,7 +195,7 @@ class ELFTest(unittest.TestCase):
|
||||
except:
|
||||
pass
|
||||
ql = Qiling(["../examples/rootfs/arm_linux/bin/arm_tcp_test","20003"], "../examples/rootfs/arm_linux", multithread=True)
|
||||
ql.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.run()
|
||||
|
||||
self.assertEqual("server write() 14 return 14.\n", ql.buf_out)
|
||||
@@ -213,7 +213,7 @@ class ELFTest(unittest.TestCase):
|
||||
except:
|
||||
pass
|
||||
ql = Qiling(["../examples/rootfs/arm64_linux/bin/arm64_tcp_test","20004"], "../examples/rootfs/arm64_linux", multithread=True)
|
||||
ql.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.run()
|
||||
|
||||
self.assertEqual("server send() 14 return 14.\n", ql.buf_out)
|
||||
@@ -238,7 +238,7 @@ class ELFTest(unittest.TestCase):
|
||||
pass
|
||||
|
||||
ql = Qiling(["../examples/rootfs/x86_linux/bin/x86_udp_test","20007"], "../examples/rootfs/x86_linux", multithread=True)
|
||||
ql.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.run()
|
||||
|
||||
self.assertEqual("server sendto() 14 return 14.\n", ql.buf_out)
|
||||
@@ -257,7 +257,7 @@ class ELFTest(unittest.TestCase):
|
||||
pass
|
||||
|
||||
ql = Qiling(["../examples/rootfs/x8664_linux/bin/x8664_udp_test","20008"], "../examples/rootfs/x8664_linux", multithread=True)
|
||||
ql.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.run()
|
||||
|
||||
self.assertEqual("server sendto() 14 return 14.\n", ql.buf_out)
|
||||
@@ -275,7 +275,7 @@ class ELFTest(unittest.TestCase):
|
||||
pass
|
||||
|
||||
ql = Qiling(["../examples/rootfs/arm64_linux/bin/arm64_udp_test","20009"], "../examples/rootfs/arm64_linux", multithread=True)
|
||||
ql.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.os.set_syscall("write", check_write, QL_INTERCEPT.ENTER)
|
||||
ql.run()
|
||||
|
||||
self.assertEqual("server sendto() 14 return 14.\n", ql.buf_out)
|
||||
|
||||
+2
-2
@@ -18,7 +18,7 @@ class RISCVTest(unittest.TestCase):
|
||||
|
||||
def close(ql, fd):
|
||||
return 0
|
||||
ql.set_syscall("close", close, QL_INTERCEPT.CALL)
|
||||
ql.os.set_syscall("close", close, QL_INTERCEPT.CALL)
|
||||
ql.os.stdout = stdout
|
||||
ql.run()
|
||||
self.assertTrue(stdout.read() == b'Hello, World!\n')
|
||||
@@ -32,7 +32,7 @@ class RISCVTest(unittest.TestCase):
|
||||
|
||||
def close(ql, fd):
|
||||
return 0
|
||||
ql.set_syscall("close", close, QL_INTERCEPT.CALL)
|
||||
ql.os.set_syscall("close", close, QL_INTERCEPT.CALL)
|
||||
ql.os.stdout = stdout
|
||||
ql.run()
|
||||
self.assertTrue(stdout.read() == b'Hello, World!\n')
|
||||
|
||||
Reference in New Issue
Block a user