VC 使用什么代码能让exe膨胀数倍大小

lookjoyson 2015-05-05 03:30:16
VC 使用什么代码能让exe膨胀数倍大小
...全文
140 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mewiteor 2015-05-06
  • 打赏
  • 举报
回复
引用 7 楼 lookjoyson 的回复:
[quote=引用 6 楼 mewiteor 的回复:]
for /L %i in (1,1,循环次数) do type 程序名.exe>>程序名.exe
循环次数填一个正整数,最后大小为 程序名.exe的大小^(循环次数+1) 或者
fsutil file createnew tmp 文件大小
copy /b 程序名.exe+tmp 程序名.exe
del tmp
最后大小为 程序名.exe的大小+文件大小
求完整点, 最好是 程序名.exe运行后开始膨胀自身大小,不用资源文件[/quote]
#include<windows.h>
int main(int argc,char** argv)
{
	if(1==argc) // 正常运行时
	{
		char fileold[MAX_PATH],filenew[MAX_PATH];
		HANDLE hFile,hProcess;
		char szCmdLine[600];
		
		GetModuleFileNameA(NULL,fileold,_countof(fileold)); // 获取进程路径
		
		GetTempPathA(MAX_PATH,filenew);	// 获取临时文件夹
		GetTempFileNameA(filenew,"CHG",0,filenew);
		
		CopyFileA(fileold,filenew,FALSE); // 复制自身生成一个的临时程序
		
		hFile=CreateFileA(filenew,0,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_FLAG_DELETE_ON_CLOSE,NULL); // 这里是为了加上FILE_FLAG_DELETE_ON_CLOSE标志,表示此临时程序结束后自动删除
		hProcess=OpenProcess(SYNCHRONIZE,TRUE,GetCurrentProcessId());	// 获取进程句柄
		sprintf(szCmdLine,"\"%s\" %llu \"%s\"",filenew,(unsigned long long)hProcess,fileold); // 生成调用命令
		
		STARTUPINFOA si={sizeof(STARTUPINFO)}; 
		PROCESS_INFORMATION pi;
		CreateProcessA(NULL, szCmdLine, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi); // 以临时程序创建新的进程
		
		CloseHandle(hProcess);
		CloseHandle(hFile);
	}
	else if(3==argc) // 调用的临时文件
	{
		HANDLE hProcess;
		unsigned long long ullProcess;
		char str[600];
		
		sscanf(argv[1],"%llu",&ullProcess);	// 获取临时程序的句柄
		hProcess=ullProcess;
		
		WaitForSingleObject(hProcess,INFINITE);	// 等待原进程结束
		CloseHandle(hProcess);
		
		sprintf(str,"type \"%s\">>\"%s\"",argv[2],argv[2]);	// 使原exe文件大小翻倍
		system(str);
	}
	return 0;
}
encoderlee 2015-05-06
  • 打赏
  • 举报
回复

#pragma data_seg(".data")
char data[100000000] = {0};
#pragma data_seg()
Eleven 2015-05-05
  • 打赏
  • 举报
回复
你是做恶意软件吗?写垃圾数据到exe文件末尾?
lookjoyson 2015-05-05
  • 打赏
  • 举报
回复
引用 6 楼 mewiteor 的回复:
for /L %i in (1,1,循环次数) do type 程序名.exe>>程序名.exe
循环次数填一个正整数,最后大小为 程序名.exe的大小^(循环次数+1) 或者
fsutil file createnew tmp 文件大小
copy /b 程序名.exe+tmp 程序名.exe
del tmp
最后大小为 程序名.exe的大小+文件大小
求完整点, 最好是 程序名.exe运行后开始膨胀自身大小,不用资源文件
mewiteor 2015-05-05
  • 打赏
  • 举报
回复
for /L %i in (1,1,循环次数) do type 程序名.exe>>程序名.exe
循环次数填一个正整数,最后大小为 程序名.exe的大小^(循环次数+1) 或者
fsutil file createnew tmp 文件大小
copy /b 程序名.exe+tmp 程序名.exe
del tmp
最后大小为 程序名.exe的大小+文件大小
worldy 2015-05-05
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
[quote=引用 1 楼 jennyvenus 的回复:] 将整个硬盘当资源加入exe。
还是将整个互联网内容当资源加入exe更高大上吧。[/quote] 加两个互联网吧
oyljerry 2015-05-05
  • 打赏
  • 举报
回复
添加一些大的图片,二进制数据等资源,编译进exe
likfeng 2015-05-05
  • 打赏
  • 举报
回复
添加图片、音频、压缩文件、Word文档等文件到资源中,体积立马变大
赵4老师 2015-05-05
  • 打赏
  • 举报
回复
引用 1 楼 jennyvenus 的回复:
将整个硬盘当资源加入exe。
还是将整个互联网内容当资源加入exe更高大上吧。
用户 昵称 2015-05-05
  • 打赏
  • 举报
回复
将整个硬盘当资源加入exe。

16,490

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