天天看点

软件逆向 三

认识壳

壳是指在一个程序的外面再包裹上另外一段代码,保护里面的代码不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任 务。

◆在一些计算机软件里也有一段专门负责
保护软件不被非法修改或反编译的程序。
◆它们一般都是先于程序运行,拿到控制
权,然后完成它们保护软件的任务。
◆由于这段程序和自然界的壳在功能上有
很多相同的地方,基于命名的规则,就把
这样的程序称为“壳”了。
           

壳的分类

壳的分类-保护壳(加密壳)

◆保护PE免受代码逆向分析,应用了多种防止代码逆向分析的技术.加保护壳的PE程序经常比原文件更大

使用目的

防止破解

保护代码和资源

使用现状

大量应用于对破解敏感的安全程序

◆恶意代码用于防止(降低)杀毒软件的检测

壳的分类-压缩壳

使用目的

缩减PE文件的大小,便于网络传输或保存◆隐藏PE文件内部代码和资源

使用现状

早在DOs时代就已出现但因PC计算能力有限,解压开销太大,未能广泛使用.

◆现状广泛应用

压缩壳种类

单纯用于压缩普通PE文件的压缩壳

◆对源文件有较大变形,严重破坏PE头,常用于恶意程序的压缩壳

大量应用于对破解敏感的安全程序

◆恶意代码用于防止(降低)杀毒软件的检测

常见的压缩壳

UPX

UPX是一个以命令行方式操作的可

执行文件经典免费压缩程序,压缩算

法自己实现,速度极快。(开源)

PECompat

PECompact同样也是一款能压缩可执行文

件的工具

◆支持EXE、DLL、SCR、OCX等文件

◆提供了多种压缩项目的选择,用户可以根据

需要碗定哪些内部资源需要压缩处理提供了加解密的插件接口功能

ASPack

ASPack是款Win32可执行文件压缩软件◆可压缩Windows 32位可执行文件(.exe)以及库文件(.dll、 .ocx)

文件压缩比率高达40%~70%

常见的加密壳

ASProtect

拥有压缩、加密、反跟踪代码、反-反汇编代码

、CRC校验和花指令等保护措施

◆通过API钩子与加壳的程序进行通信

◆为软件开发人员提供SDK,实现加密程序内外

结合。

◆研究的人比较多,脱壳方法成熟

Armadillo

◆又称"穿山甲“,应用面较广

◆可以运用各种手段来保护你的软件

◆同时也可以为软件加上种种限制,包括时间

、次数,启动画面等等

Nanomites保护(cc保护)

Public版没有保护强度,使用Custom版

EXECryptor

兼容性处理不好

Anti-Debug功能隐蔽

◆使用虚拟机保护关键代码

Themida

虚拟机保护

擅用SDK

生成文件较大

◆与WinLicense壳功能

类似

VMProtect

纯虚拟机保护软件

◆至今还没有人公开宣称能还

原心

◆影响速度,生成文件大

脱壳方式 软件脱壳