mirror of
https://github.com/dobin/SuperMega
synced 2026-06-02 17:27:10 +00:00
46 lines
1.0 KiB
Python
46 lines
1.0 KiB
Python
import shutil
|
|
from typing import List
|
|
import unittest
|
|
import logging
|
|
|
|
from model import ExeInfo
|
|
from defs import *
|
|
from helper import hexdump
|
|
from observer import observer
|
|
|
|
from phases.datareuse import *
|
|
|
|
|
|
|
|
class DataReuseTest(unittest.TestCase):
|
|
def test_relocation_list(self):
|
|
data_reuser = DataReuser("exes/7z.exe")
|
|
data_reuser.init()
|
|
|
|
relocs = data_reuser.get_relocations_for_section(".rdata")
|
|
self.assertEqual(30, len(relocs))
|
|
reloc = relocs[0]
|
|
self.assertEqual(393216, reloc.base_rva)
|
|
self.assertEqual(394296, reloc.rva)
|
|
self.assertEqual(1080, reloc.offset)
|
|
self.assertEqual("I", reloc.type)
|
|
|
|
|
|
def test_largestgap(self):
|
|
data_reuser = DataReuser("exes/7z.exe")
|
|
data_reuser.init()
|
|
|
|
size, start, stop = data_reuser.get_reloc_largest_gap(".rdata")
|
|
self.assertEqual(129395, size)
|
|
self.assertEqual(3807, start)
|
|
self.assertEqual(133203, stop)
|
|
|
|
|
|
def test_rdata_overwrite(self):
|
|
pass
|
|
|
|
|
|
def test_asm_lea_create(self):
|
|
pass
|
|
|