x64dbg是基于QT平台开发的免费开源调试器,能够帮助逆向分析人员深入理解程序执行流程、调试代码逻辑,是进行软件安全分析、漏洞研究和学习汇编指令的实用工具。软件支持64位与32位应用程序的反汇编与动态分析。它提供直观的中文界面和类似OllyDbg的操作体验,集成了表达式解析器、DLL/EXE调试、反汇编视图、脚本语言等专业功能,并允许通过插件扩展能力。
使用教程
1、分析目标程序
将目标程序用软件打开,看看界面,这里常用的窗口都使用红字标注出来了

2、字符串搜索功能,我们可以通过字符串搜索功能来查看内存中加载的字符串,具体操作步骤为:CPU(反汇编)窗口->鼠标右键->搜索->选择模块(根据个人需求选择,一般选择当前模块,前提是得先执行到主模块)->字符串

3、我们单步到主模块(单步调试快捷键和od一样,F7单步步入,F8单步步过),字符串搜索得到如下结果,可以看到很明显的字符串

4、双击该字符串即可跳到反汇编窗口中相应位置

5、下软件断点,运行程序,观察是何处调用了该代码(鼠标点击相应行,按下F2即可快速使用软件断点),下软件断点后,地址处会变为红色,断点窗口能看到相应信息

6、让程序运行起来(快捷键F9),输入注册信息,点击确认,等待命中软件断点
可以看到,程序的EIP指向了我们的软件断点,此时信息框信息为失败

7、单步步过,一直走到返回ret,即可查看上层代码
可以看到,源程序是使用了2个处理函数,分别对用户名和密码进行了运算,用户名运结果放到了eax中,密码运算结果放在ebx中,比较二者运算结果是否相同,决定调用注册成功函数还是注册失败函数。(由于此时只是介绍工具使用,故不展示算法分析部分,大致流程为eax = F1(用户名),ebx = F2(注册码),cmp eax,ebx)

8、这时候,我们使用代码修改功能,将对应的注册失败验证跳过,即可完成破解:将0x401243处的je 0x40124C改为jmp 0x40124C(双击代码行即可修改)

9、保存到文件(反汇编窗口右键->补丁->修补文件)

10、现在,验证我们的破解成果吧!

