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