shellcode笔记(一)环境的基础配置

本文介绍了如何在VS环境下通过修改入口点、关闭缓冲区安全检查、设置工程兼容Windows XP、关闭生成清单和调试信息等步骤,来减小C/C++编译生成的shellcode程序的exe文件大小。详细步骤包括在项目属性中进行相应设置,并展示了每一步操作后文件大小的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shellcode笔记(一)环境的基础配置

  • 此笔记基于VS平台C/C++高效shellcode编程技术实战课程视频

咳咳,我们先编写一个简单的例子,只写main函数,其他什么都不写(启动调试前,先将“解决方案配置”设置为“Release”

int main()
{
	return 0;
}

查看生成的exe文件大小(抱歉,这里忘了将“解决方案配置”从“Debug”选为“Release”,所以生成的exe文件有点大,设置后在Release文件夹内的exe文件的大小差不多为8KB,注意这里不要查看错了,是在Release文件夹下而不是Debug文件夹下
在这里插入图片描述从图片中我们可以看出,即便是一个什么功能都没有的功能,但是却有27KB,这是因为在生成exe文件时,要把其他pe格式应该有的部分填进去。所以我们要清除这些额外的代码,方法如下:

1. 修改入口点

方法:在 工程>属性>配置属性>链接器>高级入口点的选项处输入自定义的名字,我这里改成 Rmain, 同样的,在编写的代码中也要将main改成Rmain

int Rmain()
{
	return 0;
}

结果:重新生成项目后exe文件的大小变成3KB

2. 关闭缓冲区安全检查

方法:在 工程>属性>配置属性>C/C++>代码生成将“缓冲区安全检查”禁用
结果:重新生成项目后,exe文件的大小变成2.5KB

3.设置工程兼容Windows XP

vs2015可以设置,我用的是2010,这里就不演示了。

4.关闭生成清单

使用peid命令查看生成的exe文件的EP段,发现有三个数据段.text,.rsrc以及.rdata,我们只需要留下.text数据段

目的:去除.rsrc数据段
方法:在 工程>属性>配置属性>链接器>清单文件将“生成清单选项”关掉

在这里插入图片描述

5. 关闭调试信息

目的:去除.rdata数据段
方法:在 工程>属性>配置属性>链接器>调试将“生成调试信息”关掉
在这里插入图片描述

最后查看重新生成的exe文件的大小在这里插入图片描述

结果挺好的,不错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值