c&c++反汇编与逆向分析学习笔记--反汇编静态分析工具IDA
所谓“静态分析”,是相对于前面提到的“动态分析”而言的。在“动态分析”过程中,调试器加载程序,并以调试模式运行起来,分析者可以在程序的执行过程中观察程序的执行流程和计算记过。但是,在实际分析中,很多场合不方便运行目标,比如软件的某一模块(无法单独运行)、病毒程序、设备环境不兼容导致的无法运行……那么,在这个时候,需要直接把程序的二进制代码翻译程汇编语言,方便程序员阅读。想这样由目标软件的二进制代码到汇编代码的翻译过程,我们称之为”反汇编”。OllyDBG也有反汇编功能。但OllyDBG是调试工具,其反汇编辅助分析功能有限,不适合静态分析。 下面介绍辅助功能极其强大的反汇编静态分析工具—IDA。据说它的图标是被称为“世界上第一位程序员”的Ada Lovelace的头像,中文名为阿达。书中使用IDA版本为5.5英文版。为了减少学习的干扰因素,我也使用的5.5英文版。成功安装IDA后,会出现两个可执行程序图标,一个是黑白的阿达头像,另一个是在阿达头部写有”64”字样的头像,分别对应32位和64位程序的分析。 IDA快捷键使用说明编号 快捷键 功能说明01 Enter 跟进函数实现,查看标号对应的地址02 Esc 返回跟进处03 A 解释光标处的地址为一个字符串的首地址04 B 十六进制数与二进制数转换05 C 解释光标处的地址为一条指令06 D 解释光标出的地址为数据,每按一次将会转换这个地址的数据长度07 G 快速查找到对应地址08 H 十六进制与十进制转换09 K 将数据解释为栈变量10 ; 添加注释11 M 解释为枚举成员12 N 重新命名13 O 解释地址为数据段偏移量,用于字符串标号14 T 解释数据为一个结构体成员15 X 转换视图到交叉参考模式16 Shift+F9 添加结构体 我们可以通过分析上一节中的”HelloWorld”程序来进一步学习IDA的基本使用方法。(1)加载分析文件IDA加载分析文件后,会询问分析的方式,有3中分析方案供选择 1>Portableexecutable for 80386(PE):分析文件为一个PE格式的文件(想要了解PE文件格式可以去看《程序员的自我修养》这本书,很经典) 2>MS-DOSexecuteble(EXE):分析文件为DOS控制台下的一个文件 3>Binaryfile:分析一个二进制文件(2)各视图功能 1>IDAView-A:分析视图窗口,用于显示分析结果,可选用流程图或代码形式 2>HexView-A:二进制视图窗口,打开一个文件的二进制信息。3>Exports:分析文件中的导出函数信息窗口。4>Imports:分析文件中的导入函数信息窗口。5>Names:名称窗口,分析文档中用到的标号名称6>Functions:分析文件中的函数信息窗口。7>Structures:添加结构体信息窗口。8>Enums:添加枚举信息窗口。 搜了下这个应该是原始地址吧,文章也没粘贴完整:http://blog.csdn.net/kyt511/article/details/44889327 鱼无论次 发表于 2017-4-13 17:43我在OneNote笔记粘过来的都不行,我发帖都一句一句来
OneNote上的那应该不是自动换行,而是边界问题吧,你把OneNote上的内容复制到系统自带的记事本中看一下就知道了。 话说楼主能把格式整理下么,你这文章自带花指令,看上去挺累。。。。。 希望楼主可以整理下,可以当做参考手册。{:1_921:} 凉游浅笔深画眉 发表于 2017-4-13 09:27
话说楼主能把格式整理下么,你这文章自带花指令,看上去挺累。。。。。
好像吾爱的发帖不会自动换行的,全部念在一起 不明觉厉,保存先。谢谢 鱼无论次 发表于 2017-4-13 10:40
好像吾爱的发帖不会自动换行的,全部念在一起
不会换行应该是用了不一样的换行代码导致的吧,他这个帖子应该是从什么地方复制过来的。 楼主,整理一下格式好不好? 你可以好好排下版~~ 是楼主自己写的吗