逆向分析——壳

文章讨论了壳在软件保护中的作用,从早期的磁盘加密到压缩壳如UPX和ASPack,再到加密壳如ASProtect和Armadillo,以及虚拟机保护技术的EXECryptor和Themida。同时,提到了脱壳过程,包括寻找程序入口点和重建PE文件。
摘要由CSDN通过智能技术生成

你脑海中的壳是什么

壳在自然界是动物的保护壳,软件同样有保护壳,为了防止破解

                        也许大海给贝壳下的定义是珍珠,也许时间给煤炭下的定义是钻石

                                                                ——沙与沫

壳的由来

在DOS时代,壳一般指的是磁盘加密软件中的一段加密程序

后来发展为LZEXE之类的压缩壳,加EXE文件压缩之后,在文件上加一层在软件执行时自动将文件解压缩的壳,以达到压缩EXE文件的目的

随着软件保护需求的日益旺盛,出现了加密壳,使用各种反跟踪技术保护程序不被调试,脱壳等

有商业壳,也有个人开发的壳

很多木马和病毒是用壳来保护自己的

对于私人壳,很多杀毒引擎会直接把壳当成木马和病毒处理

更多商家依赖于加密算法

公开的壳会有人去研究,就会有脱壳软件,但是没有脱壳软件的就需要我们自己手动脱壳

压缩壳

侧重于压缩的壳,压缩壳可以减少软件的体积,加密保护不是重点

UPX

有DOS,Linux和Windows版本

官网

ASPack

是一款Win32可执行文件压缩软件,可压缩Win32可执行文件EXE,DLL,OCX

官网

加密壳

ASProtect

是一款功能强大的Win32保护工具

有压缩,加密,反跟踪代码,CRC校验和花指令等保护措施

Armadillo

Armadillo是穿山甲的意思

正在上传…重新上传取消

 有Public和Custom两个版本

可以为软件加上多种限制,包括时间,次数,启动画面等

有“CC保护”,扫描程序,处理标签里的跳转指令,将所有跳转指令换成INT3指令,机器码是CC,Armadillo是双进程运行的,子进程遇到CC异常,父进程会截获这个INT3异常,计算出跳转指令的目标地址并将其反馈给子进程,使子进程继续运行

EXECryptor

为目标软件添加注册机制,时间限制,使用次数等附加功能

Themida

是一款商业保护软件

用了虚拟机保护技术,在程序中善用SDK

缺点:生成的软件体积有点大

虚拟机保护的软件

虚拟机介绍

是一个由编译器,解释器和虚拟CPU环境组成的

会严重影响代码的性能,用效率换安全

脱壳

加载过程

比原代码更早地获取控制权,壳修改了原程序执行文件的组织结构

壳一般会加密原程序文件的各个区块,解密时按区块解密,把解密的区块数据按照区块的定义放在内存中合适的位置

IAT的初始化

IAT的填写本来应该由PE装载器实现,但由于在加壳时构造了一个自建输入表

程序的原始输入表被外壳变形后存储,IAT的填写会由外壳程序实现

手动脱壳

分为三步:

1.查找真正的程序入口点

2.抓取内存映像文件

3.重建PE文件

寻找OEP

根据跨段转移指令就可以找到程序真正的入口点了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烨鹰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值