IDA Pro使用学习研究笔记(一)——IDA View

IDA Pro

一直在学习二进制漏洞挖掘,但是从来没有写过有关分析工具笔记。。。。
IDA Pro一个二进制逆向分析工具,可以用来对未知源码的二进制程序,进行静态分析,简单来讲就是不去运行二进制程序,将其指令段的二进制机器码还原成汇编指令来对程序的执行流与代码逻辑进行分析。与其相对的还有一种是动态分析,最具代表性的工具就是Windbg、ollydbg、X64dbg,他们在还原汇编代码的同时还会去运行程序,并且还可以还原程序执行时的堆栈以及其他的一些运行时产生的内存数据(这是静态分析所没有的优点)。
启动IDA有三个按钮供我们选择
在这里插入图片描述

  • New:顾名思义,打开一个新的文件
  • Go:直接打开IDA,不去打开任何文件
  • Previous:打开之前最后打开过的文件,也就是前一次打开过的文件

这里选择New,任何打开我自己写的一个小程序pp
在这里插入图片描述
然后你会看到这样一个提示窗口
在这里插入图片描述

  • 红色部分是用来选择处理器架构,因为IDA不止可以分析PC CPU(比如intel或amd架构)上的程序,它还可以分析MIPS或者ARM等多种架构芯片的固件程序,不过不去分析设备固件程序的话一般是不用去管他的。
  • 蓝色部分是以何种形式打开文件,第一种是以PE可执行文件格式打开因为我这里用的是x64版本的IDA所有是64位的PE文件,第二种是以dos可执行文件格式打开,第三种就是直接忽略文件格式,直接以二进制文件格式打开
    其余部分暂时用的不多,暂不详解,通常分析PC可执行程序直接默认ok即可。选好后ok
    然后你会看到这样一个弹窗,这是帮助我们解决每次逆出来的函数名都会出现大量sub_xxxxxx问题的关键一步
    在这里插入图片描述
    这里是要提示我们加载pdb文件,pdb文件是windows可执行程序的基本数据文件,因为windows下的可执行文件与linux不同,他不会将函数符号编译进可执行文件内,所以想要得到程序中定义的函数的函数名,就必须去加载这个程序的pdb文件,除此以外这个文件里还有源文件名,变量名等更多有关于程序源码的信息数据,不过通常情况下导入函数,也就是系统提供的api以及C语言标准库中的部分函数不用加载这个程序的pdb文件也可以获取到函数名。
    简单示范一下,假如不加载pdb文件,我们看到的是这样的
    在这里插入图片描述

会看到很多以“sub_加偏移地址”为名的函数,但是如果我们加载了pdb文件
在这里插入图片描述
就可以看到更多更详细的函数名信息,比如main函数等。
关于pdb文件,还要说明的是,其实上面那个提示弹窗不会一开始就会弹出来,IDA会先在程序的同级目录下查找与程序同名的pdb文件,如果找不到则自动联网到一个pdb文件服务器上去搜索与程序同名的pdb文件,如果找得到那就将该pdb文件下载到配置文件中指定的目录下,如果找不到则弹出上面的弹窗提示手动加载pdb文件,关于pdb服务器与默认下载目录,可在IDA的下载根目录下的cfg目录下找到pdb.cfg配置文件中查看
在这里插入图片描述
蓝色为pdb文件服务器的URL地址,红色为下载的pdb在本地保存的位置,通常windows系统自带的各种程序与内核,微软都会将其pdb文件放在我图中的第二个链接里,这就能极大的方便我们去逆向分析windows内核或者其他系统程序。(这两个地址可能会时不时被墙出去,如果被墙需要自行想办法+_+)

IDA View

运行至此,我们基本上就能见到IDA Pro的全貌了
在这里插入图片描述
通常情况下,默认会有这几个子窗口
在这里插入图片描述
这次先介绍IDA-View,这其实就是一个程序逻辑图,IDA通常会把一个函数分成多个块,然后将块与块之间用蓝色、绿色、红色的线连起来,最后使得这些块与线就组成了完整的执行流。

这里通过main函数的执行流简单介绍下三种颜色的线:

  • 红色:代表条件不成立,即No
  • 绿色:代表条件成立,即Yes
  • 蓝色:代表顺序执行
    然后在看看我的源码
    在这里插入图片描述
    如此一来代码逻辑就显得十分清晰了,如果感觉代码块排列方式不习惯,还可以鼠标按住代码块,自动调节他的排列方式
    在这里插入图片描述

还能看到关键部分的汇编代码,以便我们更清晰的去分析代码逻辑
在这里插入图片描述
如果想要查看更完整的汇编代码,那就选中一个代码框,右击选择Text View即可
在这里插入图片描述
如果想再返回逻辑视图,则再右击选择Graph view即可

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值