您的位置:首页 > 其它

IDA教程01_基础(01-05)

2017-07-13 16:40 337 查看
ZC: 我的IDA:Version 6.8.150423 (32-bit) 英文版

ZC: 如何找 加载进IDA的程序的入口???如 WinMain / main / dllmain 之类的??

ZC: IDA 反汇编窗口"Text view" 里面显示的地址,是 文件对齐的地址,还是 内存对齐的地址?偏移地址?虚拟地址?

1、反汇编简介

  【1888】拖入驱动直接保持 默认选项即可:



  (核心选项一般不要乱动)

  【2050】导入符号表,选择"YES" (一般需要反汇编的代码应该都不会有pdb文件提供的吧... 这里载入了符号表,是不是能提高 IDA的分析效率??)

  【2090】视频中,加载 .sys后 直接在 "IDA View-A"界面 中显示的是流程图形式,而非汇编代码形式,我查到 这两种形式的切换快捷键是 空格(Space)

  【2630】各个颜色 所表示的 段 (ZC; 貌似 和我现在的IDA中的不同...)

  【2780】↓ / ↑ 的箭头,是 跳转 的意思 (ZC: 我怎么觉得是 表示 此处是从哪里跳转来的...)

  【3155】一般 代码段的开始,".exe"是0x004?????,".sys"是0x0001????,".dll"是 70开头的

  【3260】IDA的一个好处,一改 全部 都改。【3270】演示 重命名 函数名

  【3700】IDA的一个强大的功能,两种反汇编分析的方法:线性扫描,递归下降

  【完毕】

2、

 分类工具

  【188】Fi

  【480】PETools (ZC: 这个没接触过...)【515】也可以 查看PE文件信息 (ZC: 看起来 好像LoadPE)【600】PETools插件

  【640】LoadPE

  【745】peid  【832】PEID的插件"Ktypto ANALyzer" 可以查它的算法

 摘要工具

  【910】NM、ldd、(ZC: id算不算?)、objdump 以后再讲,这些工具 都要结合代码来讲 不然都是白说

 深度检测工具

  【1000】string、反汇编器 nasm/masm 中自带的反汇编工具 ndisasm/distorm

  【1450】IDA就是集这些工具于一体。  只有代码段 才能转换为 视图模式 来查看

  【1655】将数据段里面的信息 转换成 C语言风格的字符串  【1725】选中 字符串,再把它变回去【1770】ZC: 转成了unicode风格了...貌似没有变回去啊

  【1790】"Save database"  【1950】选择"Don't pack database"和"DON'T SAVE the database"  【2000】不保存的话,IDA生成的 ?.id0和?.id1和?.nam和?.til 会消失(确实消失了)

  【完毕】

3、

  【377】讲解“欢迎使用 IDA”界面:"新建"、"运行"、"载入"、"下次启动不再显示这个对话框(D)"

    【450】点击"新建" 里面的内容

    【690】点击"运行" 里面的内容

    【800】点击"载入",选取 以前的工程 进行载入

    【940】"载入一个新文件"

  【2060】"运行" --> "打开" 之前的驱动文件,产生4个文件:

    【2240】?.id0:二叉树形式的数据库

    【2260】?.id1:包含描述每个程序字节的标记

    【2580】?.nam:包含"IDA NAME"窗口的数据库("IDA NAME"窗口 显示的是 给定程序的位置 和索引信息)

    【2680】?.til:本地数据库有关信息

    用于 关闭IDA时,保存信息

  【3130】Program DataBase :?.pdb文件

  【3555】关闭IDA时,弹出的窗口

    【4100】"Pack database(Deflate)"+"Collect garbage" ==> 尽可能创建一个小的 ??.idb文件(不仅要将文件压缩,还要将垃圾删掉),一般在 磁盘空间不足的情况下才这么用

    【4158】一般直接选择 "Pack database(Store)"即可(ZC: 其它都不要勾选)

  【4280】打开IDA -->"运行" --> "打开"--> 直接选择刚才生成的 sys.idb(或者 直接将 sys.idb拖到IDA界面中)

  【4460】"IDA has found unpacked version of database C:\DriverTest\sys\XXXXX\XXXX.idb on disk . Plese choose

    restore  continue  cancel"

    【4870】选择恢复数据(restore) 又会弹出:

    “

    Data for file C:\xxxxx\xxxxx\xxx.id0 isn't closed, do you want IDA repair it ?

    Pleae note that repaired database may still have problem .

    ”

  【5470】远控编程

  【5580】“The best solution is to use packed database or a bakup

    yes  no  cancel  help”

  【完毕】

