逆向分析——壳

举报
御麟 发表于 2023/04/25 22:16:47 2023/04/25
【摘要】 ​ 你脑海中的壳是什么壳在自然界是动物的保护壳,软件同样有保护壳,为了防止破解                        也许大海给贝壳下的定义是珍珠,也许时间给煤炭下的定义是钻石                                                                ——沙与沫壳的由来在DOS时代,壳一般指的是磁盘加密软件中的一段加密程序后来发展为...

 你脑海中的壳是什么

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

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

                                                                ——沙与沫

壳的由来

在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

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






【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。