x64dbg是逆向分析win64程序的利器,这款强大的免费开源逆向工程和动态调试工具专为Windows平台设计,原生支持中文,提供了与著名OllyDbg类似的用户体验。x64dbg在操作界面上极为简洁,专注于提供高效的调试功能,适用于那些熟悉OllyDbg的用户。支持类似C的表达式解析器、全功能的DLL和EXE文件调试、IDA般的侧边栏与跳跃箭头、动态识别模块和串、快反汇编、可调试的脚本语言自动化等多项实用分析功能,可以满足了用户各方面使用需求。
主要特点
x64dbg通过其全面的功能支持,特别适合进行64位应用程序的调试和分析,这是其前辈OllyDbg无法实现的。具体功能包括:
- 类C语言的表达式解析器;
- 支持DLL和EXE文件的全面调试;
- 具有IDA风格的侧边栏和跳转箭头;
- 动态模块和字符串识别;
- 快速反汇编;
- 支持脚本语言,实现调试过程的自动化。
结构简介
x64dbg包含三个主要组件:
- DBG :调试核心部分,负责处理所有调试操作,并利用TitanEngine技术为GUI提供数据。
- GUI :图形用户界面部分,基于Qt框架构建,提供与用户的所有交互功能。
- Bridge :作为DBG和GUI之间的通信中介,允许在不更新其他代码的情况下添加新功能。
x64dbg的设计不仅注重功能的强大,也兼顾用户操作的便捷性。它是那些需要深入分析和调试64位应用程序的专业人员的理想选择,能够有效地增强他们的工作效率。
功能特色
1、积极发展
x64_dbg正在不断的积极发展。
2、GPLv3
我们同时提供了可执行文件和源代码。随意作出贡献。
3、自定义
C ++编写的插件,改变颜色和调整你的喜好。
4、X64/X32支持
x64_dbg可以调试x64和X32的应用程序。x64_dbg中文版只有一个接口。
5、建立在开源库
x64_dbg使用的Qt,TitanEngine,BeaEngine,青蟹,杨松,LZ4和XEDParse。
6、操作简单,功能强大的开发
x64_dbg使用C ++和Qt4的快速添加新的功能。
7、脚本化
x64_dbg有一个集成的,可调试,ASM-like脚本语言。
8、社区意识
x64_dbg有许多功能的倒车社会思想或创建的。
9、伸缩
编写插件来添加脚本命令或集成的工具。
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、现在,验证我们的破解成果吧!