首页
社区
课程
招聘
[旧帖] 这段代码不理解,高手帮忙看看。 0.00雪花
发表于: 2007-3-1 15:15 3158

[旧帖] 这段代码不理解,高手帮忙看看。 0.00雪花

2007-3-1 15:15
3158
0041BC97  |. 6A 00          PUSH 0                                           ; /pOverlapped = NULL
0041BC99  |. 50             PUSH EAX                                         ; |pBytesRead
0041BC9A  |. 8B07           MOV EAX,DWORD PTR DS:[EDI]                       ; |
0041BC9C  |. FF75 10        PUSH DWORD PTR SS:[EBP+10]                       ; |BytesToRead
0041BC9F  |. 52             PUSH EDX                                         ; |Buffer  这里应该是存放返回字符串的地方
0041BCA0  |. FF3430         PUSH DWORD PTR DS:[EAX+ESI]                      ; |hFile
0041BCA3  |. FF15 B4F14300  CALL DWORD PTR DS:[<&KERNEL32.ReadFile>]         ; \ReadFile
0041BCA9  |. 85C0           TEST EAX,EAX
0041BCAB  |. 75 39          JNZ SHORT SSF_Tran.0041BCE6
0041BCAD  |. FF15 14F24300  CALL DWORD PTR DS:[<&KERNEL32.GetLastError>]     ; [GetLastError
0041BCB3  |. 6A 05          PUSH 5
0041BCB5  |. 5E             POP ESI
0041BCB6  |. 3BC6           CMP EAX,ESI
0041BCB8  |. 75 14          JNZ SHORT SSF_Tran.0041BCCE
0041BCBA  |. E8 76A5FFFF    CALL SSF_Tran.00416235
0041BCBF  |. C700 09000000  MOV DWORD PTR DS:[EAX],9
0041BCC5  |. E8 74A5FFFF    CALL SSF_Tran.0041623E
0041BCCA  |. 8930           MOV DWORD PTR DS:[EAX],ESI
0041BCCC  |. EB 10          JMP SHORT SSF_Tran.0041BCDE
0041BCCE  |> 83F8 6D        CMP EAX,6D
0041BCD1  |. 0F84 24010000  JE SSF_Tran.0041BDFB
0041BCD7  |. 50             PUSH EAX
0041BCD8  |. E8 E5A4FFFF    CALL SSF_Tran.004161C2
0041BCDD  |. 59             POP ECX
0041BCDE  |> 83C8 FF        OR EAX,FFFFFFFF
0041BCE1  |. E9 17010000    JMP SSF_Tran.0041BDFD
0041BCE6  |> 8B07           MOV EAX,DWORD PTR DS:[EDI]                       ;  fie load without error
0041BCE8  |. 8B55 F4        MOV EDX,DWORD PTR SS:[EBP-C]
;跳到这里,还没有使用返回的字符串,就被覆盖掉了,为什么?
0041BCEB  |. 0155 F8        ADD DWORD PTR SS:[EBP-8],EDX
0041BCEE  |. 8D4C30 04      LEA ECX,DWORD PTR DS:[EAX+ESI+4]
0041BCF2  |. 8A4430 04      MOV AL,BYTE PTR DS:[EAX+ESI+4]
0041BCF6  |. A8 80          TEST AL,80
0041BCF8  |. 0F84 F8000000  JE SSF_Tran.0041BDF6
0041BCFE  |. 85D2           TEST EDX,EDX

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
高手帮忙看看吧~~~
还有这个edx里面存储的地址在堆栈窗口找不到,地址超出堆栈段显示的地址范围了。
那我怎么才能跟踪这个字符串啊?
2007-3-2 09:22
0
雪    币: 721
活跃值: (350)
能力值: ( LV9,RANK:1250 )
在线值:
发帖
回帖
粉丝
3
假如edx的值为00D86532,那么在OD的命令行插件里输入 d 0D86632即可。
注意,当地址值最前面的非0值(如上为 D),需在在前面加上0;若为00986532,则直接d 986532即可。

不知道你要问的是不是这个方面的问题,只能猜测了。
2007-3-2 10:50
0
游客
登录 | 注册 方可回帖
返回
//