[原创]在x64dbg中设置条件断点
2019-5-17 10:04 18326
x64dbg是逆向分析win64程序的利器,它的地位类似于OllyDbg。最近遇上了怎样在x64dbg设置条件断点的问题,网上搜索了一遍仅看到x64dbg的使用手册,没有图文并茂的说明文档,琢磨了一番搞明白了,现写出来分享给大家。
1、 条件断点
在想要设置断点的指令处按F2设置断点,然后在断点窗口选中该断点,右键选择“Edit”
在Break Condition写入中断条件,如下图中写的:(esi == 73) && (eax==64)
注:此处的73,64都为16进制数。
设置后运行将在满足条件的指令处停下来。
2、 条件记录断点
条件记录断点就是没有中断条件,仅将关注的数据记录下来。
如下图所示,设置break condition为0,Log text设置需要记录的数据,同时将silent项选上。
设置完运行后,在Log窗口就可以看到记录的数据。
IDA Pro切换图形或代码模式
1、空格
2、右键选择Text View/Graph View切换
图形模式
代码模式
IDA Pro常用基础操作
IDA Pro常用基础操作
1、查看字符串
2、跳转到代码中
3、跳转到地址
跳转到_text_410CC9位置
4、堆栈窗口
IDA-ESP窗口现在列出了我们感兴趣的函数的堆栈结构
通过调试器窗口指向堆栈窗口,点击"箭头"
5、把汇编转换成源代码
强大的F5
6、监视
我们可以添加监视,通过监视观察在程序执行过程中数据的变化。
7、转到入口点
8、Text view
9、Graph view
10、查看string
1、IDA Pro下断点
F2下断点
F9运行
变成红色
或右键
2、查看导入导出表
3、打开调试器窗口
4、视图窗口
5、查看数据段的字符串在代码段中的引用位置
函数可以利用交叉定位找到调用的地址.
字符串无法找到,可能调用的地址经过变化
6、CODE XREF
外部参照代码
7、每个函数最上方为函数的栈帧。
8、ESC键经常会关掉窗口,可以RESET…
String每次打开都会扫描,可以设置不同语言特性对应的字符串。
9、快捷键G.跳转到地址或者名称。go窗口。在反汇编窗口,esc键是返回。ctrl+enter是下一步。或者用图标:
10、IDA对函数栈帧的表示方法。。。挺有用。。命名方式与大小:
详细栈帧:
其中r表示返回地址。
11、栈帧为了对齐等,一般在ebp上面留开8个字节。
12、Alt+T 搜索字符串。 N重命名。。ALT+I 搜索值
13、D,把代码变成数据,C反之。U,取消格式。
x64dbg使用技巧与实用插件合集
本文是针对刚开始接触X64dbg的新人写的实用技巧和插件合集 前言萌新一个,接触逆向时间不长,但因为很喜欢x64dbg这款调试器,所以花了一些时间去了解,x64dbg的这类帖子相对较少,本贴的初衷是希望其他新人在学习的时候可以多一些参考,少一些时间精力的浪费。希望大家为我的帖子指正错误和做补充。 以下均基于Mar 12 2021版本x64dbg官方版本,可到官方网站直接下载 官方网站:https://x64dbg.com/ 第一次运行双击x96dbg,出现三个弹窗,会生成x96dbg.ini文件。当你需要把整个程序文件夹移动到其他路径时,最好把这个ini删除,重新双击让它再生成。当你需要把它加到发送到菜单中的时候,也推荐添加x96dbg,它会自动选择用x32还是x64dbg打开。
你需要做些什么设置外观
选项设置
使用技巧篇
插件推荐篇以下主要详细介绍我平时常用的插件,建议大家按照需求来安装(插件放在release\x32或者x64\plugins目录下,以.dp32或.dp64结尾) Scylla(脱壳与导入表修复)
SwissArmyKnife(导入Map文件)https://github.com/Nukem9/SwissArmyKnife 没什么好解释的,分析C程序的时候用IDA生成MAP文件,然后用这个插件加载。分析delphin程序推荐用Interactive Delphi Reconstructor先分析,再生成MAP文件用,还有其他程序也同样。MAP文件可以让你的分析进度大大加快,减少分析一些已知的库函数。 x64dbg_tol(中文搜索支持)https://bbs.pediy.com/thread-261942-1.htm 必装插件,虽然官方在某个版本开始改善了对中文的支持,但他们在博客上也说了,可能会不全,建议自行安装插件。我自己测试了,嗯,他们说的没错。装了这个插件就能搜到之前搜不到的中文字符串了。 ScyllaHide(反反调试)https://github.com/x64dbg/ScyllaHide x64dbg官方开发的开源反反调试插件,同类插件也有好几个,但官方的用得人比较多且更新快,所以这边推荐官方的插件。使用方法也很简单,插件菜单——Options——Loaded里可以选择自带的绕过方案(过一般的反调试可以用Basic甚至直接用自带的 调试——高级——隐藏调试器) 试了下VM3.x的反调试可以用自带的VM方案直接过掉(反而OD的StrongOD插件不行)
Ret-Sync (IDA x64dbg\OD 同步调试插件)https://github.com/bootleg/ret-sync https://bbs.pediy.com/thread-252634.htm 可以让IDA和x64dbg\OD\windbg进行同步调试,支持在IDA中直接进行单步、下断点、运行等操作,x64dbg将会与IDA保持同步,提高你调试效率的神器,关于安装、使用说明可以参考官方github说明(更详细)和看雪的帖子。 这里要特别提一点,如果你需要在虚拟机里用x64dbg,实体机里用IDA,需要创建两个.sync文件,内容都为
一个在装了IDA的机器上,放在你需要调试的程序目录下(跟IDA生成的IDB文件放一起) 一个放在安装了动态调试器的机器上,用户文件夹根目录(C:\Users\你的用户名) 这样就可以实现虚拟机和实体机同步调试了
E-ApiBreak(常用断点设置)https://www.52pojie.cn/forum.php?mod=viewthread&tid=1384349 OD上常用的一个工具,现在x64dbg也有了。简单易用,不多说明。
E-Debug(分析易语言程序必备)https://www.52pojie.cn/forum.php?mod=viewthread&tid=1374290 原作者githubhttps://github.com/fjqisba/E-debug-plus 最开始我在OD上用这个插件,可以让分析易语言的效率倍增。最近发现有人移植到x64dbg了,在此推荐一波,打开后会自动识别易语言库函数并且注释。
HotSpots(用来寻找事件断点)https://github.com/ThunderCls/xHotSpots 下拉框选择对应语言,按下按钮可以在按钮事件处理函数 下断点。
我把个人觉得必备的几个插件打包了,下载覆盖相应文件夹即可。(xAnalyzer,SwissArmyKnife,x64dbg_tol,ScyllaHide,BaymaxTools,xHotSpots)其他插件如果需要自行下载即可 |
https://www.52pojie.cn/thread-1393075-1-1.html