如何用x64dbg对比原版与经x64dbg修改的EXE文件差异
定位原版与补丁版EXE差异的实操方法(x64dbg/OllyDbg)
通用预处理步骤
- 先确认两个EXE的PE结构匹配:检查文件头、节表名称及大小,排除加壳、节重命名等无关干扰(可在调试器的
内存窗口查看节信息)。 - 确保两个文件加载到调试器时的基址一致,避免重定位导致的假差异(若基址不同,可手动修改调试器的加载基址)。
用x64dbg找修改位置
方法1:内存镜像导出对比
- 加载原版EXE,暂停在入口点,打开
内存窗口(快捷键Alt+M),右键选择保存内存到文件,导出完整进程镜像(勾选所有节)。 - 关闭x64dbg,加载补丁版EXE,重复上述步骤导出镜像。
- 用二进制对比工具(如WinMerge、Beyond Compare)对比两个镜像文件,定位差异偏移。
- 回到x64dbg加载补丁版,在
内存窗口跳转至差异偏移,查看对应的汇编指令及内存值,确认修改内容。
方法2:插件自动对比
- 安装x64dbg支持的
PatchDiff2或ScyllaHide插件。 - 同时加载原版和补丁版EXE到调试器,启动插件的对比功能。
- 插件会自动扫描代码段、数据段,标记出所有差异区域;点击差异条目可直接跳转至修改地址,查看指令变更。
用OllyDbg找修改位置
方法1:内存镜像导出对比
- 加载原版EXE,暂停后按
Alt+M打开内存窗口,右键选择Dump full process导出完整进程镜像。 - 关闭OllyDbg,加载补丁版EXE,重复导出操作。
- 用二进制对比工具找出差异偏移,返回OllyDbg跳转至该偏移,查看汇编指令的修改细节。
方法2:OllyDiff插件对比
- 安装
OllyDiff插件,启动OllyDbg后加载原版EXE,点击插件菜单OllyDiff->Save target保存代码快照。 - 关闭原版,加载补丁版EXE,点击
OllyDiff->Compare with saved target。 - 插件会列出所有代码段差异,双击差异项直接跳转至修改地址,查看具体指令变更。
实用技巧
- 优先检查
.text节(代码段):绝大多数调试器修改的执行逻辑都集中在此区域。 - 数据段差异:若差异在
.data或.rdata节,重点查看字符串、常量值是否被修改(通常用于调整校验、配置参数)。 - 排除重定位干扰:加载文件后待调试器完成重定位再导出镜像,避免基址不同导致的无效差异。
内容的提问来源于stack exchange,提问作者walid761
相关产品推荐
相关产品推荐

