x64dbg基础使用指南
x64dbg的基本使用指南
本篇是为了配合读书笔记,因为原书使用的都是32位的程序,但是目前都是x86-64的机器,所以就学习一下x64dbg。
在52的帖子里看到的一句话,现在还理解不透彻:破解的关键在于找到关键CALL
X64dbg更新很快,但作者对于帮助文档却惜墨如金,有很多实用的强大功能,都需要自己去摸索。
刚才提到寻找关键CALL,IDA虽然F5生成伪码功能强大,并且可以生成函数调用图,但对于复杂的调用看起来就很不直观。并且IDA只能单个文件静态分析,对于跨模块调用就无能为力。
符号文件
什么是符号文件.pdb
符号文件(Symbol Files)是一个数据信息文件。 它包含了应用程序二进制文件(比如:EXE、DLL等)调试信息,专门用来作调试之用,最终生成的可执行文件在运行时并不需要这个符号文件,但你的程序中所有的变量信息都记录在这个文件中。 所以调试应用程序时,这个文件是非常重要的。
设置符号文件保存路径
符号文件通常很大,所以x64dbg自身不带有符号文件,需要自己手动下载和保存,但是默认设置相对路径不太方便,如果下载过符号文件,就会在同一文件夹下生成symbols文件夹,这样在x64dbg升级或者更换的时候非常不方便,所以自己新建一个专门的比较好

在选项中,杂项,设置本地符号路径

使用符号文件
很多情况下,x64dbg不会自动加载符号文件,大概率是防止同时加载过多导致程序崩溃,这时候就需要我们手动加载了
首先需要下载符号文件,打开符号页面,右键.dll,可以发现有下载选项,点击下载即可,但是由于是默认加载微软的符号服务器,所以建议打开代理下载😋

这里也可以选择下载所有dll的符号,下载到我们之前设置的文件夹下😁

基本使用
通常打开一个程序的界面分为4块:
反汇编,寄存器,内存,系统栈

关于调试按钮,就自己看咯,在左上角那里,应该比较好理解的
搜索
搜索字符串:右键汇编代码区,搜索,选择搜索模块,选择搜索内容,单步运行到这里搜索当前模块的字符串内容结果,当然这个感觉没有IDA的好用😁,所以我一般是两个一起看

双击就可以到字符串在反汇编处

编辑字符串
下面学习如何修改字符串常量,首先在反汇编窗口定位到字符串位置,然后在该句信息的窗口双击虚拟内存地址,会x64dbg在内存窗口自动给你跳转到对应位置,

用鼠标选中需要编辑的位置,右键打开二进制编辑器

可以发现如果没有修改到原字符串的大小,是不会覆盖的,

关于这里为什么能在反汇编中动态改变,是因为反汇编区域默认是将在内存中内容读取并解析成相关的汇编代码

一些配置
在选项中,会有一些配置更改的设置,现在我们来看一看
- 事件:就是x64dbg自动暂停的事件,这里也解释了我在阅读笔记1中的疑问,为什么会自动暂停,因为我之前安装的时候勾选了系统断点🤣,这里我们改回去,只保留在入口断点暂停

- 对于引擎和异常保持默认即可
- 反汇编:我这里仅修改了图中三处

- 杂项:可以将搜索引擎改为百度:https://www.baidu.com/s?wd=@topic 遇到不认识的函数选中,右键,符号名称帮助,直接进行查询。
计算器
在帮助里面

显示指令提示
右键反汇编区,选择显示提示或隐藏

发布
右键汇编区代码,然后选择补丁,修补文件即可发布crack版本,注意不要和源文件重名,快捷键Ctrl+P

可以发现已经修改了字符串
