x64dbg是一款开源、免费且功能强大的动态反汇编调试器,主要用于 Windows 平台上的应用程序反汇编、调试和分析。它与传统的调试器如 Ollydbg 相比,提供了更高效、更可靠的解决方案,特别适用于逆向工程和恶意软件分析。
x64dbg操作指南
1、分析目标程序
将目标程序用x64dbg(实际上是x32dbg)打开,看看x64dbg的界面,这里常用的窗口都使用红字标注出来了
2、字符串搜索功能,我们可以通过x64dbg的字符串搜索功能来查看内存中加载的字符串,具体操作步骤为:CPU(反汇编)窗口->鼠标右键->搜索->选择模块(根据个人需求选择,一般选择当前模块,前提是得先执行到主模块)->字符串
3、我们单步到主模块(单步调试快捷键和od一样,F7单步步入,F8单步步过),字符串搜索得到如下结果,可以看到很明显的字符串:
4、双击该字符串即可跳到反汇编窗口中相应位置。
5、下软件断点,运行程序,观察是何处调用了该代码(鼠标点击相应行,按下F2即可快速使用软件断点),下软件断点后,地址处会变为红色,断点窗口能看到相应信息。
6、让程序运行起来(快捷键F9),输入注册信息,点击确认,等待命中软件断点
可以看到,程序的EIP指向了我们的软件断点,此时信息框信息为失败。
7、单步步过,一直走到返回ret,即可查看上层代码
可以看到,源程序是使用了2个处理函数,分别对用户名和密码进行了运算,用户名运结果放到了eax中,密码运算结果放在ebx中,比较二者运算结果是否相同,决定调用注册成功函数还是注册失败函数。(由于此时只是介绍工具使用,故不展示算法分析部分,大致流程为eax = F1(用户名),ebx = F2(注册码),cmp eax,ebx)
8、这时候,我们使用x64dbg的代码修改功能,将对应的注册失败验证跳过,即可完成破解:将0x401243处的je 0x40124C改为jmp 0x40124C(双击代码行即可修改)
9、保存到文件(反汇编窗口右键->补丁->修补文件)
10、现在,验证我们的破解成果吧!
x64dbg注意事项
1.为帮助用户更好地了解x64dbg反汇编后的CPU汇编指令信息,对汇编指令的“助记符摘要”全部进行了汉化。由于本次更新幅度较大,更改的内容较多,所以对“助记符帮助”进行了部分汉化。汇编指令的汉化参考了“清华大学出版社”出版的《汇编语言程序设计教程》(第4版)中术语,因此可能与其他软件的汉化术语略有不同。
2.对Scylla插件等进行了全面汉化。
3.对x64dbg帮助文档的主要内容进行了汉化,并按照最新版进行了修订、翻译。对界面字体以及布局重新进行了设置。将默认调用在线英文帮助更改为调用本地的中文帮助文件。
4.对x64dbg官方中文版的汉化错误及不一致处进行了修订,并与帮助文档的关键词进行了统一。
5.对中文版界面字体进行了重新设置,使其更为美观。
x64dbg功能
1、开源
2、直观、熟悉、全新的用户界面
3、类C表达式解析器
4、DLL和EXE文件的全功能调试(TitanEngine)
5、类似IDA的侧边栏,带有跳跃箭头
6、类似IDA的指令令牌荧光笔(高亮寄存器等)
7、内存映射
8、符号视图
9、线程视图
10、源代码视图
11、图形视图
12、内容敏感的寄存器视图
13、完全可定制的配色方案
14、动态识别模块和字符串
15、导入重构器集成(Scylla)
16、快速反汇编器(Zydis)
17、用于注释、标签、书签等的用户数据库(JSON)。
18、插件支持与不断增长的API
19、用于自动化的可扩展、可调试的脚本语言
20、多数据类型内存转储
21、基本调试符号(PDB)支持
22、动态堆栈视图
23、内置汇编程序(XEDParse/asmjit)
24、可执行文件修补
25、分析