IDA详细使用教程,原创适合逆向新手的实验报告,关于快捷键,界面展示等的介绍,推荐大家结合另一篇ida实操,文章食用。切实感受ida的魅力与强大。
一、软件介绍
IDA全称是交互式反汇编器专业版(Interactive Disassembler Professional),人们其简称为IDA,IDA pro
是业界最成熟、先进的反汇编工具之一,是目前最棒的一个静态反编译软件,为众多0day世界的成员和ShellCode安全分析人士不可缺少的利器!IDA
Pro是一款交互式的,可编程的,可扩展的,多处理器的,交叉Windows或Linux WinCE MacOS平台主机来分析程序,
被公认为最好的花钱可以买到的逆向工程利器。IDA
Pro已经成为事实上的分析敌意代码的标准并让其自身迅速成为攻击研究领域的重要工具。它支持数十种CPU指令集其中包括Intel
x86,x64,MIPS,PowerPC,ARM,Z80,68000,c8051等等。
IDA Pro 的主要优点是它允许以交互方式更改显示数据的任何素:
给函数、变量、数据结构等命名。
更改数据表示(如数字、各种编码的字符串、数据结构)
搭建图表和代码流程图,简化对反汇编代码的理解
使用c++中有关函数参数和结构定义的类型信息,以便自动命名参数和变量
自动识别和命名汇编代码中的标准库函数
所谓工欲善其事必先利其器。所以必定需要先熟悉逆向中最常用的工具。而IDA
pro则是被公认为最好的花钱可以买到的逆向工程利器。当然现在对我来说是肯定买不起的,所以我用的是激活成功教程版,先熟悉一下ida的基本操作。
二、软件运行
在ida安装完成后,在桌面上会有两![](https://img-
blog.csdnimg.cn/89d4bc626bde4e7688aa4ae4d0414b7f.png)
个图标。其中idaq.exe负责反编译32位可执行文件,idap64.exe负责反编译64位可执行文件。运行idaq之后用户便可选择加载可执行文件的方式。
直接运行ida,会展示这个界面。“New”选项表明反编译新可执行文件,“Go”选项表明直接进入主界面,“Previous”选项表明加载已反编译的文件选项。其中previous会给出给出之前逆向过的文件,如图就是我之前一段时间分析过的一些文件。![](https://img-
blog.csdnimg.cn/38e122c37b3644fba6af2f.png)
直接进入就是IDA主要功能界面,IDA支持直接将文件拖入界面所在的区域中。
例如我打开的是我们期末上机考试系统的客户端。ida可识别当前玩家加载的可执行文件类型,已识别出文件为PE可执行文件格式。下面“Processor
type”选项表明当前处理器类型,IDA能够识别的文件类型可依照IDA默认选项加载可执行文件,如果IDA不能识别的二进制代码,例如ShellCode代码,可选择“Binary
file”方式加载,选择“Binary file”方式加载。
一旦选择“Binary file”方式加载文件,则需要用户手动填入加载段地址和相对偏移,对应上图“Loading segment”和”Loading
offset”选项。该种方式主要应用场景为:分析动态保存的二进制代码、ShellCode二进制代码分析等。选择“Binary
file”方式加载文件,IDA不会自动分析代码,用户需根据具体需求自行反汇编二进制代码。
Processor Type:可以指定在反汇编过程中使用的处理器模块。多数情况,IDA将从可执行文件的头中读取到信息,选择合适的处理器。
kernel options:配置特定反汇编分析选项,IDA可利用这些选项该进递归下降过程。通常ida默认的都是最优的。
processor options:选择适用于处理器模块的配置选项。
三、界面简介
进行逆向分析之前需了解IDA界面有哪些功能,包括:导航条、反汇编窗口、其他辅助分析窗口。这是我自己简单制作的一张图,虽然不够全面,但希望能帮助理解。
1)导航条IDA
主界面中存在一项颜色各异的导航条。通过导航条可了解分析可执行文件各部分数据分布情况,各种颜色代表含义如下:
蓝色:表示常规的指令函数,绝大部分为用户编写的代码,上图中绝大部分数据属于蓝色数据。
黑色:表示间隙部分内容,可执行文件中包含多个节段,相邻节段之间存在空隙,红色表示空隙部分。
银白色:表示数据项部分内容,可执行文件中会包含大量数据,银白色表示数据项部分内容。
粉色:表示外部导入符号,通常可执行文件会导入外部的库函数。
暗黄色:表示IDA未识别的内容,需要用户根据需求自行分析。
以上基于IDA默认设置介绍各种颜色在导航条的含义,IDA同时提供了颜色设置,方便用户根据需求选择合适的颜色,对应“Options”菜单的“Colors”选项中,对应选项如下图所示:
可在“IDA Colors”对话框的选择“Navigation band”Table项,在对应选项中设置各项数据的颜色,方便实际场景的分析。
2)反汇编窗口
反汇编窗口属于逆向分析过程中关注频率最高的窗口,通过此窗口可以逆向分析反汇编代码,移动端中分析频率最高的属于Arm指令集,包括:Arm
32为指令集(常用语Android平台Native层反汇编代码分析)、Thumb 16位指令集(常用于IOS平台32位Mach-
O文件的反汇编代码分析)、Arm 64位指令集(常用于IOS平台64位Mach-O文件的反汇编代码分析)。反汇编窗口属于“IDA
View-A”标签项内容。反汇编窗口可分为两种模式,分别为:默认模式和图形模式。
3)其他辅助分析窗口
除了提供反汇编分析窗口,IDA默认界面提供二进制查看编辑窗口、函数窗口、结构窗口、枚举类型窗口、导入函数窗口、导出函数窗口。不同窗口在分析阶段起到不同作用。下面介绍其他辅助分析窗口功能的应用场景。
二进制窗口可支持用户查看可执行文件对应相对偏移的二进制机器码数据,二进制查看窗口对应“Hex View-1”选项内容。
二进制查看窗口总共分为三部分,三部分内容分别位于上图左、中、右,三处含义分别为:
左边数据:表示二进制数据对应的内存相对偏移。
中间数据:表示内存中数据的具体内容。
右边数据:表示内存数据的字符串显示,该功能可辅助读者快速识别字符串内容。
用户可在二进制查看窗口中编辑二进制数据,从而满足篡改数据的测试需求。
函数窗口
IDA提供函数窗口供玩家查找函数信息,在窗口按下“CTRL + F”快捷键便可根据需求搜索函数名,快速定位函数名方式可提供逆向分析效率。
结构窗口(Structures)
结构窗口提供用户查询已定义的结构体,同时IDA可识别出可执行文件包含的部分结构体数据,结构窗口可通过快捷键“+”、“-”展开和收缩结构体,IDA结构窗口支持用户自定义结构体。
导入函数窗口(Imports)
IDA提供导入函数窗口,用于可在导入函数窗口中查看当前可执行文件导入哪些外部函数库及函数,通过导入函数窗口可获取到函数内存相对偏移地址、函数名、导入函数所属的库文件。
导出函数窗口(Exports)
IDA的导出函数窗口提供可执行文件导出函数信息,通过导出函数窗口可获取到导出的函数名、函数对应的内存相对偏移地址。
IDA分析可执行文件
IDA会对可识别的文件进行代码反编译,反编译过程依据文件大小而定。IDA软件会利用回归方式递进分析可执行文件反汇编代码。判断IDA分析完毕的三种方法分别为:
1)图中IDA的“Output Window”窗口输出“The initial autoanalysis has been
finished”日志时,则说明IDA已分析完毕。
2)如图所示进度条处黄色向上箭头消失时,则表明IDA分析完毕。
3)图中IDA界面左下角AU处于”idle”状态时,也表明IDA分析完毕。
四、常用快捷键
空格键:反汇编窗口切换文本跟图形
Esc:在反汇编窗口中使用为后退到上个操作的地址处
Shift +F5:打开签名窗口
shift+F12:自动分析出参考字符串
ALT+T:搜索字符串(文本搜索)
ALT+L:标记(Lable)
ALT+M:设置标签(mark)
ALT+G:转换局部变量为结构体
ALT+Enter:跳转到新的窗口
Alt+B:快捷键用于搜索十六进制字节序列,通常在分析过程中可以用来搜索opcode
CTRL+M:列举出当前已经添加的标签
CTRL+S列举出二进制程序的段的开始地址、结束地址、权限等信息
F9:动态调试程序(其实IDA主要用作静态分析用的)
F5:将一个函数逆向出来(生成c伪代码)
G:跳转到指定地址
A:将选择的信息转换成ASCII(转换成可读性跟强的字符串)
X(ctrl+X):交叉引用,类似于OD中的栈回溯操作
N:对符号重命名
:&;(冒号&分号):光标所在位置添加常规注释和可重复注释
P:创建函数
T:解析结构体偏移
M:转换为枚举类型常量
Y:设置变量类型
H:转换16进制
C:光标所在地址处的内容解析成代码
D:光标所在地址处的内容解析成数据
A:光标所在地址处的内容解析成ascll码字符串
U:光标所在地址处的内容解析成未定义内容。
学习网络安全技术的方法无非三种:
第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。
第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。
如果你对网络安全入门感兴趣,那么你需要的话可以这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
第三种就是去找培训。
接下来,我会教你零基础入门快速入门上手网络安全。
网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。
第一阶段:基础准备 4周~6周
这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
第二阶段:web渗透
学习基础 时间:1周 ~ 2周:
① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
配置渗透环境 时间:3周 ~ 4周:
① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。
渗透实战操作 时间:约6周:
① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
以上就是入门阶段
第三阶段:进阶
已经入门并且找到工作之后又该怎么进阶?详情看下图
给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!
如果你对网络安全入门感兴趣,那么你需要的话可以这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
ida反编译教程 ## 网络安全工程师(白帽子)企业级学习路线
第一阶段:安全基础(入门)
第二阶段:Web渗透(初级网安工程师)
第三阶段:进阶部分(中级网络安全工程师)
如果你对网络安全入门感兴趣,那么你需要的话可以这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
学习资源分享
今天的文章
ida反编译教程分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/131449.html