1 / 57
文档名称:

IDA教程.doc

格式:doc   大小:976KB   页数:57页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

IDA教程.doc

上传人:jenglot 2022/2/22 文件大小:976 KB

下载得到文件列表

IDA教程.doc

文档介绍

文档介绍:IDA简易教程
                                     作者:
                                                   -----------------------------------------------------
第四节:字符和字符串的操作
 
作者又说话了:很多程序都是包含字符串的,一些被操作过的数据(就是你按过“D”的)可以转化为
字符,使用的命令就在“Operands”工具栏上
 
由于编程语言的不同造成字符串也有不同的格式,当然IDA就支持所有的格式了。
IDA在转化后会在地址添加一个名字。因为我们的程序是c的所以就找到c的字符串。具体操作如图:
如果不是C写的程序怎么办呢?我们可以在“Options”菜单“ASCII string style”命令中设置。
允许你修改其它类型为默认设置,使用默认设置的快捷键是“A”,或者自定义一种类型可以使用不常用的终止字符。
                                                                    TOP
--------------------------------------------------------------------------
第五节:数组
在c中,ASCII字符串被认为是字符数组,IDA是如何处理数组的呢?
我们用最常用命令来定义数组中的第一个元素,设置第一个元素类型为byte,格式为char,然后点击“*”号键(或者“Edition ”工具栏的“Array”命令)来创建数组。这时弹出一个对话框,可以设置很多变量。
你可以定义数组一行的显示个数,还可以使用“Element width”来设置他们之间的宽度。
使用“Use dup construct ”选项可以合并连贯的相似字节,“ Display index ”选项可以像注释一样显示数组的下标。
例如我们设置一个有64个元素的数组,一行有8个元素,每个元素之间的宽度为4,不选取“dup constructs”,选取“Display index ”,我们就可以得到下面的数组。
当IDA遇到未被识别的字节他会用红色的高亮显示。
当然你也可以选择一个范围来创建数组,IDA会自适应的设定。
                                                                            TOP
------------------------------------------------------------------------------------
第六节:枚举类型
还记得我们在C程序中定义的product_category_t 类型吗?
让我们用IDA的“Enumerations”来定义一下。
首先,我们打开“Enumerations”窗口来创建一个新的枚举类型
 
我们输入我们的枚举类型值
 
在check_product()函数,我们可以用枚举类型重新定义一些操作数。
右键点击在数值上,就会弹出一个菜单,选择“Symbolic constant”。
IDA就会自动列举枚举值,用以匹配当前的数值。
 
操作完成,我们就会得到下面的结果:
                                                                                                TOP
-----------------------------------------------------------------------------------------------------
第七节:Bit-fields(位域)
BTW:Bit-fields,我的理解就是在结构体中的位标志。太菜!希望高手指正!
现在,我们来定义一下在software_info_t 结构中的bitfields。
IDA的观点就是,bitefields是一种特殊的枚举类型。
我们可以选择在枚举类型创造窗口中的“Bitfield”选项。
还记得我们曾经在我们的程序中建立了两种不同类型的bitfields ,
plateform和