查壳去壳和加壳的基本原理

1.1 壳的分类

1. 通常分为压缩壳和加密壳两类。

2. 压缩壳的特点是减小软件体积大小,

3. 加密壳种类比较多,不同的壳侧重点不同,一些壳单纯保护程序,另一些壳提供额外的功能,如提供注册机制、使用次数、时间限制等。

1.2 查壳

可以利用PEID软件进行查壳,用PEID打开要查的软件,以扫雷为例,可以看到扫雷是用C++编写的程序,证明这个软件没有壳,如图1。若有壳,此处将会显示是用哪种方法加的壳。

图1

1.3 加壳

1. 什么是加壳?

利用特殊的算法,为了保护软件不被反编译,对可执行文件里的资源进行压缩或加密。

2. 加壳的原理

源程序的代码段通过壳程序进行加密,生成了加密后的代码段,加密后的代码跟源程序的头放在一起,得到的加壳后的程序。

1.4 去壳(脱壳)

1. 常用的脱壳工具:PEID

2. 脱壳的原理

脱壳的基本原则就是单步跟踪,只能往前,不能往后。脱壳的一般流程是:查壳->寻找OEP->Dump->修复。

经验分享 程序员 微信小程序 职场和发展