From 29db10cbe647899af80fb4827dfcfe06e460c402 Mon Sep 17 00:00:00 2001 From: Dobin Rutishauser Date: Sun, 23 Jun 2024 07:25:57 +0200 Subject: [PATCH] fix: unittests --- tests/test_asmparser.py | 12 ++++-------- tests/test_datareuse.py | 10 +++++----- tests/test_superpe.py | 2 +- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/tests/test_asmparser.py b/tests/test_asmparser.py index ca48f4e..3e3fcf1 100644 --- a/tests/test_asmparser.py +++ b/tests/test_asmparser.py @@ -42,10 +42,6 @@ class AsmTest(unittest.TestCase): # lea r8, [shcstart] #self.assertTrue("lea r8, [shcstart]" in asm_text_lines[198-1-1]) self.assertTrue("DB 0" in asm_text_lines[198-1-1]) - self.assertTrue("supermega_payload" not in asm_text_lines[198-1-1]) - - # shcstart: - self.assertTrue("shcstart:" in asm_text_lines[213-1-1]) def test_asm_iat_request(self): @@ -61,11 +57,11 @@ class AsmTest(unittest.TestCase): req1 = carrier.iat_requests[0] self.assertEqual(req1.name, "GetEnvironmentVariableW") - self.assertTrue(len(req1.placeholder), 6) # 6 random bytes + self.assertTrue(len(req1.references[0]), 6) # 6 random bytes req2 = carrier.iat_requests[1] self.assertEqual(req2.name, "VirtualAlloc") - self.assertTrue(len(req2.placeholder), 6) # 6 random bytes + self.assertTrue(len(req2.references[0]), 6) # 6 random bytes # added ; at the beginning #self.assertTrue(lines[13-1].startswith("; EXTRN __imp_GetEnvironmentVariableW:PROC")) @@ -95,10 +91,10 @@ class AsmTest(unittest.TestCase): entry = data_reuse_entries[0+1] self.assertTrue('$SG72513' in entry.string_ref) - self.assertTrue('rcx' in entry.register) + self.assertTrue('rcx' in entry.references[0].register) self.assertEqual(entry.data, b"U\x00S\x00E\x00R\x00P\x00R\x00O\x00F\x00I\x00L\x00E\x00\x00\x00") self.assertEqual(entry.addr, 0) - self.assertEqual(7, len(entry.placeholder)) # needs to be 7! + self.assertEqual(7, len(entry.references[0].placeholder)) # needs to be 7! entry = data_reuse_entries[1+1] self.assertTrue('$SG72514' in entry.string_ref) diff --git a/tests/test_datareuse.py b/tests/test_datareuse.py index 316c55d..36a353a 100644 --- a/tests/test_datareuse.py +++ b/tests/test_datareuse.py @@ -38,7 +38,7 @@ class DataReuseTest(unittest.TestCase): def test_relocation_list(self): superpe = SuperPe(PATH_EXES + "7z.exe") relocs = superpe.get_relocations_for_section(".rdata") - self.assertEqual(842, len(relocs)) + self.assertEqual(836, len(relocs)) reloc = relocs[0] self.assertEqual(393216, reloc.base_rva) self.assertEqual(394296, reloc.rva) @@ -50,18 +50,18 @@ class DataReuseTest(unittest.TestCase): """Test reference EXE reloc manager information""" superpe = SuperPe(PATH_EXES + "procexp64.exe") rm = superpe.get_rdata_relocmanager() - self.assertEqual(69, len(rm.intervals)) + self.assertEqual(61, len(rm.intervals)) # 0x1ab0 is magic currently (should use find_first_utf16_string_offset() hole = rm.find_hole(20) - self.assertEqual(hole, (1167361, 1173015)) + self.assertEqual(hole, (1174185, 1174591)) def test_largestgap(self): superpe = SuperPe(PATH_EXES + "7z.exe") rm = superpe.get_rdata_relocmanager() start, stop = rm.find_hole(100) - self.assertEqual(393233, start) - self.assertEqual(394295, stop) + self.assertEqual(394513, start) + self.assertEqual(396511, stop) def test_rdata_overwrite(self): diff --git a/tests/test_superpe.py b/tests/test_superpe.py index 244ed47..87979fc 100644 --- a/tests/test_superpe.py +++ b/tests/test_superpe.py @@ -36,7 +36,7 @@ class SuperPeTest(unittest.TestCase): # Relocations base_relocs: List[PeRelocEntry] = superpe.get_base_relocs() - self.assertEqual(len(base_relocs), 2888) + self.assertEqual(len(base_relocs), 2864) base_reloc = base_relocs[0] self.assertEqual(base_reloc.rva, 0x11E618) self.assertEqual(base_reloc.base_rva, 0x11E000)