如何把文件放在数组中,然后生成文件

wangluochipan 2010-04-12 10:41:51
比如有一个1.EXE和2.EXE,我想把这个2.EXE在1.EXE文件中转化成用数组表示,然后运行1.exe自动生成2.EXE,不知道怎么做好,能做的哥们,贴代码吧
...全文
119 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangluochipan 2010-04-13
  • 打赏
  • 举报
回复
是啊,平时的做法都是放资源文件里,不过现在想弄个新办法啊!就是5楼说的,要二进制生成!回3楼,不是做病毒啊,怎么一想到就是病毒呢,是想简化安装包的数量,也显得安全,因为单独放一个文件,别人删除了,就不能使用了,如果能用生成的办法,没有文件了,还可以自动生成,呵呵!后面的哥们继续努力啊,这个应该很好实现,我现在也在测试
vincent_1011 2010-04-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dubiousway 的回复:]

这个程序是用来生成1.exe 的源码的。

编译这个程序后,运行的时候,记得要把2.exe 放在项目目录下(如果直接运行,就把2.exe放在debug/release目录下,和该程序的exe文件在一起)

运行后,生成1.cpp

1.cpp 就是1.exe的原码。编译它,得到1.exe。
运行1.exe,就生成2.exe


C/C++ code

#include <s……
[/Quote]
他是要二进制生成。最近我也打算这样做,为了实现一些防破解。呵呵。

dubiousway 2010-04-13
  • 打赏
  • 举报
回复
这个程序是用来生成1.exe 的源码的。

编译这个程序后,运行的时候,记得要把2.exe 放在项目目录下(如果直接运行,就把2.exe放在debug/release目录下,和该程序的exe文件在一起)

运行后,生成1.cpp

1.cpp 就是1.exe的原码。编译它,得到1.exe。
运行1.exe,就生成2.exe



#include <stdio.h>
#include <stdlib.h>

int main(){
FILE *fp, *fp2;
long fileLen;
char ch;
fp= fopen("1.cpp","w");
fp2= fopen("2.exe","rb");
fseek(fp2,0,SEEK_END);
fileLen= ftell(fp2);
rewind(fp2);

//start to make 1.cpp
fprintf(fp,"#include <stdio.h>\nchar buf[]={\n");
while(!feof(fp2) && fread(&ch,1,1,fp2) && fprintf(fp,"%d,",ch));
fseek(fp,-1,SEEK_CUR);
fprintf(fp,"};void main(){\nlong size=%ld;\nFILE* fp=fopen(\"2.exe\",\"wb\");\nfwrite(buf,1,size,fp);fclose(fp);}",fileLen);
fclose(fp);fclose(fp2);
return 0;
}


ms 无用处,,,也许理解错了。
wang7890 2010-04-13
  • 打赏
  • 举报
回复
那只有预先编译,生成2。exe
wangluochipan 2010-04-13
  • 打赏
  • 举报
回复
3楼的哥们,做的确实还不错的,辛苦了,如果没人继续做了,就选你最佳答案,虽然你这个方法,麻烦点,但自己修改下,基本还是可以使用的
wangluochipan 2010-04-13
  • 打赏
  • 举报
回复
没人接了吗?继续啊
dubiousway 2010-04-12
  • 打赏
  • 举报
回复
我tried 一下。。。

因为生成的1.cpp文件太长(因为要包括所有2.exe内容,又不能直接用字符串形式,所以写成数组),,
结果vc6自动换行(第一次知道vc6 ide的编辑环境,一行最多是2048个字符)

hehe。

结果还ok, 就是不知道lz 这么做有什么意思。用1.exe 生成 2.exe ,干什么用呢。病毒?哈哈。
-------------

cattycat 2010-04-12
  • 打赏
  • 举报
回复
直接写PE文件比较麻烦。
白云飘飘飘 2010-04-12
  • 打赏
  • 举报
回复
这样做比较痛苦,一般都是把文件放到资源里面。

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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