逆向安全基础之IDA使用简介

IDA简介

IDA是业界一个功能十分强大的反汇编工具,是安全渗透人员进行逆向安全测试的必备工具,其强大的静态反汇编和逆向调试功能能够帮助安全测试人员发现代码级别的高危致命安全漏洞,当然其价格也不便宜,国内一个license从几千到一万多不等。现在结合windows试用版的IDA,简单介绍一下其基本使用。

IDA基本界面

现使用C语言编写一个简单的主程序,代码如下:

 

可以被IDA解析的文件包括.exe.so.o等格式,在IDA中直接打开上述格式的文件即可,以.o文件为例(使用gcc编译器编译:gcc -o test test.c),打开过程选择如下:


红色窗口为函数列表,一个文件被反编译后所有的函数列表都可以在此窗格中显示;

蓝色窗口为汇编代码区,双击每个函数,可以看到对应函数对应的汇编代码段;

黑色窗口为输出窗口,文件反汇编过程中的信息都可以在此窗口中看到。


在汇编代码区输入空格键,可以切换汇编代码为流程图浏览模式:

 

在流程图模式下,绿线代表判定条件成立,红线代表判定条件不成立:


几个有用的窗口:

1)常量字符串窗口:


通过此窗口可以看到程序中所有的常量字符串列表,逆向分析一个程序从字符串入手是一个方向:

(2)字符串查找窗口:

 

也可以通过ALT+T快捷键打开,可以通过此窗口查找某个指定的字符串:

 

(3)地址跳转:

 

也可以通过输入G打开窗口:

 

使用该窗口可以跳转到指定地址的汇编代码段。

(4)Debugger options

 

在该窗口中设置调试程序的一些选项,包括调试时进行的一些操作设置、日志记录设置等等:

 

(5)Switch debugger

 

通过此窗口可以设置调用的调试器:

 

设置好调用的调试器后需要设置远程调试器的信息:

 

 

把我们想要在调试器服务端(WindowsLinux)调试的可执行文件拷贝到调试器客户端使用IDA打开,上述设置的参数文件路径应该在远程调试服务端上有效,同时不要忘记输入调试器服务端的主机名字和IP地址远程调试只有当这些设置完成后才有效

(6)脚本执行窗口:

 

打开该窗口后,可以选择执行脚本(.idc或者.py格式),在静态分析汇报代码时需要编写一些自动化的脚本,都是通过此窗口进行执行,执行的结果会显示在前面提到的输出窗口中:


(7)汇编代码注释编写:

鼠标点击某一行汇编代码,然后输入分号“;”,就可以打开输入编辑注释的窗口,在阅读汇编代码的过程中编写注释是一个很好的习惯。

 

(8)Xrefs graph toXrefs graph from

在函数名上点击右键:

 

通过Xrefs graph to可以看到该函数被其他函数调用的信息:


通过Xrefs graph from可以看到该函数调用的其他函数:


通过此功能可以了解函数调用流程图。

IDA汇编代码介绍

还是以下这个简单的C语言程序为例说明IDA反汇编代码:


该程序的基本功能就是申请一块动态内存空间,并存储一块字符串信息,然后打印,最后释放动态内存。

使用gcc编译器对该c程序进行编译,程序输入出结果如下:


以下是对.o文件进行反汇编的汇编代码段,图中介绍了核心代码的含义:


 个人经验,开始阅读汇编代码时结合源代码会更好理解些,毕竟C语言代码的可读性更强,理解一些简单的汇编代码段后,阅读更大量的汇编代码就会得心应手些。

另外很多人都有疑问,如果有源代码的话,直接走读源代码不是更好吗,为什么还需要走读汇编代码?试想一下,一个千万行代码级别的产品,走读代码,该从哪开始?何况源代码中有很多宏定义,也有可能很多代码都不会被编译,从源代码看到的问题点可能实际根本不会存在安全风险,而反汇编则可以避免这种问题,我们可以根据进程信息去提取出有效的文件进行反编译,反编译的结果都是优化以后的代码,可以简单清晰的看出程序的数据流图,只不过反汇编要求安全测试人员对汇编代码要非常熟悉,万事熟能生巧,汇编代码多读多写,自然慢慢就会熟悉了。

后续会结合具体的应用信息介绍一下安全逆向分析与寻找安全漏洞的基本思路和方法。

  • 21
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
IDA是一款流行的软件逆向工具,拥有强大的反编译功能,使得逆向工程师能够轻松地深入研究软件的内部结构并找到其中的漏洞和安全隐患。而IDA 6.8绿色完整版则是IDA软件的一个版本,它包括了完整的软件安装工具,并且不需要进行安装,只需下载解压后即可立即使用IDA 6.8绿色完整版的安装过程非常简单,只需要将压缩包解压到本地磁盘后即可开始使用,但需要注意的是,IDA 6.8绿色完整版只能在Windows操作系统下运行。软件具有良好的界面,易于使用,用户可以方便地进行调试、反混淆、反编译等反向工程操作。 对于初学者来说,IDA并不是非常易于掌握,因此需要掌握一些逆向工程的基础知识才能更好地使用IDA。通过掌握IDA使用技巧,可以更快地定位、诊断和解决软件的安全漏洞。逆向工程是一个非常复杂的领域,需要掌握多种技术,包括汇编语言、机器语言、操作系统、网络协议等。只有深入了解这些基础知识,才能够真正掌握IDA逆向工程的技术。 总之,IDA 6.8绿色完整版是逆向工程师们重要的工具之一。它拥有强大的反编译和调试功能,对于软件开发人员、安全研究人员和系统管理员都有着重要的意义。希望逆向工程师们能够掌握IDA使用技巧,深入研究软件的内部结构,为软件的开发、维护和安全提供更好的保障。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值