首页
社区
课程
招聘
[求助]readfile 的一个奇怪问题,请高手指点!
发表于: 2005-8-18 15:57 3783

[求助]readfile 的一个奇怪问题,请高手指点!

2005-8-18 15:57
3783
程序中调用这段代码来按字节读取文件
0040417C      55                                   push ebp
0040417D      6A 00                                push 0
0040417F      89E5                                 mov ebp,esp
00404181      6A 00                                push 0
00404183      55                                   push ebp
00404184      51                                   push ecx
00404185      52                                   push edx
00404186      50                                   push eax
00404187      E8 34F9FFFF                          call <jmp.&KERNEL32.ReadFile>
0040418C      85C0                                 test eax,eax
0040418E      58                                   pop eax
0040418F      75 02                                jnz short rolf12.00404193
00404191      31C0                                 xor eax,eax
00404193      5D                                   pop ebp
00404194      C3                                   retn

当ecx不大于800(2048)时,一切正常,否则之后某处程序会出错。
这个时程序里另外一处代码
004059EE      BB A47E4000          mov ebx,rolf12.00407EA4
前面ecx不大于800时此处正常,否则 当运行过
00404187      E8 34F9FFFF                          call <jmp.&KERNEL32.ReadFile>

上处变成

004059EE      BB A47E4000          mov ebx,rolf12.00407EA4                   ; ASCII "11"
这是怎么回事啊!

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 413
活跃值: (637)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
文件的缓冲区的大小不够,越界 造成的。
2005-8-18 18:51
0
雪    币: 206
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那请问这个问题如何解决呢,可否把缓冲区改大些。一般是在哪里初始化这个大小呢?
2005-8-19 09:55
0
游客
登录 | 注册 方可回帖
返回
//