Exemple #1
0
 def test_command_heap_chunks(self):
     cmd = "heap chunks"
     target = "tests/binaries/heap.out"
     self.assertFailIfInactiveSession(gdb_run_command(cmd, target=target))
     res = gdb_run_silent_command(cmd, target=target)
     self.assertNoException(res)
     self.assertTrue(b"Chunk(addr=" in res and b"top chunk" in res)
     return
Exemple #2
0
    def test_command_set_permission(self):
        self.assertFailIfInactiveSession(gdb_run_command("set-permission"))
        target = "tests/binaries/set-permission.out"

        res = gdb_run_silent_command("set-permission 0x1337000", after=["vmmap",], target=target)
        self.assertNoException(res)
        line = [ l for l in res.splitlines() if b"0x0000000001337000" in l ][0]
        line = line.split()
        self.assertEqual(line[0], b"0x0000000001337000")
        self.assertEqual(line[1], b"0x0000000001338000")
        self.assertEqual(line[2], b"0x0000000000000000")
        self.assertEqual(line[3], b"rwx")

        res = gdb_run_silent_command("set-permission 0x1338000", target=target)
        self.assertNoException(res)
        self.assertTrue(b"Unmapped address")
        return
Exemple #3
0
 def test_command_heap_bins_fast(self):
     cmd = "heap bins fast"
     target = "tests/binaries/heap-fastbins.out"
     self.assertFailIfInactiveSession(gdb_run_command(cmd, target=target))
     res = gdb_run_silent_command(cmd, target=target)
     self.assertNoException(res)
     self.assertTrue(b"Fastbins[idx=0, size=0x10]" in res)
     return
Exemple #4
0
 def test_command_heap_set_arena(self):
     cmd = "heap set-arena main_arena"
     target = "tests/binaries/heap.out"
     self.assertFailIfInactiveSession(gdb_run_command(cmd, target=target))
     res = gdb_run_silent_command(cmd, target=target, after=["heap arenas",])
     self.assertNoException(res)
     self.assertTrue(b"Arena (base=" in res)
     return
Exemple #5
0
 def test_command_heap_chunk(self):
     cmd = "heap chunk p1"
     target = "tests/binaries/heap.out"
     self.assertFailIfInactiveSession(gdb_run_command(cmd, target=target))
     res = gdb_run_silent_command(cmd, target=target)
     self.assertNoException(res)
     self.assertTrue(b"NON_MAIN_ARENA flag: " in res)
     return
Exemple #6
0
    def test_command_set_permission(self):
        self.assertFailIfInactiveSession(gdb_run_command("set-permission"))
        target = "tests/binaries/set-permission.out"

        res = gdb_run_silent_command("set-permission 0x1337000", after=["vmmap",], target=target)
        self.assertNoException(res)
        line = [ l for l in res.splitlines() if b"0x0000000001337000" in l ][0]
        line = line.split()
        self.assertEqual(line[0], b"0x0000000001337000")
        self.assertEqual(line[1], b"0x0000000001338000")
        self.assertEqual(line[2], b"0x0000000000000000")
        self.assertEqual(line[3], b"rwx")

        res = gdb_run_silent_command("set-permission 0x1338000", target=target)
        self.assertNoException(res)
        self.assertTrue(b"Unmapped address")
        return
Exemple #7
0
 def test_command_heap_chunk(self):
     cmd = "heap chunk p1"
     target = "tests/binaries/heap.out"
     self.assertFailIfInactiveSession(gdb_run_command(cmd, target=target))
     res = gdb_run_silent_command(cmd, target=target)
     self.assertNoException(res)
     self.assertTrue(b"NON_MAIN_ARENA flag: " in res)
     return
Exemple #8
0
 def test_command_ropper(self):
     cmd = "ropper"
     self.assertFailIfInactiveSession(gdb_run_command(cmd))
     cmd = "ropper --search \"pop %; pop %; ret\""
     res = gdb_run_silent_command(cmd)
     self.assertNoException(res)
     self.assertFalse(b": error:" in res)
     self.assertTrue(len(res.splitlines()) > 2)
     return
Exemple #9
0
    def test_command_set_permission(self):
        self.assertFailIfInactiveSession(gdb_run_command("set-permission"))
        target = "tests/binaries/set-permission.out"

        res = gdb_run_silent_command("set-permission 0x1337000",
                                     after=[
                                         "vmmap",
                                     ],
                                     target=target)
        self.assertNoException(res)
        self.assertTrue(
            b"0x0000000001337000 0x0000000001338000 0x0000000000000000 rwx" in
            res)

        res = gdb_run_silent_command("set-permission 0x1338000", target=target)
        self.assertNoException(res)
        self.assertTrue(b"Unmapped address")
        return
Exemple #10
0
 def test_command_ropper(self):
     cmd = "ropper"
     self.assertFailIfInactiveSession(gdb_run_command(cmd))
     cmd = "ropper --search \"pop %; pop %; ret\""
     res = gdb_run_silent_command(cmd)
     self.assertNoException(res)
     self.assertFalse(b": error:" in res)
     self.assertTrue(len(res.splitlines()) > 2)
     return
Exemple #11
0
 def test_command_heap_bins_fast(self):
     cmd = "heap bins fast"
     target = "tests/binaries/heap-fastbins.out"
     self.assertFailIfInactiveSession(gdb_run_command(cmd, target=target))
     res = gdb_run_silent_command(cmd, target=target)
     self.assertNoException(res)
     self.assertTrue(b"Fastbins[idx=0, size=0x10]" in res)
     self.assertTrue(b"Chunk(addr=" in res)
     return