x64dbg 是一款在 Windows 平台上运行的免费开源调试工具,能够对 64 位和 32 位程序进行反汇编与动态分析。它的界面为中文且操作直观,上手感受接近 OllyDbg,同时内置表达式解析器、DLL/EXE 调试、反汇编视图和脚本语言等专业能力,并支持通过插件进一步扩展功能。
x64dbg 采用 QT 平台构建,架构稳定性较好,逆向分析人员可借助它深入把握程序执行流程、调试代码逻辑,在软件安全分析、漏洞研究以及汇编指令学习等场景中都能派上用场。

1、积极发展
x64_dbg的开发工作仍在持续推进中。
2、GPLv3
本页既提供可直接运行的成品程序,也附上完整源码,方便你按需取用或参与改进。
3、自定义
用C++写成的插件,能按你的偏好来更换颜色并进行调节。
4、X64/X32支持
这款工具同时支持对64位与32位程序的调试工作。
5、建立在开源库
x64_dbg 集成了 Qt、TitanEngine、BeaEngine、青蟹、杨松、LZ4 与 XEDParse 这几套组件。
6、操作门槛低,开发能力却相当扎实
x64_dbg 采用 C++ 与 Qt4 编写,新功能的加入因此变得更为迅速。
7、脚本化
x64_dbg 内置了一套类汇编脚本语言,可直接用于调试过程。
8、社区意识
x64_dbg 具备多种功能。
9、伸缩
开发插件,用以为其增添脚本指令或集成能力。
1、分析目标程序
用x64dbg(实际启动的是x32dbg)载入目标程序后,观察它的主界面,常用窗口的位置已在图中用红字标出。

2、借助 x64dbg 的字符串搜索能力,可以查看内存中已加载的字符串内容。操作路径如下:在 CPU(反汇编)窗口中点击鼠标右键,进入“搜索”菜单,再选择“模块”——模块可按实际需要挑选,通常选中当前模块即可,但前提是程序已经执行到主模块——随后点选“字符串”。

3、跟着调试器进入主模块,快捷键与 od 一致,F7 步入、F8 步过,随后用字符串搜索功能查找,得到的结果中能直接看到一段特征明显的字符串

4、双击这串字符,反汇编窗口会立刻定位到与之对应的地址处

5、在目标位置设置软件断点后运行程序,留意是哪段代码调用了该处(将光标定位到对应行并按F2,即可迅速完成软件断点的添加);断点生效时该地址会显示为红色,断点窗口中也能查看相关记录。

6、按F9让程序开始运行,填入注册信息后点确认,等待软件断点被触发。
程序运行到软件断点处时,EIP 已经指向该断点位置,信息框此时显示的内容是失败。

7、利用单步步过功能持续执行,直至抵达返回指令ret处,便能查看上一层级的代码内容。
源程序里有两个处理函数,一个负责运算用户名,一个负责运算密码。用户名算出的结果存入 eax,密码算出的结果存入 ebx,随后比较这两个值是否相等,据此选择调用注册成功函数或注册失败函数。这里只说明工具的使用方式,算法分析部分暂不展开,大致流程是 eax = F1(用户名),ebx = F2(注册码),cmp eax,ebx。

8、此时借助 x64dbg 的代码修改功能,把与注册失败相关的验证环节绕过,就能完成破解:在 0x401243 位置将 je 0x40124C 改成 jmp 0x40124C,双击对应代码行即可进行修改。

9、将修改结果写入文件(在反汇编窗口点击右键,依次选择“补丁”与“修补文件”)

10、接下来,检验一下破解是否成功吧!

(您的评论需要经过审核才能显示)
0条评论