没有合适的资源?快使用搜索试试~ 我知道了~
链接: https://pan.baidu.com/s/14a222tqZajQbcQMtjUr-uA?pwd=kqfw 提取码: kqfw 复制这段内容后打开百度网盘手机App,操作更方便哦 --来自百度网盘超级会员v6的分享 【IDA 反汇编详解】 IDA(Interactive Disassembler)是一款强大的反汇编工具,它在逆向工程领域中占有重要地位。通过反汇编,我们可以理解二进制程序的逻辑,这对于软件安全分析、漏洞挖掘和恶意软件研究至关重要。 在ID
资源推荐
资源详情
资源评论
IDA 实例教程
作者:笨笨雄
邮箱:nemo314@gmail.com
1 软件环境
静态分析有很多好处,例如加壳的程序(尽管对于高手来说这并不会耗费太多时间),
我们不需要寻找 OEP,也不需要解除自校验,只要修复 IAT,DUMP 下来就可以动手分析
了。假如你需要修改程序,可以使用内存补丁技术。动态与静态,调试器与反汇编器结合可
以简化分析任务,帮助我们理解代码。因此掌握一种反汇编器是非常必要的。IDA 可以说是
这方面的首选工具,它为我们提供了丰富的功能,以帮助我们进行逆向分析。这从 IDA 复
杂的工作界面便可以知道。
种类繁多的工具栏
在分辨率不高的情况,这些工具栏与反汇编窗口挤在小屏幕里,看起来不爽。我一般把
它关闭(查看=>工具栏=>主工具栏)以获得更好的视觉效果。当我们需要这些功能的时候,
直接使用快捷键就可以了。下面是常用快捷键的清单:
快捷键
功能
注释
C
转换为代码
一般在 IDA无法识别代码时使用
这两个功能整理代码
D
转换为数据
A
转换为字符
N
为标签重命名
方便记忆,避免重复分析。
;
添加注释
R
把立即值转换为字符
便于分析立即值
H
把立即值转换为 10 进制
Q
把立即值转换为 16 进制
B
把立即值转换为 2 进制
G
跳转到指定地址
X
交叉参考
便于查找 API 或变量的引用
SHIFT+/
计算器
ALT+ENTER
新建窗口并跳转到选中地址
这四个功能都是方便在不同函数
之间分析(尤其是多层次的调
用)。具体使用看个人喜好
ALT+F3
关闭当前分析窗口
ESC
返回前一个保存位置
CTRL+ENTER
返回后一个保存位置
在工具栏下面的便是工作窗口。主要的窗口分页有“IDA View-A”、“Name”、“Strings”、
“Exports”和“Imports”。对于后面 3 项相信大家都不会陌生了,它们分别是字符参考,输
出函数参考和输入函数参考。Name 是命名窗口,在那里可以看到我们命名的函数或者变量。
这四个窗口都支持索引功能,可以通过双击来快速切换到分析窗口中的相关内容,使用起来
十分方便。
简单输入几个字符即可定位目标
IDA View-A 是分析窗口,支持两种显示模式,除了常见的反汇编模式之后,还提供图
形视图以及其他有趣的功能。
IDA 的反汇编窗口
一般我们在分析的时候,并不关心程序的机械码,所以 IDA 为我们自动隐藏了这些信
息。如果你有需要,可以通过以下步骤来设置:
选项=>常规=>反汇编=>显示反汇编行部分=>机械码字节数=>修改为你允许显示的大小
现在让我们以论坛脱壳版块置顶帖的那个经典为例,看看图形视图的表现。首先我们到
以下连接下载:http://bbs.pediy.com/upload/bbs/unpackfaq/notepad.upx.rar
你能通过图形视图及其缩略图快速找到壳的出口吗?
如图所示,标签 40EA0E 便是壳的出口代码的地址。在 OD 中直接跳到该地址,下断点,
然后运行到该处,再单步便能看到 OEP 了。假如希望通过跳转法找 OEP,相信图形视图比
你在 OD 一个一个跳转跟随,要快得多。
再来看看这个壳的另类脱法。直接运行该程序, DUMP 下来,再使用 IMPORTREC 的
IAT AutoSearch 功能修复输入表。用 IDA 打开修复了输入表的 DUMP 文件。在 IMPORT 窗
口随便选一个 API,随便通过交叉参考跳转到一个函数的代码。
此处为文件输入表的位置
我选了 RegQueryValueExA,通过交叉参考,来到 Sub_402488 处的函数代码。
用鼠标拖动缩略图中的虚线框到上方,便能看到该 CALL 的头部了。然后按下图指示
操作:
在函数标记上点击鼠标右键
处于最上层的函数,便是 OEP 了,使用 PE 工具修改文件入口为 10CC。现在函数可以
正常工作了。这个方法的原理是通常我们写程序都有如下流程:
Main proc
//代码
CALL FUN1
//代码
CALL FUN2
//代码
END proc
所以处于函数调用最上层的便是 MAIN 函数了。当然这个方法局限性很大,这里只是
对该功能的一种介绍。我们留意到图表功能有两个选项,在上面的例子中,我们使用的是“交
叉参考到”。我想细心的朋友大概能通过“交叉参考来自”左边的小图标猜出它的用途了。
该功能可以显示目标函数调用了什么函数,当然也包括 API。这样除了观察函数的输入参数
来判断是否关键 CALL 之外,又多了一个参考途径。
2 强大的 IDC
有时我们需要分析一些非文件格式的代码,例如 ShellCode,远线程注入和病毒。这些
代码的特点便是动态获取 API,这给静态分析带来困难。尽管 IDA 支持分析 2 进制文件,
但是缺少 IAT 的情况下,分析起来跟不方便。频繁的切换调试器查看并不是一个好方法。IDC
是 IDA 的脚本语言,它功能强大,为我们提供了另一条与调试器交互的途径。
如何使调试器获得 IDA 分析得出的符号?
IDA 提供多种文件格式输出,调试器可以通过解释这些文件获得一些符号。你可以通过文
件菜单中的“创建文件”获得更多的信息。
以 OD 为例,它的 GODUP 插件支持解释 MAP 文件(还能加载 IDA 的 SIG)。在 IDA 中
使用如下步骤:
菜单: 文件=>创建文件=>创建 MAP 文件
即可创建 MAP 文件,然后切换到 OD,使用如下步骤便能获得符号了:
菜单: 插件=>GODUP Plugin=>Map Loader=>Load labels
仍然以那个经典的 UPX 加壳的 NOTEPAD 为例子,这次我们用 OD 打开,在到达 OEP
之后 DUMP 下来,不修复输入表,直接用 IDA 载入后看到下图:
丰富的文件载入选项
剩余31页未读,继续阅读
资源评论
咔!哈!
- 粉丝: 18
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- PIE比赛-基于ConvLSTM2D、CNN3D等模型架构对Sentinel-1的多时序雷达数据进行农作物分类+python源码+文档说明
- 404安卓Andriod网上订餐点菜系统毕业课程源码设计+论文资料
- 基于Flask+VUE前端,在阿里云公网WEB端部署YOLOv5目标检测模型.zip
- magisk模块 Shamiko v0.7.3版本
- FY4A-QPE产品的预处理和MMK趋势分析和Hurst指数等相关统计分析,以及制图分析(箱线图/折线图等)+python源码+文档说明
- 基于caffe的Yolov3,v4实时物体检测框架.zip
- 20241126-studentinfo
- 基于SpringBoot的教务管理系统源码+数据库脚本(高分毕业设计项目)
- 涵盖项目规划、需求管理、开发迭代、版本控制、缺陷跟踪、测试管理、工时管理、效能分析等环 节,实现项目全过程、全方位管理的一站式企业研发项目管理解决方案
- 基于 YOLO、Deep SORT 和 KLT 的高性能多对象跟踪.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功