以下方法自测3.9.12以下成功,如果搜不到说明版本不符,尝试其他版本,X64代表为64位系统对应文件。
方法一:
1、找到“X:\Program Files\StartAllBack\StartAllBackX64.dll”,拷贝到其他地方;
2、使用MadEdi-Mod、HxD等编辑器修改,搜索16进制的“48 89 5C 24 18 57 48 83 EC 30 48 8D 4C 24 48”;
3、找到后把“48 89 5C”修改为“31 C0 C3”,保存;
4、原“StartAllBackX64.dll”更名,拷贝修改后的“StartAllBackX64.dll”到目录,重启电脑。
方法二:
存为pyhton,注意安装依赖,运行。
import os
import shutil
def hex_to_bytes(hex_str):
return bytes.fromhex(hex_str)
def patch_dll(original_file, search_hex, replace_hex):
# 读取原文件
with open(original_file, 'rb') as f:
content = f.read()
search_bytes = hex_to_bytes(search_hex)
replace_bytes = hex_to_bytes(replace_hex)
if len(search_bytes) != len(replace_bytes):
print("❌ 搜索和替换字节长度不一致,无法替换!")
return
index = content.find(search_bytes)
if index == -1:
print("❌ 未找到目标字节序列。")
return
print(f"✅ 找到目标字节序列,偏移地址:0x{index:X}")
# 替换内容
patched_content = content[:index] + replace_bytes + content[index + len(replace_bytes):]
# 备份原文件为 .original
backup_name = original_file + ".original"
if not os.path.exists(backup_name):
os.rename(original_file, backup_name)
print(f"✅ 原文件已重命名为:{backup_name}")
else:
print(f"⚠️ 备份文件已存在:{backup_name},跳过重命名")
# 保存新文件为原始文件名
with open(original_file, 'wb') as f:
f.write(patched_content)
print(f"✅ 修改后的文件已保存为:{original_file}")
if __name__ == '__main__':
filename = 'StartAllBackX64.dll'
if not os.path.exists(filename):
print("❌ 未找到 StartAllBackX64.dll")
else:
search_hex = '48 89 5C 24 18 57 48 83 EC 30 48 8D 4C 24 48'
replace_hex = '31 C0 C3 24 18 57 48 83 EC 30 48 8D 4C 24 48'
patch_dll(filename, search_hex, replace_hex)