首页
社区
课程
招聘
[旧帖] 求助Win32汇编的问题:请帮我看看为什么ReadFile无效呢? 0.00雪花
发表于: 2008-1-24 16:15 3769

[旧帖] 求助Win32汇编的问题:请帮我看看为什么ReadFile无效呢? 0.00雪花

2008-1-24 16:15
3769
源代码:
  .386
  .model flat,stdcall
  option casemap:none

include  d:\masm32\include\windows.inc
include  d:\masm32\include\gdi32.inc
includelib d:\masm32\lib\gdi32.lib
include  d:\masm32\include\user32.inc
includelib d:\masm32\lib\user32.lib
include  d:\masm32\include\kernel32.inc
includelib d:\masm32\lib\kernel32.lib

  .data?
  .const
FileName db 'time.lc',0
szBuffer db 4096 dup (?)

  .code

LoadSysFile proc ;检查文件是否存在(不存在则建立),读入文件中的数据
  ;local FileNumber ;文件号
  local @FD:WIN32_FIND_DATA
  local @FHd,@BRead
  invoke FindFirstFile,addr FileName,addr @FD ;查找文件
  .if eax==INVALID_HANDLE_VALUE;如果文件不存在   
   ret ;退出
  .endif
  invoke FindClose,eax;退出查找文件
  invoke CreateFile,addr FileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,\
   FILE_ATTRIBUTE_NORMAL,0 ;根据文件名打开文件(只读)
  .if eax==INVALID_HANDLE_VALUE ;如果打开文件有错
   ret;退出
  .endif
  mov @FHd,eax
  xor eax,eax
  mov @BRead,eax
  .while TRUE
   mov esi,offset szBuffer
   invoke ReadFile,@FHd,addr szBuffer,sizeof szBuffer,addr @BRead,0;读入文件内容*****************就是这一句始终返回0值
   .break .if !@BRead
  .endw
  invoke CloseHandle,@FHd;关闭文件
  ret
LoadSysFile endp

_WinMain proc  
  local @Str
  call LoadSysFile ;检查文件是否存在(不存在则建立),读入文件中的数据
  ret

_WinMain endp

Start:
  call _WinMain
  invoke ExitProcess,NULL
end  Start

故障现象:
我用OD跟踪数据,ReadFile返回值为0,从文件中实际读入的字符数也为0。我已经搞了一天了,怎么也解决不了。高手帮帮忙啊

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
已经解决了,原来我把数据搞错了.把szBuffer db 4096 dup (?)放在了const里
2008-1-24 16:32
0
游客
登录 | 注册 方可回帖
返回
//