mirror of
https://github.com/dobin/SuperMega
synced 2026-06-02 17:27:10 +00:00
feature: datareuse initial commit
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user