首页
社区
课程
招聘
[求助]关于 13.2.1动态调试 的溢出问题
发表于: 2010-9-8 14:27 4053

[求助]关于 13.2.1动态调试 的溢出问题

2010-9-8 14:27
4053
小弟最近在看0day,但是"13.2.1 动态调试"(Page284) 这一小节中有一处不明白,就是在触发NetpwPathCanonicalize()函数漏洞的POC代码中,arg_1[0x320]和arg_4[0x100]这2个参数所占的栈空间总共也就0x420,比参数arg_2[0x440]的空间小,在经过
memset(arg_1, 0, sizeof(arg_1));
memset(arg_1, 'a', sizeof(arg_1) - 2);  //这里的字符应该没有越界吧
memset(arg_4, 0, sizeof(arg_4));
memset(arg_4, 'b', sizeof(arg_4) - 2);        //这里的字符应该没有越界吧
之后,直接调用(Trigger)(arg_1, arg_2, arg_3, arg_4, arg_5, 0);
为什么会溢出呢。

书上原话:"这段代码做的仅仅是转载存在漏洞的netapi32.dll,并调用其导出函数NetpwPathCanonicalize。在函数调用时,我们将arg_1和arg_4设置成很长的字符串,用以触发栈溢出。注意这个字符串以两个字节的NULL结束,这是因为NetpwPathCanonicalize将按照unicode来处理字节串"。
书上说把 arg_1和arg_4设置成很长的字符串 ,但是字符串也没越界啊

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 180
活跃值: (26)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
是我搞错了。。溢出不是产生在接收缓冲(arg_2),原来是暂存的0x414个字节。
2010-9-9 11:04
0
游客
登录 | 注册 方可回帖
返回
//