壳的编写(1)-- 简介与搭建框架

本文介绍了如何手动编写简单的壳,主要涉及压缩壳和加密壳的基本概念。作者通过创建三个项目(Pack Base、Pack_Dll、Stub)来搭建加壳程序的框架,并详细描述了每个项目的创建过程和编译配置。通过这一系列步骤,最终实现了基础框架的调通,为后续的壳编写打下基础。
摘要由CSDN通过智能技术生成

最近学习了壳,自己手动编写了简单的壳,功能比较简单,现在简单整理成笔记,供大家参考。个人能力有限,如有谬误,请不吝赐教,万分感谢。

参考资料:《黑客免杀攻防》,看雪论坛等

简介

       “壳”是一种现实比较常见的东西,比如:花生壳、瓜子壳等等。这些壳主要是用来保护其自身的果实的,要想吃到这些果实,我们就需要将其剥掉。在我们的软件行业也存在这样类似的东西,这种东西我们也称之为“壳”,我们自身的软件就类似于花生仁,而“壳”用来保护我们自身的软件,避免被其他人窥探。

壳根据作用,一般分为两种:压缩壳、加密壳。无论哪种他们的原理大致是相同的。我们给自身软件加壳后就会产生新的软件,新的软件是由壳和原软件组成,在执行的时候,先执行壳,由壳对原程序进行解密并还原到内存中去,接着执行原来的程序。如下图:

当我们将带壳的程序运行后,壳就会加载自己的API函数,然后对已知的加密区进行解密,对压缩进行解压,并按照PE结构将其释放到正确的内存位置上,并进行重定位,然后跳转到原程序的入口点(OEP),运行原程序。如图:

搭建环境

开发环境

Win7x64 旗舰版
vs2013
010Edit6.03
OD1.1(吾爱破解版)
PEid0.94
LordPE


说明:

 我们想程序的界面与逻辑进行分开,这样可以使两者互不干扰。


创建三个项目

a、创建一个名称为PackBase的mfc项目,用于界面操作
b、创建一个名称为Pack_Base的dll项目,编写加壳逻辑
c、创建一个名称为Stub的dll项目,编写壳的信息

a、创建一个名称为Pack Base的mfc项目

界面如下:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值