From 3bb7562bfa38d86e61c68ed01a6845f28ac10be3 Mon Sep 17 00:00:00 2001 From: Dobin Date: Sat, 17 Feb 2024 19:34:22 +0000 Subject: [PATCH] fix: masm_shc error because of late include fixes --- phases/compiler.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/phases/compiler.py b/phases/compiler.py index c5bcfda..6b75d6b 100644 --- a/phases/compiler.py +++ b/phases/compiler.py @@ -71,6 +71,12 @@ def fixup_asm_file(filename: FilePath, payload_len: int): #for idx, line in enumerate(lines): # if "jmp\tSHORT" in lines[idx]: # lines[idx] = lines[idx].replace("SHORT", "") + + for idx, line in enumerate(lines): + # Remove EXTRN, we dont need it + # Even tho it is part of IAT_REUSE process (see fixup_iat_reuse()) + if "EXTRN __imp_" in lines[idx]: + lines[idx] = "; " + lines[idx] # replace external reference with shellcode reference for idx, line in enumerate(lines): @@ -137,11 +143,6 @@ def fixup_iat_reuse(filename: FilePath, exe_info): # do IAT reuse for idx, line in enumerate(lines): - # Remove EXTRN, we dont need it - if "EXTRN __imp_" in lines[idx]: - lines[idx] = "; " + lines[idx] - continue - # Fix call # call QWORD PTR __imp_GetEnvironmentVariableW if "call" in lines[idx] and "__imp_" in lines[idx]: