IDA动态调试
01 动态调试概述
IDA作为一款强大的逆向集成工具,对于动态调试也有比较好的支持。利用IDA自带的动态调试功能可以完成大部分动态调试任务。
动态调试是一种观察程序运行时状态的一种手段。
逆向工程中的动态调试的目的主要有:
1 验证静态分析结果
2 观察程序运行时数据
IDA调试器支持的特性:
1 软件断点/硬件断点/条件断点/脚本断点
2 步入/步过/步出函数/执行到光标位置
3 汇编级/伪代码级/源码级 调试代码支持
4 寄存器/内存 读写
5 启动进程调试/附加调试
02 Linux 远程动态调试
ELF文件无法在win 上直接运行
IDA 远程调试需要一个远程调试服务端
实际调试指令的执行由调试服务端完成,IDA充当调试前端
IDA与该服务端通过tcp通信发送调试指令
调试机与被调试机之间需要保证网络畅通,一般是在同一个内网
03 动态调试技巧
1 Ctrl + N 设置代码执行位置(可以用来跳过不想执行的代码)
2 Lazy IDA插件批量修改内存数据【Paste data】
3 附加调试(附加到一个正在运行的进程调试,一般成功后会断在一个固定的库函数里)
1 一般用来调试动态库
2 绕过一些反调试