加密与解密(一) -- 壳、加壳

问题

1、 什么是壳?它是干嘛的?
2、 有哪些壳类型?
3、 壳是怎么加载的?
4、 加壳软件有哪些?

什么是壳?

加壳的目的:为了隐藏程序真正的OEP(入口点),防止被破解。

加壳软件是一种在编译好可执行文件之后,为了一些特定的需求,而做的一些事情,常见需求有:

  1. 有一些版权信息需要保护起来,不想让别人随便改动
  2. 为了让程序小一点,从而方便使用(把可执行文件进行压缩使用)
  3. 在黑客界给木马等软件加壳以避免杀毒软件

软件的壳的分类:

  • 加密壳
  • 压缩壳
  • 伪装壳
  • 多层壳
壳的加载过程

加壳过的exe是可执行文件,它可以像正常的exe一样执行。

用户执行的实际上是外壳程序,外壳程序负责把用户原来的程序在内存中解压缩,并把控制权交还给解开后的真正程序,这一整个都是在内存中运行的,对于用户来说是透明的。

壳比原程序代码更早获得控制权。

壳的加载过程:
一般壳的装载过程:

  1. 获取壳所需要使用的API地址
    加壳后的文件,比未加壳的文件的输入表所引入的API少(甚至只有Kernel32.dll以及GetProcAddress这个API函数);壳实际上还需要其他API函数来完成一些事情,它为了隐藏这些API,一般只在壳的代码中用显式链接的方式来动态加载这些API
  2. 解密原程序的各个区块(Section)的数据
    壳一般是按区块加密的,那么解密的时候也是按区块解密,并且把解密的区块数据按照区块的定义放在合适的内存位置;如果加壳时用到了压缩技术,那么在解密之前,需要用对应的解压缩技术。
  3. 重定位
  4. HOOK-API
    程序文件中国的输入表的作用:让Windows系统在程序运行时提供API的实际地址给程序使用,这个是在程序的第一行代码执行之前,由Windows系统完成的操作。
    而壳一般是修改了原程序文件的输入表,然后仿照Windows系统的工作来填充输入表中的相关数据,在填充过程中,外壳就可填充HOOK-API的代码地址,从而可以间接获得程序的控制权。
  5. 跳转到程序原入口点
    这个时候,壳把控制权交还给原程序
    在这里插入图片描述
常见的加壳软件

加壳软件按照其加壳目的,一般可分为两类:

  • 压缩 ==》 减小程序体积【ASPacK、UPX、PECompack等】
  • 保护程序 ==》 用了各种反跟踪技术保护程序不被调试、脱壳等【ASProtect、Armadillo、EXECryptor等】
Shell

shell是操作系统与外部最主要的接口,是操作系统最外面的一层

  • shell提供了用户与操作系统之间通讯的方式【交互式:从键盘输入等;非交互式(shell script):放在文件中的一串shell和操作系统命令,它们可以被重复使用(本质上,shell script 是命令行的简单地组合到一个文件里面)】
  • shell是一个命令解析器,它解释用户输入的命令并且把它们送到系统的内核去执行。
    黑客入侵时要得到的是有admin权限的shell,才能完全的控制系统。
  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zprotect是新一代的软件加密保护系统,拥有多项革命性的创新技术,设计用来保护您的软件产品不被破解,减少由于盗版给您带来的经济损失!此外,Zprotect 拥有简单易用的许可控制系统,您无需更改任何代码,即可为您的软件添加注册机制。与传统软件保护系统相比,Zprotect更加注重对代码的处理,并且拥有良好的稳定性和兼容性,是您配置软件保护系统的最佳选择! Zprotect拥有简单易用、高效灵活的注册和授权管理系统: 一键试用技术. Zprotect 为您提供一键试用技术,您不必修改任何源代码,在短短几分钟之内就可以将您的完整版软件转换为“先试用后购买”的试用版软件,甚至还可以支持带硬件锁定的序列号注册。 内建注册和许可管理系统. Zprotect 内建灵活易用的注册和许可管理系统,您可以轻松创建具有时间限制、硬件锁定、水印信息的注册码。 动态算法生成引擎. 外所使用算法均动态生成,随机且唯一,让逆向算法变得困难和高成本。 时间限制注册密钥. 如果您需要限制注册版本的有效期,可以通过创建具有时间限制的注册密钥来实现。 硬件锁定(一机一码). 激活硬件锁定功能的注册密钥,只能在某一特定计算机上使用;您可以通过锁定用户计算机的硬件信息来控制注册码的传播,例如 CPU、硬盘序列号、网卡 MAC 地址等。 密钥黑名单. 如果您的用户泄漏了注册密钥,那么您就可以将该密钥添加进密钥黑名单,这样下一版本更新的时候您就可以锁定该密钥。 启动密码保护. 这种附加的保护可以有效防止软件未经授权的使用,必须输入正确的密码才可以运行程序。 试用次数、天数、日期和运行时间限制. 使用 Zprotect ,您可以轻松为您的应用程序添加试用次数、试用天数、试用日期和试运行时间等限制;这样您的客户就可以全功能评估您的软件产品,增大购买意向

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值