首页
社区
课程
招聘
[求助]writefile写出来的内容货不对版,怎么办?
发表于: 2008-8-30 17:35 4050

[求助]writefile写出来的内容货不对版,怎么办?

2008-8-30 17:35
4050
.data?
  hfile  dd ?
  _hfile dd ?
  fsize  dd ?
.code
start:
local _buffer:byte  ;;缓冲区
  invoke CreateFile,ctxt("c:\1.exe"),GENERIC_WRITE,FILE_SHARE_READ or FILE_SHARE_READ,NULL,OPEN_EXISTING,0,0
  mov hfile,eax   ;;被读入的文件

  invoke CreateFile,ctxt("c:\2.exe"),GENERIC_WRITE,FILE_SHARE_READ or FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,0,0
  mov _hfile,eax  ;;写出的文件

  invoke GetFileSize,hfile,NULL
  mov fsize,eax

  invoke ReadFile,hfile,addr _buffer,fsize,ebx,NULL
  invoke WriteFile,_hfile,addr _buffer,fsize,ebx,NULL

  invoke CloseHandle, hfile
  invoke CloseHandle, _hfile
end start
写入出来的文件与原文件内容不一样,,请问哪里出问题了?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 364
活跃值: (152)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
2
[QUOTE=;]...[/QUOTE]
这个问题我前几天也遇到过,最后发现是因为调用ReadFile后文件指针会发生移动。
2008-8-30 17:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
你设置的局部变量作为读写的缓冲也太小了吧...
好歹也要几百字节,你才用了一个字节,而且总得分次读写,测试返回值,你这样会破坏堆栈的...
汗```
2008-8-30 18:36
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
搞定了,谢谢
2008-8-30 21:29
0
游客
登录 | 注册 方可回帖
返回
//