4、

  【333】工具栏

  【750】IDA状况 导航栏(ZC: 彩色的那一条),又叫做 导航带:是被加载的文件的空间的一个线性视图,默认情况下 它会呈现出 二进制整个的地址的范围(段)

    【960】有缩放功能

    【1088】IDA-->Options -->Colors... --> "Navigation band"(导航栏) 可以调整颜色,默认就可以

  ZC: 在我现在用的IDA里面,下面这些 标签栏都可以通过 IDA--> View --> "Open subviews" 来打开

  【1175】标签栏

  【1640】反汇编视图 ("IDA View-A"、"IDA View-B"、...)

    【1850】IDA-->Option-->General...(常规) --> Graph选项卡 --> "Use graph view by default"(默认使用图形查看方式)

  【2165】消息窗口

  【2310】IDA还有另外两种数据窗口 Names & Strings

  【2490】重新打开IDA,看看 它在分析文件时 会有一些什么动作

    【2560】Loading

    【2665】You may start to explore the input file right now.

    【2800】The initial autoanalysis has been finished.

  【3190】IDA-->Windows -->"Reset desktop"

  【3240】IDA-->Windows -->"Save desktop..."

  【3420】IDA-->Font... (默认的信息为:Font:Fixedsys ; Style:Normal ; Size:10)

  【3490】IDA的Bug

  【完毕】

5、

  【55】ZC: 视频中显示,当前时间 20100609

  【848】交叉引用的概念  【870】XREF 这个就是交叉引用,双击"↑"会跳转

  【990】IDA不提供 撤销功能  (ZC: 还是 备份一个,再弄 比较放心)

  【1720】立即窗口

  【1880】IDA中 非常好用的键 ESC键.  【1930】ESC键 在反汇编窗口 和 浏览器的后退键 有点相似

    【2080】ZC: 在 反汇编窗口的"Text view"中,ESC键 功能使用成功。貌似 只有跳转后 再按EAC键才有用?

    【2150】它在 导航反汇编的时候是非常有用的,在其他窗口中 很有可能是用于关闭窗口

  【2805】基本块,不包含分支,执行大量的指令(序列),都具有唯一的入口点

  【3050】IDA在 反汇编窗口("Graph view"和"Text view"中都有) 使用不同颜色的箭头,指向 各个块 流动的方向

    【3280】跳转 一般2种颜色:绿色、红色。绿色 箭头 --> Yes,红色 箭头--> No

    【3390】蓝色 箭头。

  【3435】IDA(反汇编窗口) 每次显示一个函数

  【3480】IDA(反汇编窗口),滚轮 --> 滚动,Ctrl+滚轮 --> 调整视图大小

    【3540】Ctrl和"+",Ctrl和"-" --> 调整视图大小 (ZC: 是指小键盘的"+"&"-"??我试了下笔记本上的,把代码弄没了,还好重开IDA代码还在...这个还是不要乱按的好...)

  【3740】IDA使用一种术语 "流"(也叫做"正常流"/"普通流"),表示 指令默认持续执行

    【3785】跳转表(流?) 用来表示 (极有可能)跳转到的非连续性的位置。【3820】跳转流 会调用子例程

  【3900】IDA 也支持 改变流程  【3920】(反汇编窗口"Graph view")用鼠标拖动箭头,用它来 改变流程方向

    【4020】在按住shift键,在任何地方双击鼠标 就可以在这个地方增加一个其他连接点

    【4180】在 连接点 这个地方,可以任意增加 接点

  ZC: 上面 "流" 开始的 他的演示,都没有成功...

  【4280】希望还原(反汇编窗口"Graph view")的默认图形,右击图形--> 布局图(ZC: 英文是"Layout graph")

  【4580】折叠标签栏,右击 标签栏"IDA View-A"。ZC: 貌似我的IDA 没有这个

  【4750】打开另一个 反汇编窗口:IDA-->View -->"Open subviews..." --> Disassembly

  【5130】(反汇编窗口"Text view") 有虚线和(红色)实线,【5240】和 反汇编窗口"Grpah view" 中的跳转的箭头 是一一对应的  【5485】用于表示 代码中的非线性跳转/非线性流程

  【5355】通常虚拟地址 就是 区域名(ZC: 区段名 吧?)+冒号+地址

  【5560】注释  ZC: IDA的注释能跳转,我能添加的注释能跳转吗?

    【5570】我们添加注释,按住shift + 冒号

  【5910】Names 窗口,枚举所有 程序里面的函数。

    【5940】图标"F":常规函数

    【5947】图标"A":字符串

    【5960】图标"I"(ZC: 大写字母I):导入函数(导入表)

    【6030】有的 图标"F"(常规函数) 它是来自于库(库函数)

    【6050】图标"L":库函数 动态链接库函数(比如NtDll.dll里面的)

    【6085】图标"D":全局的命名代码

    【6200】双击 可跳转

  【6600】IDA 起的函数名 不在 Names窗口 中显示

  【6930】消息窗口

    【7100】这种操作,一般使用在 开发脚本/插件 时

  【7230】Strings窗口

    【7490】选中一个字符串-->右击-->"Setup..." (设置)

    【7850】选项"Display only defined strings"

    【7955】选项"Ignore instructions/data definitions"

  【完毕】

ZZ
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: