运行软件之前我们先要知道什么是壳
“壳”是专门的压缩工具.软件加壳是在程序中加入一程保护作用的代码, 它改变代码本来的面目, 如将原来的代码和数据加密, 以保护程序不被轻易修改, 窃取和反编译, 延长破解时间, 消耗破解者经历. 当加了壳的软件运行时, 壳首先在内存中获取执行权, 对软件解压或解密, 还原软件的原本面目, 然后把执行全交给软件, 软件正常执行
没有加壳的程序,里面用的一些字符串常量,比如文件路径,写死的密钥都可以通过查看可执行文件得到. 自己可以试一下,用vim编辑程序,搜索代码中的字符串. 加壳软件并不能防止内存dump, 软件运行起来的时候, 就已经脱壳了, 代码中的所有字符串常量都可以通过查看dump文件得到
软件界面
![图片[1]-PEiD软件祯壳工具-使者云](https://i58-1251178265.cos.ap-nanjing.myqcloud.com/2024/06/20240623072939737.jpg?imageMogr2/format/webp/interlace/1/quality/100)
祯壳
我们找一个测试软件拖入该祯壳软件,会得到一些数据,来判定软件是否加壳
![图片[2]-PEiD软件祯壳工具-使者云](https://i58-1251178265.cos.ap-nanjing.myqcloud.com/2024/06/20240623073157258.jpg?imageMogr2/format/webp/interlace/1/quality/100)
然后我们得到了.text
这个代码一般情况下都是没有加壳,也不否定一些壳的伪装词条
下面就来看一下加壳的软件的词条,就以软件内容修改工具
为例
![图片[3]-PEiD软件祯壳工具-使者云](https://i58-1251178265.cos.ap-nanjing.myqcloud.com/2024/06/20240623073745373.png?imageMogr2/format/webp/interlace/1/quality/100)
看这一段直接空,说明我加壳的时候没有设置这段的伪装
![图片[4]-PEiD软件祯壳工具-使者云](https://i58-1251178265.cos.ap-nanjing.myqcloud.com/2024/06/20240623073828926.png?imageMogr2/format/webp/interlace/1/quality/100)
EP区段有时候会显示vmp或者UPX 这两个是市面上最常见的加壳软件
常见的加壳软件介绍
UPX
, 开源免费, 是一个压缩型加壳工具.支持多种文件类型加壳, 压缩算法先进, 但没有反调试和保护策略, 能被一些防病毒软件扫描程序检测并解压缩. UPX有一个解压缩开关, 不过有UPX有些保护工具UPXPR,UPX-Scarambler
能修改UPX加壳标识, 使UPX自动解压缩功能失效. (经过测试,压缩后之前的明文信息都找不到)Virbox
. 国内的虚拟机加壳公司. 技术支持比较方便. 功能和VMProtect一样.VMProtect
, 国外比较有名软件保护公司.VMProtect
不是一个壳, 他是将代码变形和虚拟化, 处理后能很好的隐藏代码算法, 防止被逆向. 操作界面友好, (测试加壳功能,正常,但是编译选项加上-static
的时候,不能加壳.)Themida
. 旗下WinLicense,Code Virtualizer 比较有名.Code Virtualizer 是一个用虚拟机混淆代码的加壳工具.支持linux, 但是网上已有针对 CV的脱壳. (经过测试,读取不了程序)
关于软件保护加密解密相关的东西
- 加密壳都能被解开或者脱壳. 保护强度和流行性成正比, 越是流行的工具越可能被广泛深入的研究过, 可能有了通用的脱壳解密方法
- 增加软件对自身的完整性检查, 包括对磁盘文件和内存映像的检查, 以防止有人通过修改程序达到破解目的. (目前市场上的软件保护工具自带完整性检查.)
- 不要采用一目了然的名字来命名函数和文件. (不大可行,为难开发者)
- 尽可能少的给用户提示信息. 提示的信息相当于给破解者提供破解线索.
- 软件保护加入一定的随机性,不要启动时就进行检查,比如程序启动一个小时后再进行对
keyfile
进行检查, 检查失败后再延迟一段时间进行提示. 迷惑破解者.
感谢您的来访,获取更多精彩文章请收藏本站。

暂无评论内容