内存对比工具 V2.6 版
内存对比工具 V2.6 版是一款面向程序调试与逆向分析场景的专业工具。它通过读取目标进程的原始内存快照,与当前内存状态进行逐字节对比。
经过长期迭代实测优化,功能精简聚焦,在比对效率、细节处理上表现稳定,适配逆向分析、程序调试、数据追踪场景。
问:内存对比工具有什么用呢?
答:可以对比模块地址哪里发生变动,模块地址格式:123.exe+xxx或123.dll+xxx
只要是模块地址发生变动都能对比出来!(注意:非模块地址不在对比范围)
通常可用于:
- 偷辅助功能地址
- 偷劫持补丁地址
- 两个程序的内存对比
更新时间:2026-10-21 00:00:00
文件大小:4.80MB(5033984)
MD5:a7f7ef8cdde471cc178ec8dd42b91682
【2.6 版本更新内容】
- 检测硬件断点功能优化
- 添加内存补丁测试工具
说明 1:只要按着 F4 键期间就会检测硬件断点地址并记录,松开 F4 键后会在程序运行目录下生成检测硬断地址.txt,里面记录着期间检测到的硬件断点地址。
↓可以用来检测硬件断点补丁地址↓
具体操作方法:
在打开程序瞬间使用进程暂停工具秒按 F5 键暂停该进程(手速一定要快)
然后打开内存对比工具 → 输入该进程 ID → 打开进程
然后一直按着 F4 键,再按 F5 键恢复进程,等程序看到破解效果后,再松开 F4 键
如果按着 F4 键期间检测到了硬件断点地址,就会在程序运行目录生成检测硬断地址.txt
一定要多试几次,避免暂停进程时机过晚或系统卡顿导致检测不到硬件断点地址!
说明 2:可用于测试补丁地址效果
共有两种补丁方式:
- 线程轮询:创建一条线程循环读取 “模块 + 偏移” 的地址是否等于原始字节,如果等于则进行内存修改,直到所有补丁成功后该线程才会终止
- APIHOOK:对目标进程进行 HOOK 指定函数,如果进程调用该函数便会执行补丁操作,可根据需求设置触发次数执行补丁,目前共有 3 个函数可选
如需手动添加地址,请按照以下格式修改;注意:仅可粘贴模块 + 偏移地址格式
1 · 内存对比工具.exe+1AE847 · 0F8562000000 · 909090909090 · 6
2 · 内存对比工具.exe+1BA42E · 0F8811000000 · 909090909090 · 6
3 · 内存对比工具.exe+1C2150 · 0F8C17000000 · 909090909090 · 6
4 · 内存对比工具.exe+1D0369 · 0F8944000000 · 909090909090 · 6
5 · 内存对比工具.exe+1E8771 · 0F8F71000000 · 909090909090 · 6
根据需要修改 → 模块 + 偏移 / 原始字节 / 修改字节,序号和长度不用改,注意不要有空格,多个补丁地址需要换行
常见打补丁失败的原因:
- 请检查 → 模块 + 偏移 / 原始字节 / 修改字节 / 选择程序路径 → 是否正确?
- 权限不足:目标进程有保护,无法读写目标进程的内存
- 杀毒软件 / 系统方面原因可能会有影响
- 补丁时机过早或过晚
●●●●●偷辅助功能地址●●●●●
第一种:进程暂停法(该方法不适用 DLL 注入的辅助)
操作流程:打开进程 → 暂停 / 挂起进程 → 读取原始内存 → 开启某辅助功能 → 开始对比内存即可!
此方法不会有非辅助功能地址干扰,如果辅助是 DLL 注入的话,暂停 / 挂起进程后辅助也会处于假死状态!
说明:打开进程后,“鼠标左键双击”⒋号区的 “头像” 即可暂停 / 恢复该进程!(不能暂停自身进程)
第二种:地址过滤+属性筛选
操作流程:打开进程 → 读取原始内存 → 开启某辅助功能 → 开始对比内存即可!
该方法容易受到内存地址变动的干扰,可通过减少场景频繁切换、最小化窗口等方式减少地址变动,然后勾选 “自动对比数据”,自动过滤掉变动地址;等没有变动地址后,再开启辅助功能进行对比!
内存属性筛选:通常辅助功能地址都是可执行属性代码段地址,建议尝试仅勾选可执行属性 16/32/64 后再对比内存,以便减少不相关的变动内存地址!
●●●●●两个程序内存对比●●●●●
第一种:静态的程序内存对比
操作方法:把原版和破解版分别拉进调试器,让两个进程处于暂停状态【32 位进程软件用 OD 或 x32dbg,64 位进程软件用 x64dbg】
[1] 填写原版进程 ID → 打开进程 → 读取原始内存 [2] 填写破解版进程 ID → 打开进程 → 开始对比内存
这样两个程序的 “静态内存” 不同之处就对比出来了。
第二种:程序运行后的内存对比
操作方法:把原版和破解版同时打开
[1] 填写原版进程 ID → 打开进程 → 读取原始内存 [2] 填写破解版进程 ID → 打开进程 → 开始对比内存
这样两个程序 “运行后的内存” 不同之处就对比出来了。
具体用哪种方法根据需求来决定,第二种方法也包含了第一种方法的地址。 第二种方法运行后的程序会多出一些自身变动地址,需要筛选,看下面的补丁地址2大特征。
注意 1:两个进程的内存对比 → 原版与破解版目录下的模块名大小写必须完全一致,否则不会参与对比!(主进程模块除外)
注意 2:个别程序采用单进程或不同目录双进程模式进行内存读取、对比时,易产生大量规律噪声地址;该噪声特征为原始字节与当前字节呈规律性一致。
解决方案:先运行一个原版程序不要关闭,然后把劫持破解补丁放到原版运行目录下;如果是文件替换补丁,启动原版后补丁文件可能会被占用,需要强制删除被占用补丁文件,再把破解的补丁文件放到原版目录下,然后再启动一个主程序(也就是破解版),两个进程都不能关闭。然后:打开原版进程 ID → 读取原版内存;打开破解版进程 ID → 开始对比内存。
例子:
1 · WizTree64.exe+1CE7F2 · 2901 · E700 · 2
2 · WizTree64.exe+1CE7FA · 2901 · E700 · 2
3 · WizTree64.exe+1CE802 · 2901 · E700 · 2
4 · WizTree64.exe+1CE80A · 46 · 04 · 1
5 · WizTree64.exe+1CE812 · 46 · 04 · 1
6 · WizTree64.exe+1CE81A · 46 · 04 · 1
特征:原始字节相同 / 当前字节相同 如发现大量这种规律性噪声地址时,按照上面的解决方案即可解决。
★★★★★补丁地址2大特征★★★★★
1、通常补丁地址是可执行属性地址
补丁地址必然是可执行代码段的地址,建议仅勾选 “可执行属性 16/32/64” 来对比内存,以便减少不相关的内存地址!
2、通常补丁地址位于所在模块地址的最前面
比方说:破解补丁修改的是 “主进程模块地址” 来达到破解效果,那么补丁地址通常就在 “主进程模块地址” 的最前面!
内存属性说明
正常来说,可执行属性的内存地址是反汇编可执行代码段的地址(页面属性:16/32/64)。
可以这么理解:可执行属性的内存地址不一定是有用地址,但有用的内存地址一定是可执行属性的。
这是因为部分模块加壳后会改变内存地址的内存属性,将内存页从不可执行属性修改为可执行属性。
自动检测硬件断点
说明:打开进程后,自动检测该进程是否存在硬件断点 DR0-DR3,若存在则自动显示出断点地址。
进程暂停功能说明
说明:打开进程后,“鼠标左键双击”⒋号区的 “头像” 即可暂停 / 恢复该进程!(不能暂停自身进程)
过滤系统模块说明
说明:该功能要在 “读取原始内存” 前开启或关闭才生效!一般不需要对比系统模块,除非想知道哪些 API 函数被 HOOK。
中间下方的①、②、③说明:
鼠标右键①弹出:进程模块信息,可根据需求选择要读取的指定模块(点击表头可切换排序),正在读取 / 对比内存 / 开启自动对比数据时不能呼出。
鼠标右键②弹出:内存补丁测试工具,可用于测试补丁地址实际效果(线程轮询和 APIHOOK 两种模式)。
鼠标右键③弹出:其他设置,支持自定义超级列表框选中项背景颜色、选中项字体颜色,以及普通文本颜色。
常见问题
1、电脑开着 360 安全卫士可能打开会闪退,请将本程序添加到信任列表区,或者退出 360 后再打开。
2、当无法正常运行本程序时,请检查程序是否为官方原版,同时退出杀毒软件或重启电脑后再试。
3、打开进程或读取内存数据失败,可能该进程有保护,需要破除保护才能读取内存数据(参考 CE)。
重要声明
本工具仅供合法合规的程序调试、逆向分析、安全研究等授权场景使用。
严禁将本工具用于任何非法用途,包括但不限于未经授权的内存篡改、程序破解、数据窃取、恶意攻击等行为。
任何个人或组织在使用本工具过程中,若违反国家法律法规、行业规范或侵犯他人合法权益,所产生的一切法律责任与后果均由使用者自行承担。