能力值:
( LV3,RANK:20 )
|
-
-
2 楼
各位大神啊 ,回个信啊……
|
能力值:
(RANK:1060 )
|
-
-
3 楼
dd fs:[18h]
7FFDF000 0012FFE0 (Pointer to SEH chain)
7FFDF004 00130000 (Top of thread's stack)
7FFDF008 0012D000 (Bottom of thread's stack)
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
[QUOTE=forgot;858888]dd fs:[18h]
7FFDF000 0012FFE0 (Pointer to SEH chain)
7FFDF004 00130000 (Top of thread's stack)
7FFDF008 0012D000 (Bottom of thread's stack)...[/QUOTE]
谢谢大牛指点
再次请教下,在缓冲区溢出检测中,需要对函数的返回地址进行判断(别人blog上写的),看其是在栈地址空间还是堆地址空间……
进程的堆有好几种,请问下一个地址是不是在进程的堆里,该怎么判断啊?
|
能力值:
( LV4,RANK:50 )
|
-
-
5 楼
你CALL进去的时候 记录返回值不就完了
|
能力值:
( LV3,RANK:20 )
|
-
-
6 楼
call进去的时候记录的返回值并不代表函数执行完之后就返回该位置啊,如果溢出了呢……
|
能力值:
( LV3,RANK:20 )
|
-
-
7 楼
[QUOTE=forgot;858888]dd fs:[18h]
7FFDF000 0012FFE0 (Pointer to SEH chain)
7FFDF004 00130000 (Top of thread's stack)
7FFDF008 0012D000 (Bottom of thread's stack)...[/QUOTE]
测试了下,发现 :
fs:[4] - fs:[8] = windows给当前线程初始化的时候给栈空间分配的物理页面的大小
在线程中,栈的物理页面的大小是可以动态增长的,但是fs:[8]的值是固定的,所以是不是说
地址从fs :[8] 到 fs:[4] 一定属于线程的栈地址空间,但可能不是线程的栈地址空间的全部?
|
|
|