fix: small anoying bugs

This commit is contained in:
Dobin
2024-07-21 11:14:29 +01:00
parent 6603fd3df7
commit a5851c397b
3 changed files with 11 additions and 6 deletions
+8 -5
View File
@@ -13,7 +13,7 @@ from observer import observer
logger = logging.getLogger("Helper") logger = logging.getLogger("Helper")
SHC_VERIFY_SLEEP = 0.1 SHC_VERIFY_SLEEP = 0.2
def write_webproject(project_name, settings): def write_webproject(project_name, settings):
@@ -141,15 +141,18 @@ def round_up_to_multiple_of_8(x):
def ui_string_decode(data): def ui_string_decode(data):
res = ""
try: try:
if len(data) > 32: if len(data) > 32:
return "Data with len {}".format(len(data)) res = "Data with len {}".format(len(data))
elif b"\x00\x00" in data: elif b"\x00\x00" in data:
return "(utf16) " + data.decode("utf-16le") res = "(utf16) " + data.decode("utf-16le")
else: else:
return "(utf8) " + data.decode("utf-8") res = "(utf8) " + data.decode("utf-8")
except Exception as e: except Exception as e:
logger.warning("ui_string_decode: {}".format(e)) res = "(bytes) " + data.hex()
return res
def ascii_to_hex_bytes(ascii_bytes): def ascii_to_hex_bytes(ascii_bytes):
+1
View File
@@ -77,6 +77,7 @@ class Injectable():
# Data Reuse # Data Reuse
def add_datareuse_fixup(self, fixup: DataReuseEntry): def add_datareuse_fixup(self, fixup: DataReuseEntry):
logger.info("---( Add datareuse: {}".format(fixup.string_ref))
self.reusedata_fixups.append(fixup) self.reusedata_fixups.append(fixup)
def get_all_reusedata_fixups(self) -> List[DataReuseEntry]: def get_all_reusedata_fixups(self) -> List[DataReuseEntry]:
+2 -1
View File
@@ -257,7 +257,7 @@ class Injector():
# insert data # insert data
logger.info("---( DataReuseFixups: Inject the data") logger.info("---( DataReuseFixups: Inject the data")
for datareuse_fixup in reusedata_fixups: for datareuse_fixup in reusedata_fixups:
logger.debug(" Handling DataReuse Fixup: {} (.code: {})".format( logger.info(" Handling DataReuse Fixup: {} (.code: {})".format(
datareuse_fixup.string_ref, datareuse_fixup.in_code)) datareuse_fixup.string_ref, datareuse_fixup.in_code))
if datareuse_fixup.in_code: # .text if datareuse_fixup.in_code: # .text
@@ -281,6 +281,7 @@ class Injector():
data_rva = hole_rva[0] data_rva = hole_rva[0]
self.superpe.pe.set_bytes_at_rva(data_rva, var_data) self.superpe.pe.set_bytes_at_rva(data_rva, var_data)
datareuse_fixup.addr = data_rva + self.injectable.superpe.get_image_base() datareuse_fixup.addr = data_rva + self.injectable.superpe.get_image_base()
##
logging.info(" Add to .rdata at 0x{:X} ({}): {}: {}".format( logging.info(" Add to .rdata at 0x{:X} ({}): {}: {}".format(
datareuse_fixup.addr, data_rva, datareuse_fixup.string_ref, ui_string_decode(var_data))) datareuse_fixup.addr, data_rva, datareuse_fixup.string_ref, ui_string_decode(var_data)))