关于安装程序 文件的写入问题

qq_35578084 2016-08-31 09:46:12
最近鄙人手痒,想做一个安装程序。于是用了以下方法:
1:将要安装的文件以16进制打开。
2:将16进制数据复制到安装程序里。
3:安装程序将16进制数据写入文件中。
可是出现了点问题,而且十分诡异的是,只是在写入的一个DLL文件出现了问题,以此法写入的其他文件都没有问题。我对此表示非常的不解,望各路大神前来帮我解决此问题。
我先以图片展示我的方法
1:将要安装的文件以16进制打开。

2:将16进制数据复制到安装程序里。

3:安装程序将16进制数据写入文件中。

运行后结果如下:

我们可以看到:.h文件没有问题

而Lib文件也没有问题
但是DLL文件出现了问题。
调用该DLL出现的错误如下:

望各位大神抽出宝贵时间帮我解决。
...全文
285 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2016-08-31
  • 打赏
  • 举报
回复
从截图来看, 个人猜测 写入数据就是一段可执行代码, 此操作和病毒有类似之处。 杀毒软件,系统本身可能都会有些防护,
赵4老师 2016-08-31
  • 打赏
  • 举报
回复
不要把 fopen("...","...");fscanf,fprintf,fgets,fgetc,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待 和 fopen("...","...b");fseek,ftell,fread,fwrite,fgetc,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待 弄混了 《Windows PE权威指南》
sumos 2016-08-31
  • 打赏
  • 举报
回复
对比下dll的md5是否一样
赵4老师 2016-08-31
  • 打赏
  • 举报
回复
在64位Windows下: 64位exe和dll在目录c:\windows\system32目录下; 32位exe和dll在目录c:\windows\syswow64目录下; 所以要注意: 在win64位系统下注册32位ocx或dll需要将32位ocx或dll拷贝到c:\windows\syswow64\目录下。 且注册要用c:\windows\syswow64\regsvr32 xxxxxxx.ocx或dll
qq_35578084 2016-08-31
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
不要把 fopen("...","...");fscanf,fprintf,fgets,fgetc,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待 和 fopen("...","...b");fseek,ftell,fread,fwrite,fgetc,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待 弄混了 《Windows PE权威指南》
请赵中老师看一下我用的函数再作答。
三岁、就很帅 2016-08-31
  • 打赏
  • 举报
回复
你也是蛮厉害的 路过

2,586

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 资源
社区管理员
  • 资源
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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