首页
社区
课程
招聘
[旧帖] [求助]请教一个关于jmp_buf的问题 0.00雪花
发表于: 2010-11-30 14:36 1205

[旧帖] [求助]请教一个关于jmp_buf的问题 0.00雪花

2010-11-30 14:36
1205
最近在学习heap-overflow,在看w00w00(http://www.w00w00.org/files/articles/heaptut.txt)的paper时,最后有一个通过setjmp和longjmp利用堆溢出的程序,该程序中有一个代码片段:
printf("bx = 0x%lx, si = 0x%lx, di = 0x%lx\n",
             jmpbuf->__bx, jmpbuf->__si, jmpbuf->__di);

printf("bp = %p, sp = %p, pc = %p\n\n",
             jmpbuf->__bp, jmpbuf->__sp, jmpbuf->__pc);
编译的时候失败,说是结构中没有__bx __di等数据成员,我也查可了下setjmp.h和bits/setjmp.h头文件,确实没有发现有这些数据成员的定义。

想问下,大家以前在学习这个文章的时候有没有遇到过这个问题。

我看bits/setjmp.h头文件中定义了一个含6个元素的数组,猜测是用来保存上面这6个寄存器值的。

是否是头文件的定义发生了变化?

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 2109
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
是。

这是标准的 glibc 写法:

jmp_buf jmpbuf;
jmpbuf->__jmpbuf[JB_BX];

http://blog.sina.com.cn/s/blog_49fea3960100bgbs.html
2010-11-30 15:00
0
雪    币: 43
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
[QUOTE=enthos;896866]是。

这是标准的 glibc 写法:

jmp_buf jmpbuf;
jmpbuf->__jmpbuf[JB_BX];

http://blog.sina.com.cn/s/blog_49fea3960100bgbs.html[/QUOTE]

呵呵 明白了。谢了!
2010-11-30 15:20
0
游客
登录 | 注册 方可回帖
返回
//