mirror of
https://github.com/dobin/SuperMega
synced 2026-06-02 17:27:10 +00:00
fix: unittests
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user