首页
论坛
课程
招聘
[注意]报告一处错误,第15页
2011-10-30 18:31 4157

[注意]报告一处错误,第15页

2011-10-30 18:31
4157
//检查是否超出分析范围
if(nLen<Index)
应该改为
if(nLen <= pCode + nIndex - szAsmData)

如果有不同意见请联系我。

[注意] 欢迎加入看雪团队!base上海,招聘CTF安全工程师,将兴趣和工作融合在一起!看雪20年安全圈的口碑,助你快速成长!

收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 19
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
桂花树下 活跃值 2011-11-17 08:07
2
0
Decode2Asm 中 nIndex返回的是机器码指令的大小, nLen 获取是机器码的总长度也就是Decode结构体的大小, 如果获取到的nIndex的长度大于结构体大小,那么解析就会出现问题。
pCode + nIndex - szAsmData  ;pCode  = pCode + nIndex 循环中  而szAsmData 值没变等于 这样 pCode + nIndex - szAsmData 在下次的时候就等于 pCode + nIndex + nIndex - szAsmData ,因为pCode 大于szAsmData 所以 这个结果肯定是大于2*nIndex的。你再拿这个值去判断的话 就大于了结构体的大小,Decode2Asm就无法解析了 不知道我分析的对不对 ,你可以测试下!这些代码是公开的源代码,应该是借鉴的,并不是作者写的!
雪    币: 35
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
hexiaomin 活跃值 2011-11-19 12:26
3
0
这个我试过,原来的代码确实无法正确执行,会无限执行下去,程序我运行过,你试一下吧。
雪    币: 278
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yuweiping 活跃值 2012-1-10 13:07
4
0
原来的代码确实无法正确执行,会无限执行下去,程序我也运行过了。。
游客
登录 | 注册 方可回帖
返回