fix: recalculate pe checksum (implements #2)

This commit is contained in:
Dobin Rutishauser
2025-01-25 11:53:43 +01:00
parent dca0d96348
commit 1d3324686f
+5 -1
View File
@@ -120,7 +120,7 @@ class Injector():
# Special case: DLL exported function direct overwrite
if self.superpe.is_dll() and self.settings.dllfunc != "" and carrier_invoke_style == CarrierInvokeStyle.ChangeEntryPoint:
logger.warning("---[ Inject DLL: Overwrite exported function {} with shellcode".format(settings.dllfunc))
logger.warning("---[ Inject DLL: Overwrite exported function {} with shellcode".format(self.settings.dllfunc))
rva = self.superpe.getExportEntryPoint(self.settings.dllfunc)
# Size and sanity checks
@@ -181,6 +181,10 @@ class Injector():
if self.settings.patch_show_window:
self.superpe.patch_subsystem()
# correct checksum
new_checksum = self.superpe.pe.generate_checksum()
self.superpe.pe.OPTIONAL_HEADER.CheckSum = new_checksum
# We done
logger.info("--( Write to file: {}".format(exe_out))
self.superpe.write_pe_to_file(exe_out)