安全中国首页 > 文章中心 > 脱壳技术
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

IDA简易教程共十四章(图)

更新时间:2007-7-30 2:04:16
责任编辑:池天
热 点:

第一节:C语言的小程序

为了演示IDA的功能先写一段小程序。

程序执行结果:

CUSTOMERS:
CUSTOMER 0001: Peter (m)
CUSTOMER 0002: John (m)
CUSTOMER 0003: Mary (f)

PRODUCTS:
PRODUCT 0001: BOOK: IDA QuickStart Guide
PRODUCT 0002: SOFTWARE: IDA Pro: PC; WINDOWS DOS; DISASSEMBLY
PRODUCT 0003: SOFTWARE: PhotoRescue: PC MAC; WINDOWS OS-X; RECOVERY
PRODUCT 0004: SOFTWARE: aCrypt: PC; WINDOWS; CRYPTOGRAPHY

                                                              

----------------------------------------------------------------------

第二节:基本类型的识别

用IDA分析我们前面的程序,我们会发现下图的类型

只要按"D"我们就可以任意转换这些不确定的类型.可以变成byte,word,dword(db,dw,dd)。

当然你也可以设置更多的数据转换类型:

选择“Options”菜单的“Setup data types”命令就可以设置了

值得注意的是:你在数据转换的时候,它是依据数据自身的结构来转换的。我们按“D”的时候,

如果下一个字节已经被你转换过,你的本次转换,IDA将会提示让你确认。

注:如果你想改变这种默认设置可以在“Options”菜单“Convert already defined bytes”命令里设置

撤销你的所有转换按“U”键。

                                                      

-------------------------------------------------------------------------------------

第三节:操作数格式

数据类型自定义转换后,被操作过的数据(就是你按过“D”的)的进制IDA也是可以自定义转变的,

通过在“Operands”工具栏的“Number”命令我们可以随意转换数字的进制

最下面的“Toggle leading point”就是填补数据前的空位为0(就是说如果当前数据未占满数据格式的所有位高位用0来填补)

 

 

IDA还可以转换数据的标志位(就是正负)具体操作如下图:

 

最后呢~~如果这些转换你还不满意(够BT)当然你还可以自定义数据进制如图:

                                                             

-----------------------------------------------------------------------------------------

第四节:字符和字符串的操作

 

作者又说话了:很多程序都是包含字符串的,一些被操作过的数据(就是你按过“D”的)可以转化为

字符,使用的命令就在“Operands”工具栏上

 

由于编程语言的不同造成字符串也有不同的格式,当然IDA就支持所有的格式了。

IDA在转化后会在地址添加一个名字。因为我们的程序是c的所以就找到c的字符串。具体操作如图:

如果不是C写的程序怎么办呢?我们可以在“Options”菜单“ASCII string style”命令中设置。

允许你修改其它类型为默认设置,使用默认设置的快捷键是“A”,或者自定义一种类型可以使用不常用的终止字符。

                                                               

--------------------------------------------------------------------------

第五节:数组

在c中,ASCII字符串被认为是字符数组,IDA是如何处理数组的呢?
我们用最常用命令来定义数组中的第一个元素,设置第一个元素类型为byte,格式为char,然后点击“*”号键(或者“Edition ”工具栏的“Array”命令)来创建数组。这时弹出一个对话框,可以设置很多变量。

你可以定义数组一行的显示个数,还可以使用“Element width”来设置他们之间的宽度。
使用“Use dup construct ”选项可以合并连贯的相似字节,“ Display index ”选项可以像注释一样显示数组的下标。

例如我们设置一个有64个元素的数组,一行有8个元素,每个元素之间的宽度为4,不选取“dup constructs”,选取“Display index ”,我们就可以得到下面的数组。

当IDA遇到未被识别的字节他会用红色的高亮显示。


当然你也可以选择一个范围来创建数组,IDA会自适应的设定。

                                                           

------------------------------------------------------------------------------------

1 2 3 4 下一页

 
相关文章
一日一文章
 
一日一软件
一日一动画