吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8895|回复: 51
收起左侧

[原创] 从零开始构造加密壳系列 一 加壳原理

  [复制链接]
lyl610abc 发表于 2021-4-10 22:21
本帖最后由 lyl610abc 于 2021-4-10 22:24 编辑

前言

论坛里有不少优秀前辈们的脱壳破解教程,但是关于加壳的内容比较少,于是就打算出一个加壳系列

加壳系列将一步步构建一个简单的加密壳,进一步巩固PE文件的知识

正所谓知己知彼,百战不殆。只有在了解壳是怎么来的这个前提下,才能更好地脱壳

加壳离不开PE文件的相关知识,有关PE的相关知识可以查看先前的系列:PE文件笔记一 PE介绍

该篇为:加壳系列一;主要介绍一下加壳的原理,为后续作铺垫


加壳原理

什么是壳

所谓的壳,其实就是给程序套上一层外壳;

  • 通过加壳,可以增加逆向分析代码的难度,在一定程度上保护软件代码的安全
  • 通过加壳,可以压缩程序的大小,使程序占用的空间更小

也可以将壳称为一种补丁

壳的种类

壳大致可以分为两种:压缩壳和加密壳

  • 压缩壳:压缩程序的大小,减小空间占用
  • 加密壳:反调试、反跟踪,保护程序

常见的压缩壳:ASPack、UPX

常见的加密壳:ASProtect、Armadillo、 EXECryptor、Themida、VMProtect


加壳的基本思路

极简版基本思路

  1. 保存相关信息到补丁并加密程序
  2. 修改程序入口为补丁地址
  3. 补丁根据先前保存的信息还原和解密程序
  4. 补丁最后返回原本的程序入口

简略版基本思路

  1. 将原本程序的PE相关代码复制到补丁中
  2. 加密程序
  3. 修改程序入口点,使得程序启动后会先运行补丁程序
  4. 补丁程序会根据先前复制的相关代码对程序进行解密和还原,使得程序能够正常运行
  5. 还原后再返回执行原本的入口点

详细版基本思路

  1. 在PE文件中开辟空间用于存储补丁代码
  2. 复制扩展PE头中的数据目录表(DataDirectory)的内容到存储补丁的空间中,复制完后清空原本的数据目录表
  3. 修正复制过去的数据目录表的内容
  4. 对修正完的数据目录表之后的数据(不包括补丁部分)进行加密
  5. 修改PE文件的程序入口为补丁代码
  6. 补丁代码还原前面被清空的数据目录表
  7. 补丁代码解密先前加密的数据
  8. 补丁代码加载导入表中需要导入的DLL
  9. 补丁代码修正IAT
  10. 补丁代码执行完后返回原本的程序入口

加壳后的程序结构

image-20210410201300294


总结

  • 前面所给出的只是加壳的基本思路,实际中的壳千变万化,不一定完全按照基本思路来,但基本套路如是
  • 加壳的难点在于将数据目录项复制到补丁代码部分,并修正复制后的数据目录项
  • 加壳中加密的核心是加密算法

免费评分

参与人数 20吾爱币 +24 热心值 +20 收起 理由
Alutemurat + 1 + 1 谢谢@Thanks!
Chen10086 + 1 用心讨论,共获提升!
allenkoo + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
LENY77777 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
24K叶生 + 1 用心讨论,共获提升!
非凡公子 + 1 + 1 谢谢@Thanks!
Passerby + 2 + 1 我很赞同!
h07799486 + 1 + 1 谢谢@Thanks!
Chords心弦 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
朝闻道夕死可矣 + 1 鼓励转贴优秀软件安全工具和文档!
fujita731 + 1 + 1 我很赞同!
zHiHz + 1 + 1 我很赞同!
debug_cat + 2 + 1 大佬出品,必属精品
涛之雨 + 4 + 1 我很赞同!
灬范灬 + 1 + 1 谢谢@Thanks!
鸠山一茶 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
正己 + 1 + 1 大佬就是牛蛙
Ephraim2020 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
居客 + 1 + 1 我很赞同!
Ps出来的小赵 + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

涛之雨 发表于 2021-4-11 10:30
本帖最后由 涛之雨 于 2021-4-11 10:34 编辑

vmp用不好,就变成了第三类壳:增积壳
作用:虽然没有虚拟化保护软件关键函数,但是可以增加软件体积,吓唬破解者,顺便增加检测虚拟机或是调试器附加的功能
 楼主| lyl610abc 发表于 2021-4-14 16:25
Hmily 发表于 2021-4-14 16:17
我建议你同步进行,也许论坛这个平台你可以找到更好的选择。

主要我自己不是特别着急,打算将自己学过的内容复习巩固后再去投简历面试
目前大四,还没有投过简历,想趁还在学校的期间多学习学习
工作后学习的时间可能就没现在这么充裕了,也没那么多精力分享这些知识到论坛上
所以我还没到那个阶段,暂时还是以学习为主,但学习的侧重点在于找工作

点评

大四了应该抓紧时间,现在还有机会走校招,如果过了校招只能走社招了。  详情 回复 发表于 2021-4-14 16:28
gdf87521 发表于 2021-4-10 22:22
Ps出来的小赵 发表于 2021-4-10 22:27
膜拜大佬,现在我出4块5了
Niay 发表于 2021-4-10 22:33
这是新篇章?
DevilNuts 发表于 2021-4-10 22:39
厉害厉害,等个更新
 楼主| lyl610abc 发表于 2021-4-10 22:52

算是吧,打算同时开几个新坑
-白衬衫- 发表于 2021-4-10 23:10
厉害了,能学习到一些的PE基础
daxiang789 发表于 2021-4-10 23:28
mark 学习
沉心云 发表于 2021-4-10 23:38
前来学习啦
天山雪 发表于 2021-4-11 00:03
收藏了。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-22 20:51

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表