我想制作一个虚拟的Win32 EXE文件,比它原本的大小要大得多。正常情况下,一个样板Win32 EXE文件大小为80KB。我想制作一个5MB大小的EXE文件来测试其他实用程序。
第一个想法是添加资源,但事实证明,嵌入式资源与内存分配时的5MB代码不一样。我在考虑是否可以引用一个大型库并最终获得一个巨大的EXE文件?如果不行,也许可以编写几千个类似的方法,如AddNum1、AddNum2,等等。
任何简单的想法都非常欢迎。
我想制作一个虚拟的Win32 EXE文件,比它原本的大小要大得多。正常情况下,一个样板Win32 EXE文件大小为80KB。我想制作一个5MB大小的EXE文件来测试其他实用程序。
第一个想法是添加资源,但事实证明,嵌入式资源与内存分配时的5MB代码不一样。我在考虑是否可以引用一个大型库并最终获得一个巨大的EXE文件?如果不行,也许可以编写几千个类似的方法,如AddNum1、AddNum2,等等。
任何简单的想法都非常欢迎。
printf("000000000");
printf("000000001");
// ...
printf("010000000");
如果所有其他方法都失败了,您仍然可以创建一个汇编语言源文件,在其中有适当数量的db
语句将字节发射到代码段,并将生成的代码对象链接到程序作为extern "C"{...}
。
您可能需要调整编译器/链接器以防止链接器优化掉该虚拟的“代码”对象。
我承认,我是个Linux/UNIX人。在Windows中是否可能静态链接可执行文件?这样,您就可以引用一些庞大的库并增加代码大小,而无需自己编写太多代码。
另一个想法是,在阅读您对我的第一个答案的评论时,我考虑将零附加到您的文件中。如上所述,我不是Windows专家,因此这可能行不通。
添加一张5MB(bmp)的图片。
在执行此处列出的所有方法后,使用调试标志和最高优化标志(gcc -g -O3
)进行编译。
REM generate gibberish of the desired size
dd if=/dev/random of=entropy count=5000k bs=1
REM copy the entropy to the end of the file
copy /b someapp.exe + entropy somefatapp.exe
将wxWidgets静态链接到您的应用程序中。 它会立即变成5 MB大小。