-
-
[原创][第一阶段◇第三题]看雪论坛.腾讯公司2008软件安全技术竞赛
-
发表于:
2008-10-8 17:26
2758
-
[原创][第一阶段◇第三题]看雪论坛.腾讯公司2008软件安全技术竞赛
1.出错函数
出错的函数是:_snwprintf
出错地址:00420D81 |. E8 7CE0FEFF call <__snwprintf 0040ee02 f libcmt:snwprint.ob>
用OD载入后,导入map文件。
找到button点击函数地址:00420D20 TestFloa.?OnBnClickedBtnCrash@CTestFloatDlg@@QAEXXZ 00420d20 f TestFloatDlg.obj
然后点击button,单步跟踪。定位到出错函数地址。
2.出错原因
程序采用静态库方式进行编译,编译好后加过壳,然后在脱掉的。
由于在脱壳时,破坏了库函数代码,造成出错。
3.修复办法
给exe文件加入一个输入表
msvcrt.dll 的 _snwprintf 函数
然后在代码空白处加上
00420DC1 > \FF15 18B04300 call dword ptr [<&msvcrt._snwprintf>] ; \_snwprintf
00420DC7 .^ EB BD jmp short 00420D86
修改 00420D81 的代码为
00420D81 . /EB 3E jmp short 00420DC1
然后保存即可。
上传已经修复的文件,见附件。
科锐学子:沙金
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!