一、认识窗口
1.IDA View
IDA打开一个Win32的EXE后,会出现一系列窗口,默认定位到“IDA View”窗口中的入口函数处,即VC程序的WinMain。
该窗口可通过View-Open subviews-Disassembly调出
该窗口有2种模式,一种是Text View,另一种是Graph View,2种大同小异, 关于两种浏览模式的转换,可在右键菜单中切换:
·Text View切换到Graph View:(注意:在 Text View中有时右键菜单不是这样的,这时换个有代码的位置点右键就可以了)
以graph view介绍(顶部图片),(1)左窗口为函数列表,一个文件被反编译后所有的函数列表都可以在此窗格中显示;(2)右窗口为汇编代码区,双击每个函数,可以看到对应函数对应的汇编代码段;(3)下窗口为输出窗口,文件反汇编过程中的信息都可以在此窗口中看到。
注:1)空格可以切换汇编代码为流程图浏览模式
(2)在流程图模式下,绿线代表判定条件成立,红线代表判定条件不成立
以比较通用的text view为例来介绍(底图), 主要是三个区域:地址区、OpCode区(操作码区)、反编译代码区
A.地址区
该处地址以PE文件加载到内存后的虚拟地址为准,即镜像基址+偏移地址
B.OpCode区
该区域默认不会显示出来,需要打开菜单Options-General,
在“Disassembly”页中的“Display Disassembly line parts”中,设置”Number of opcode bytes“,例子中设置 8,默认为0则不显示。
OpCode区字面上看是操作码区的意思,当然这是一个以16进制字符显示二进制数据的形式,这样结合反编译代码会更具直观性,
但也使界面复杂化,仁者见仁。
C.反编译代码区
该区域是IDA的主要功能区域,具有很多特性,如相同字符串高亮、双击函数名或引用变量名可调整到对应的跳转地址等
·快捷键:字符串搜索: 搜 索:Alt+T 下一个:Ctrl+T
反编译为C代码: 在反汇编代码中按F5即可。
2个实用的浏览快捷键 前进:Ctrl+Enter
后退:Esc
当然也可以使用工具栏的按钮。
*在IDA View中按F5可以生产C代码查看, 也可以将整个保存为C文件进行查看。
在Hex View中按F2可直接编辑16进制数据。
2.Hex View(与一般的16进制编辑器类似)
默认为只读状态,可使用快捷键F2对数据区域(绿色字符区域)在只读/编辑二种状态间切换,
3.其他窗体
Stuuctures:可以查看程序的结构体、Enums:可以查看枚举信息、Imports:可以查看到输入函数,导入表即程序中调用到的外面的函数、export:可以查看到输出函数
IDA的窗体均可在主菜单View-Open subviews中打开/关闭,其他如pseudocode为反编译C代码窗体、strings为程序字符串列表窗口,均为十分有用的辅助窗口,
(IDA显示字节机器码
菜单
Options >> General
二.菜单
File 是用来打开,新建,装载一个应用程序的
Edit 是用来编辑反汇编代码的,可以复制,筛选什么的
View 是用来选择显示方式的,或者显示某一特定模块信息的。比如以树形逻辑图显示,或者16进制形式显示。还可以单独显示某一特定信息,比如输入或者输出表等。
Debugger ,调试器被集成在IDA中,首先我们使用IDA装入文件,来生成数据库,用户可以使用反汇编功能,查看所有反汇编信息,这些均可以在调试器中进行和使用。
Options ,在这里可以进行一下常规性的设置。
Help,使用IDA的一些帮助文档,检查更新等等。
常用
1)常量字符串窗口:string窗口,通过此窗口可以看到程序中所有的常量字符串列表。
2)字符串查找窗口:search窗口,可以通过此窗口查找某个指定的字符串。
3)地址跳转:jump to address使用该窗口可以跳转到指定地址的汇编代码段。
地址为语句前的.text:xxxxxxxxxxxxxxxx
4)Debugger options:在该窗口中设置调试程序的一些选项,包括调试时进行的一些操作设置、日志记录设置等等:
5)Switch debugger通过此窗口可以设置调用的调试器
设置好调用的调试器后需要设置远程调试器的信息:
6)脚本执行窗口:script file
7)汇编代码注释编写:
鼠标点击某一行汇编代码,然后输入分号“;”,就可以打开输入编辑注释的窗口。
8)Xrefs graph to和Xrefs graph from
通过Xrefs graph to可以看到该函数被其他函数调用的信息:
通过Xrefs graph from可以看到该函数调用的其他函数: