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
|
# Special case: DLL exported function direct overwrite
|
||||||
if self.superpe.is_dll() and self.settings.dllfunc != "" and carrier_invoke_style == CarrierInvokeStyle.ChangeEntryPoint:
|
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)
|
rva = self.superpe.getExportEntryPoint(self.settings.dllfunc)
|
||||||
|
|
||||||
# Size and sanity checks
|
# Size and sanity checks
|
||||||
@@ -181,6 +181,10 @@ class Injector():
|
|||||||
if self.settings.patch_show_window:
|
if self.settings.patch_show_window:
|
||||||
self.superpe.patch_subsystem()
|
self.superpe.patch_subsystem()
|
||||||
|
|
||||||
|
# correct checksum
|
||||||
|
new_checksum = self.superpe.pe.generate_checksum()
|
||||||
|
self.superpe.pe.OPTIONAL_HEADER.CheckSum = new_checksum
|
||||||
|
|
||||||
# We done
|
# We done
|
||||||
logger.info("--( Write to file: {}".format(exe_out))
|
logger.info("--( Write to file: {}".format(exe_out))
|
||||||
self.superpe.write_pe_to_file(exe_out)
|
self.superpe.write_pe_to_file(exe_out)
|
||||||
|
|||||||
Reference in New Issue
Block a user