百度空间 | 百度首页 
 
查看文章
 
MPEG-2 0day续:一个&引发的漏洞
2009-07-07 00:09

http://bbs.pediy.com/showthread.php?t=92912帖子发出后,得到了MJ0011和云砉生等人的指正,特别是最后弄清楚了这个漏洞产生的原因:代码编写者犯了一个程序员经常犯的错误(感谢云砉生指出这一点),即将保存缓冲区指针的堆栈地址当成缓冲区指针本身传入(将传入参数buff误写为&buff),从而导致了溢出。

弄清楚了原因,漏洞补丁就很简单了,正如pshpan的blog中提到的方法:

.text:59F0D748                  lea      ecx, [ebp+8]

改为

.text:59F0D748                  mov      ecx, [ebp+8]

即可修复该漏洞。

微软的程序员也会出这样的错误,从这里也可以看出在编程序的过程中细心是多么的重要。


类别:默认分类 | 添加到搜藏 | 浏览() | 评论 (6)
 
最近读者:
 
网友评论:
1
2009-07-07 07:59 | 回复
http://hi.baidu.com/aegisys/modify/blog/5d91bf8f812748f3503d9203


写了些感想。
 
2
2009-07-07 17:42 | 回复
address and content 的区别,这么微妙都被你发现了。厉害~
 
3
2009-07-07 20:41 | 回复
 
4
2009-07-07 22:53 | 回复
lea-->mov修复SEH覆盖漏洞后,winxp + ie6测试PoC网页仍会运行起shellcode。原因是MPEG2TuneRequest释放时,会把一个SAFEARRAY *成员当作接口,试图调用Release方法释放该成员。这样做恰好会跳到spray heap中。
 
5
2009-07-12 00:44 | 回复
回复daishuo:
请参考
知道创宇DIRECTSHOW ODAY补丁:
http://hi.baidu.com/fs_fx/blog/item/56986f832cf40199f703a6f4.html
及补丁说明:
http://hi.baidu.com/fs_fx/blog/item/e1636f12df082ed9f7039eae.html
 
6
2009-08-29 22:21 | 回复
很同意文章最后一句话
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu