首页
社区
课程
招聘
[原创]第三题
发表于: 2008-10-10 00:21 2778

[原创]第三题

2008-10-10 00:21
2778
OD加载 下断断到下面的位置

004027BF  /$  55            PUSH EBP
004027C0  |.  8BEC          MOV EBP,ESP
004027C2  |.  8B4D 08       MOV ECX,DWORD PTR SS:[EBP+8]
004027C5  |.  85C9          TEST ECX,ECX
004027C7  |.  75 05         JNZ SHORT TestFloa.004027CE
004027C9  |>  E8 C3850000   CALL TestFloa.0040AD91
004027CE  |>  8B45 20       MOV EAX,DWORD PTR SS:[EBP+20]
004027D1  |.  53            PUSH EBX
004027D2  |.  33DB          XOR EBX,EBX
004027D4  |.  43            INC EBX
004027D5  |.  85C0          TEST EAX,EAX
004027D7  |.  74 0F         JE SHORT TestFloa.004027E8
004027D9  |.  8908          MOV DWORD PTR DS:[EAX],ECX
004027DB  |.  8B4D 14       MOV ECX,DWORD PTR SS:[EBP+14]
004027DE  |.  8948 04       MOV DWORD PTR DS:[EAX+4],ECX
004027E1  |.  8BC3          MOV EAX,EBX
004027E3  |.  E9 D7000000   JMP TestFloa.004028BF
004027E8  |>  8B45 1C       MOV EAX,DWORD PTR SS:[EBP+1C]
004027EB  |.  83C0 C8       ADD EAX,-38                              ;  Switch (cases 38..43)
004027EE  |.  83F8 0B       CMP EAX,0B
004027F1  |.  56            PUSH ESI
004027F2  |.  0F87 C4000000 JA TestFloa.004028BC
004027F8  |.  FF2485 C72840>JMP DWORD PTR DS:[EAX*4+4028C7]
004027FF  |>  FF55 14       CALL DWORD PTR SS:[EBP+14]               ;  TestFloa.00420D20; Case 38 ('8') of switch 004027EB
00402802  |.  E9 B1000000   JMP TestFloa.004028B8
00402807  |>  FF55 14       CALL DWORD PTR SS:[EBP+14]               ;  Case 39 ('9') of switch 004027EB
0040280A  |.  E9 A7000000   JMP TestFloa.004028B6

然后F8慢慢走  发现只要过了004027FF CALL DWORD PTR SS:[EBP+14]就出错

然后F7进去再慢慢 跟

到了这里

00420D65  |.  DCC0          FADD ST,ST
00420D67  |.  DD5D F8       FSTP QWORD PTR SS:[EBP-8]
00420D6A  |.  83EC 08       SUB ESP,8
00420D6D  |.  DD45 F8       FLD QWORD PTR SS:[EBP-8]
00420D70  |.  DD1C24        FSTP QWORD PTR SS:[ESP]
00420D73  |.  68 345A4200   PUSH TestFloa.00425A34                   ;  UNICODE "PI * 2 = %f"
00420D78  |.  6A 40         PUSH 40
00420D7A  |.  8D95 70FFFFFF LEA EDX,DWORD PTR SS:[EBP-90]
00420D80  |.  52            PUSH EDX
00420D81      E8 7CE0FEFF   CALL <TestFloa.__snwprintf              >

这次找到了函数出错的最终位置
就是  
00420D81  CALL <TestFloa.__snwprintf>

看来根本原因就是__snwprintf出的问题

所以把这个函数 重新加到输入表里

在输入表添加个_snwprintf(msvcrt.dll中)
修改call_snwprintf  为call "输入表中的_snwprintf"

这个直接用loadpe加就行了。

然后就OK了!

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 264
活跃值: (30)
能力值: ( LV12,RANK:250 )
在线值:
发帖
回帖
粉丝
2
请再仔细考虑
2008-10-14 14:48
0
雪    币: 295
活跃值: (11)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
不评分啊 ?难道是0分?
2008-10-14 15:33
0
雪    币: 295
活跃值: (11)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
4
不评分啊 ?难道是0分?
我这个虽然没跟到 错误的根本原因  但是  修复了错误  正确弹出了对话框  K值就是取0.3也不至于分数是0吧.
2008-10-14 21:00
0
游客
登录 | 注册 方可回帖
返回
//