壳的编写(2)-- 编写壳(Stub)部分(1)

本文档介绍了如何编写DLL壳的Stub部分,包括添加编译选项以合并节区,进一步配置项目使得Stub.dll作为资源内嵌,定义结构保存数据,并详细阐述了如何去除DLL的引导代码,以确保程序的可控性和健壮性。
摘要由CSDN通过智能技术生成

1、添加编译选项

         在Stub项目中的Stub.cpp中,添加一下代码,控制此项目在编译时的连接选项。让我们生成的dll程序.text、.data与rdata区段合并。

#pragma comment(linker, "/merge:.data=.text")        // 将.data合并到.text
#pragma comment(linker, "/merge:.rdata=.text")       // 将.rdata合并到.text
#pragma comment(linker, "/section:.text,RWE")        // 将.text段的属性设置为可读、可写、可执行
重新编译项目,用LoadPe打开Stub.dll,区段表信息如下:

2、进一步配置项目

         起始通过之前的配置我们就已经配置好项目了,为了让我们的项目配置更好些,想让最终生成的文件只有MFC工程生成的PackBase.exe和加壳工程生成的Pack_Dll.dll两个文件,而Stub工程生成的Stub.dll以资源的形式存在Pack_Dll项目中。

         为此,我们首先将Stub工程编译一下,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值