《黑客免杀攻防学习笔记》——C++设计一个简单的壳1

本文介绍了C++设计简单壳的过程,包括指定程序入口、合并段属性、初始化API和解密宿主程序。通过MFC界面调用DLL实现加壳,壳的主体由初始化API和解密程序组成,其中详细阐述了如何获取API地址以确保程序的兼容性。
摘要由CSDN通过智能技术生成

本文中的代码均来自《黑客免杀攻防》,如要转载,需写明来源,请勿用于非法用途,作者对此文章中的代码造成的任何后果不负法律责任。

看了一遍书本的第11章,感觉内容确实比较高级,之前虽然自认为是热衷于搞C/C++开发,但是运用windows API的开发真的是太少了。先来看看一个简单的壳的编写。

         这个加壳脱壳程序分为三部分,首先是用MFC写的界面程序,这个自然不用多说,主要功能就是调用加壳部分生成的dll文件中的导出函数对PE文件加壳;第二部分则是加壳程序,当然不仅仅是加壳,这其实上就是获得被加壳的PE文件的信息,然后根据这些信息将第三部分,也就是真正的壳加入到PE文件中去,并且修改一系列的值,使得这个壳能够发挥作用;第三部分自然就是真正的壳了,其中也涉及到一些对于PE文件的操作,但是相对于第二部分来说就简单一些。现在来看看具体的步骤,由于第三部分是基础,前两部分都是依靠第三部分来写的,因此按照书上的顺序,先说如何写这个壳。

1.壳的编写

         首先,为了减少壳的体积,这里的代码使用了以下处理:

#pragma comment(linker,"/entry:\"StubEntryPoint\"") // 指定程序入口函数为StubEntryPoint()

#pragma comment(linker,"/merge:.data=.text")        //.data合并到.text

#pragma comment(linker,"/merge:.rdata=.text")       //.rdata合并到.text

         因为后面第二部分需要对text进行修改,写入一些参数,所以要修改.text的属性。

#pragma comment(linker,"/section:.text,RWE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值