add: relokator

This commit is contained in:
Dobin
2024-06-02 17:38:52 +01:00
parent 7d1028a578
commit 0386676f90
+44
View File
@@ -0,0 +1,44 @@
import sys
from model.defs import *
from pe.superpe import SuperPe
def main(filename: str, current_base: int):
print("Handling: {}".format(filename))
superpe = SuperPe(filename)
r = {}
relocation: PeRelocEntry
for relocation in superpe.get_base_relocs():
if relocation.base_rva in r:
r[relocation.base_rva] += 1
else:
r[relocation.base_rva] = 1
#print("Base: 0x{:X} RVA: 0x{:X} Offset: {} Type: {}".format(
# relocation.base_rva,
# relocation.rva,
# relocation.offset,
# relocation.type,
#))
sum = 0
for base, count in r.items():
print("0x{:X}: {}".format(base, count))
sum += count
print("Sum: {}".format(sum))
print("Image Base : 0x{:X}".format(superpe.get_image_base()))
print("Current Base: 0x{:X}".format(current_base))
if __name__ == "__main__":
if len(sys.argv) != 3:
print("./relokator <filename> <base>")
exit(1)
filename = sys.argv[1]
current_base = int(sys.argv[2], 16)
main(filename, current_base)