IDA简易教程
作者:www.datarescue.com mailto:winroot@126.com
2004-11-20 初步翻译完成,希望大家指正错误,谢谢!
我的鸟语太差大概翻译了一下,大家凑合着能看懂就行了:-)有些地方用自己理解的意思改写了一下!
本文的主要内容就是讲如何用IDA来辅助识别各种类型的数据. 版权信息:所有版权归原文作者所有,如许转载清保持文章完整性。 索引
1 第一节:C语言的小程序 2 第二节:基本类型的识别 3 第三节:操作数格式
4 第四节:字符和字符串的操作 5 第五节:数组 6 第六节:枚举类型
7 第七节:Bit-fields(位域) 8 第八节:结构体
9 第九节:结构变量和结构数组
10 第十节:联合体和结构体中的结构体 11 第十一节:可变的结构体 12 第十二节:结构体偏移 13 第十三节:联合体偏移量 14 第十四节:地址偏移量 15 第十五节:最终逆向结果 附录
第一节: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
TOP
----------------------------------------------------------------------
第二节:基本类型的识别
用IDA分析我们前面的程序,我们会发现下图的类型
只要按\我们就可以任意转换这些不确定的类型.可以变成byte,word,dword(db,dw,dd)。 当然你也可以设置更多的数据转换类型:
选择“Options”菜单的“Setup data types”命令就可以设置了
值得注意的是:你在数据转换的时候,它是依据数据自身的结构来转换的。我们按“D”的时候, 如果下一个字节已经被你转换过,你的本次转换,IDA将会提示让你确认。
注:如果你想改变这种默认设置可以在“Options”菜单“Convert already defined bytes”命令里设置
撤销你的所有转换按“U”键。
TOP
-------------------------------------------------------------------------------------
第三节:操作数格式
数据类型自定义转换后,被操作过的数据(就是你按过“D”的)的进制IDA也是可以自定义转变的,
通过在“Operands”工具栏的“Number”命令我们可以随意转换数字的进制
最下面的“Toggle leading point”就是填补数据前的空位为0(就是说如果当前数据未占满数据格式的所有位高位用0来填补)
IDA还可以转换数据的标志位(就是正负)具体操作如下图: 最后呢~~如果这些转换你还不满意(够BT)当然你还可以自定义数据进制如图:
TOP -----------------------------------------------------------------------------------------
第四节:字符和字符串的操作
作者又说话了:很多程序都是包含字符串的,一些被操作过的数据(就是你按过“D”的)可以转化为
字符,使用的命令就在“Operands”工具栏上 由于编程语言的不同造成字符串也有不同的格式,当然IDA就支持所有的格式了。 IDA在转化后会在地址添加一个名字。因为我们的程序是c的所以就找到c的字符串。具体操作如图:
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库IDA简易教程在线全文阅读。
相关推荐: