From c87cb985039a2d4b8f5728e59b7c60a9823df9ed Mon Sep 17 00:00:00 2001 From: Dobin Date: Mon, 12 Feb 2024 17:51:10 +0000 Subject: [PATCH] fix: make refpatch register independent --- phases/ctoasm.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/phases/ctoasm.py b/phases/ctoasm.py index da2c35a..5f5827c 100644 --- a/phases/ctoasm.py +++ b/phases/ctoasm.py @@ -166,9 +166,18 @@ def fixup_asm_file(filename, payload_len, capabilities: ExeCapabilities): for idx, line in enumerate(lines): if "supermega_payload" in lines[idx]: print(" > Replace external reference at line: {}".format(idx)) + #lines[idx] = lines[idx].replace( + # "mov r8, QWORD PTR supermega_payload", + # "lea r8, [shcstart]" + #) + # better keep register (hack) lines[idx] = lines[idx].replace( - "mov r8, QWORD PTR supermega_payload", - "lea r8, [shcstart]" + "mov ", + "lea " + ) + lines[idx] = lines[idx].replace( + "QWORD PTR supermega_payload", + "[shcstart]" ) # replace payload length