查看 kanxue 发表的精华帖 添加 kanxue 到好友列表 kanxue 5 2006-092006-09-13 20:53 第四课 静态分析技术 所谓静态分析即从反汇编出来的程序清单上分析 从提示信息入手进行分析。
所谓静态分析即从反汇编出来的程序清单上分析 从提示信息入手进行分析。
目前大多数软件在设计时都采用了人机对话方式。
所谓人机对话 目前大多数软件在设计时都采用了人机对话方式。
所谓人机对话 即在 软件运行过程中需要由用户选择的地方软件即显示相应的提示信息 软件运行过程中需要由用户选择的地方软件即显示相应的提示信息并 等待用户按键选择。
而在执行完某一段程序之后便显示一串提示信息 等待用户按键选择。
而在执行完某一段程序之后便显示一串提示信息以 反映该段程序运行后的状态是正常运行还是出现错误 反映该段程序运行后的状态是正常运行还是出现错误或者提示用户进 坛主 行下一步工作的帮助信息。
为此 行下一步工作的帮助信息。
为此如果我们对静态反汇编出来的程序清单进 行阅读可了解软件的编程思路以便顺利破解。
行阅读可了解软件的编程思路以便顺利破解。
常用的静态分析工具有 资 料: 注册日期: 注册日期: Apr 2004 帖子: 帖子: 8363 精华: 精华: 7 声望: 声望: 15 平台上 95/98/ME/NT/2000/XP/2003/CE 可执行 在 Win32 平台上包括 Windows 95/98/ME/NT/2000/XP/2003/CE可执行 PE Executable格式。
文件是 PEPortable Executable格式。
PE 文件使用的是一个平面地址空 间所有代码和数据都被合并在一起组成一个很大的结构。
文件的内容被 所有代码和数据都被合并在一起组成一个很大的结构。
分割为不同的区块Section又称区段、节等块中包含代码或数据。
分割为不同的区块Section又称区段、节等块中包含代码或数据。
块中包含代码或数据 4.1 认识 PE 格式 W32DASM、 W32DASM、C32Asm 和 IDA Pro 等。
格式 格式请参考脱 刚接触这块的朋友只需要简单了解一下 PE 格式更具体的 PE 格式请参考脱 壳基础知识入门 年版 壳基础知识入门2006 年版 相关名词解释如下 PE 相关名词解释如下 Point 1入口点Entry Point 入口点 程序在执行时的第一行代码的地址应该就是这个值。
程序在执行时的第一行代码的地址应该就是这个值。
Offset 2文件偏移地址File Offset 文件偏移地址 文件在磁盘上储存时各数据的地址称文件偏移地址 Offset。
PE 文件在磁盘上储存时各数据的地址称文件偏移地址File Offset。
用十六进制工具 Workshop、 用十六进制工具例如 Hex Workshop、WinHex 等打开文件显示的地址就是 文件偏移地址。
文件偏移地址。
AddressVA 3虚拟地址Virtual AddressVA 虚拟地址 保护模式下在保护模式下 由于 Windows 程序是运行在 386 保护模式下在保护模式下程序访问存储 器所使用的逻辑地址称为虚拟地址 AddressVA。
。
与实地址模式 器所使用的逻辑地址称为虚拟地址Virual AddressVA。
与 实地址模式 下的分段地址类似虚拟地址也可写成 下的分段地址类似虚拟地址也可写成段偏移量的形式这里的段是指 地址类似 偏移量的形式 段选择器。
段选择器。
4基地址ImageBase 基地址ImageBase 文件执行时将被映像到指定内存地址中这个初始内存地址称为基址 文件执行时将被映像到指定内存地址中 10000h DLLs ImageBase。
在 Windows NT 中缺省的值是 10000h对于 DLLs缺省值 ImageBase。
在 。
400000h。
位的执行文件 为 400000h。
在 Windows 9x 中10000h 不能用来装入 32 位的执行文件因 为该地址处于所有进程共享的线性地址区域 为该地址处于所有进程共享的线性地址区域因此 Microsoft 将 Win32 可执 400000h。
行文件的缺省基地址改变为 400000h。
5相对虚拟地址 相对虚拟地址Relative AddressRVA 相对虚拟地址Relative Virual AddressRVA表示此段代码在内存中相 对于基地址的偏移。
对于基地址的偏移。
即相对虚拟地址RVA虚拟地址VA-基址 相对虚拟地址RVA虚拟地址VA RVA虚拟地址 ImageBase。
ImageBase。
4.2 虚拟地址和偏移量转换 在 OllyDBGIDA 和 W32Dasm 下显示的地址值是虚拟地址 AddressVA。
而十六进制工具里 。
而十六进制工具里 Hiew、 Virual AddressVA。
而十六进制工具里如Hiew、Hex Workshop 等 显示的地址就是文件地址称之为偏移量 显示的地址就是文件地址称之为偏移量File offset 。
其转换原理是因为 PE 文件在磁盘上的数据结构与在内存中的结构是一 致的如下图 致的如下图 具体见http://bbs.pediy.com/showthread.phpsampthreadid18022 具体见http://bbs.pediy.com/showthread.phpsampthreadid18022 在实际操作时 在实际操作时使用 LordPE 等工具很容易进行 File offset 与 VA 的转 打开目标文件 按钮打开如下图的对话框 换。
LordPE 打开目标文件点击 FLC 按钮打开如下图的对话框填入相应 地址 按钮即可转换 地址点击 DO 按钮即可转换 4.3 文件类型分析 文件分析是静态分析程序的第一步 通过相关工具显示欲调试文件的信息 文件分析是静态分析程序的第一步 通过相关工具显示欲调试文件的信息 如它是用什么语言写的 是否加壳等。
常用的文件分析工具有 PEID PEID 如它是用什么语言写的 是否加壳等。
FileInfo 等。
有关壳的相关知识等入门后再参考相关教学如 脱壳基础知识入门 有关壳的相关知识等入门后再参考相关教学 年版 如果查到文件有壳此时静态分析是没意义的 2006 年版 。
如果查到文件有壳此时静态分析是没意义的但可以 用 动态调试分析程序算法。
OD 动态调试分析程序算法。
1.PEiD 界面操作非常方便直观。
PEiD 的 GUI 界面操作非常方便直观。
它的原理是利用查特征串搜索来完成识 别工作的。
各种开发语言都有固定的启动代码部分 别工作的。
各种开发语言都有固定的启动代码部分利用这点就可识别出是 何种语言编编译的。
同样不同的壳也有其特征码 何种语言编编译的。
同样不同的壳也有其特征码利用这点就可识别是被 何种壳所加密。
加的壳。
何种壳所加密。
下面 PEiD 识别出这个软件是用 Asprotect 1.2x 加的壳。
2.FileInfo FileInfo Fi另一款不错的文件检测工具。
FileInfo简称 Fi另一款不错的文件检测工具。
FI 的具体用法 4.4 W32Dasm 简介 W32Dasm 简介 4.5 IDA pro 操作 IDA 简易教程 IDA 里的中文字串 4.6 keymaker 内存注册机 Q什么是某个软件的中段地址指令长度第一字节这些数据怎么得到 什么是某个软件的中段地址指令长度第一字节这些数据怎么得到 这些数据在内存注册机中怎么应用 这些数据在内存注册机中怎么应用 A 青色代表着注册码的保存模式 青色代表着注册码的保存模式 绿色的是中断地址中断地址一般选择注册码保存模式的下一句 绿色的是中断地址中断地址一般选择注册码保存模式的下一句或下几句 的是中断地址 地址 地址但必须保证程序中断到这个地址时注册码保存的值没有被任何东西修 改或改变。
如下面的例子 00401207 改或改变。
如下面的例子中断地址可以选在 00401205 和 00401207但不 这个地址 的值。
能选在 0040120C 这个地址因为 00401207 这个 Call 过后会修改 eax 的值。
红色的是中断的第一个字节 红色的是中断的第一个字节 红色加上蓝色的字节就是指令长度 红色加上蓝色的字节就是指令长度 加上蓝色的字节就是指令长度 如下面的例子选的中断地址是 00401207 如下面的例子选的中断地址是 00401207 个字节 这个地址上有 5 个字节所以指令长度是 5 00401205 注册码 00401206 注册码 00401207 0040120C 结果 0040
上一篇:
Ocx入门
下一篇:
病理学实验课多样化教学方法探讨