软件逆向分析有感

一.PE文件格式概述:

1.PE(Portable Executable),Win32环境自身的执行文件格式体。

它的一些特性来自于UNIX的COFF(Common Object File Format)文件格式。

 任何Win32平台上的PE装载器都能识别和使用该格式的文件。


2.RVA(Relative Virual Address)相对虚拟地址

 装载程序需要把PE格式文件装载到一个虚拟地址空间中。而PE格式文件中很多项是由RVA方式指定的,RVA是其中一项相对于文件映像地址的偏移地址。通过RVA地址和基址可以计算PE格式文件的某一项的内存地址。



3.PE文件总体层次

(a)DOS MZ Header

它是一个IMage_DOS_Header结构,有了这个结构,使得程序在DOS下执行前,可以被DOS识别出这是有效的执行体,然后运行紧随DOS Stub。


(b)DOS Stub

这是一个极小的DOS程序,用来输出一些错误信息,比如在不支持Win32程序的环境下运行一个Win32程序。当Win32加载器把一个PE映像到内存中的时候,内存映像文件中的第一个字节就对应PE文件中的DOS Stub部分的第一个字节。


(c)PE Header

PE Header是IMAGE_NT_HEADERS结构体的简称。它包含了很多PE文件被载入内存时所需要用到的重要域。



(d)Section Table

在PE Header接下来就是数组结构Section Table(节表)。

PE文件中有N个节,每个节是一块拥有共同属性的数据。


4.PE文件运行

⑴PE文件被执行

PE装载器检查DOS MZ Header并找到PE Header的偏移量,跳转到PE Header。

⑵PE装载器检查PE Header的有效性

检查PE Header的有效性,如果有效就跳到PE Header的尾部。

⑶PE装载器读取每个节表,将节表映射到内存。

节表紧跟着PE Header的尾部,PE装载器读取每个节表的信息,并把节表映射到内存中,同时给予节表的属性。

⑷PE装载器处理PE文件中的import table(引入表)

PE装载器读取PE文件中的import table的逻辑部分,程序装载的时候要读取函数和DLL信息,要找到目标函数的地址,并把该函数的内容补充到内存映射中。这些信息都是存储在import table中。

一般来说,import表都是存放在程序的idata块中,但也有很多程序的import表不在该块中,需要了解import表的结构来进行定位。


4.块描述

1.text

text是在编译或者汇编结束的是偶产生的一种块,它的内容全部是指令代码,

2.data

初始化的数据块,这些数据包括编译时被初始化的globle和static变量,也包括字符串。local变量不占data块,该部分以明文的形式存放在文件中。

3.idata

输入数据,包括输入目录和输入地址名字表、idata包含其他外来的DLL的函数及数据信息。

4.rsrc

包含模块的全部资源,如图表,菜单和位图等。

5.reloc

保存基地址重定位表,

6.edata

PE文件输出函数和数据的列表,以供其他模块引用。

7.tls

thread local storage线程本地存储器。它与Win32的TlsAlloc系列功能有关。

8.rdata

调试和说明信息。


二.软件加密技术:

分类:加密壳,压缩壳,兼而有之。

Themida加密壳、Armadillo加密壳、EncryptPE加密壳等。

UPX压缩保护壳、ASPack压缩保护壳、Petiti 2.3-GUI等。


利用壳的加密处理的原理,多在程序中添加反逆向分析的关键代码和反调试器的代码、将程序的关键代码进行处理。



三.调试:

静态分析:分析程序的类型、语言、是否加壳、加什么样的壳。

分析工具:PEID、FileInfo、pe-scan等等。

静态逆向分析:在脱壳后的软件反汇编后得到的程序清单。

分析工具:W32Dasm、IDA、Hiew等。


动态分析:

分析工具:SoftICE、Trw2000、


调试器:OllyDbg。



 





  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值