能力值:
( LV3,RANK:30 )
|
-
-
3 楼
学习了 ,感谢分享。
|
能力值:
( LV12,RANK:280 )
|
-
-
4 楼
通过泄露虚表地址来计算mshtml.dll的基址。我想问下虚表的偏移是不是在编译时就已经固定了?对象是动态分配的也不会影响地址?
|
能力值:
( LV5,RANK:60 )
|
-
-
5 楼
虚表地址在.rdata,只要不重新编译代码,虚表地址的位置就不会发生变化(如果源代码没有修改,就算重新编译,一般也不会发生变化),对象是否是动态分配的跟虚表没有直接或间接的关系。
|
能力值:
( LV12,RANK:280 )
|
-
-
6 楼
[QUOTE=fneig;1440397]
虚表地址在.rdata,只要不重新编译代码,虚表地址的位置就不会发生变化(如果源代码没有修改,就算重新编译,一般也不会发生变化),对象是否是动态分配的跟虚表没有直接或间接的关系。[/QUOTE]
学习了,感谢
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
大家好,我有一个问题没有搞懂呀,能不能求解释一下:
evil_col.width = "1312272"; // 0x07D25E40
到最后call dword ptr [eax+8],此时eax = 0x07D25E40,应该是我们覆盖的heapspray的内容,然而此时这个堆空间是可执行的吗?如果不可执行,不是应该先call到另一个代码段地址才对吗?
(因为这里ROP中调用了VirtualProtect,说明堆空间是开启了DEP了。)
|
能力值:
( LV5,RANK:70 )
|
-
-
8 楼
[QUOTE=dwfault;1448268]大家好,我有一个问题没有搞懂呀,能不能求解释一下:
evil_col.width = "1312272"; // 0x07D25E40
到最后call dword ptr [eax+8],此时eax = 0x07D25E40,应该是我们覆盖的heapspray的内容,然而此时这个堆空间是可执行的...[/QUOTE]
绕过DEP的手段包括堆喷。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
但是这个堆喷后的内存区块本身难道不是不可执行的么?
|
能力值:
( LV12,RANK:280 )
|
-
-
10 楼
这届pwn2own上作者是通过在堆喷内存上构造jmp链实现的利用,我恰好翻译过作者写的自述。
通常用的堆栈翻转也可以实现利用,堆当然是不可以执行的了
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
啊我明白了!非常感谢!
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
楼主您好,感谢分享~~ 在实践的过程中遇到了问题,还想向您请教一下。 我遇到的问题出现在布局堆的阶段。在执行以下代码之后, fr[i] = free.substring(0, (0x100-6)/2); al[i] = string1.substring(0, (0x100-6)/2); bl[i] = string2.substring(0, (0x100-6)/2); 通过 s 命令在内存中寻找存在 E.E.E.E ... 和 A.A.A.A... 和 B.B.B.B... 这样字符串的位置。 但是从查找到的地址来看,并没有出现它们相连在一起的情况。不知道我布局不成功是什么原因造成的,还请指教~~ 环境: win7 32 位虚拟机 ie 8.0.7600.16385
|
能力值:
( LV9,RANK:240 )
|
-
-
13 楼
想问一下,这个虚表指针与mshtml基址的偏移能够怎么得到,为什么知道它就是这个数?
|
能力值:
( LV17,RANK:1185 )
|
-
-
14 楼
sakura零
想问一下,这个虚表指针与mshtml基址的偏移能够怎么得到,为什么知道它就是这个数?
楼主说了呀,因为虚表不是动态分配的而是在.rdata里面的,所以他相对模块基址的偏移是一定的。至于怎么得到,可以把mshtml拖进IDA,看一下模块的基址(最前面有),再看一下虚表的地址,两个减一下,就是偏移了
|
能力值:
( LV9,RANK:240 )
|
-
-
15 楼
holing
楼主说了呀,因为虚表不是动态分配的而是在.rdata里面的,所以他相对模块基址的偏移是一定的。至于怎么得到,可以把mshtml拖进IDA,看一下模块的基址(最前面有),再看一下虚表的地址,两个减一下, ...
谢谢师傅,不过我符号文件好像有问题,找不到那个虚表很难受
|
能力值:
( LV9,RANK:240 )
|
-
-
16 楼
holing
楼主说了呀,因为虚表不是动态分配的而是在.rdata里面的,所以他相对模块基址的偏移是一定的。至于怎么得到,可以把mshtml拖进IDA,看一下模块的基址(最前面有),再看一下虚表的地址,两个减一下, ...
在左边函数搜索CButtonLayout,搜不到构造函数,不知道怎么找到虚表,不知道是不是我符号文件的问题。。 其实我都没搜到.rdata。。我再找找原因
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
我想知道那个VirtualProtect()函数是怎么实现调用的?“shellcode+= unescape("%u"+vp1+"%u"+vp2); // VirtualProtect()”和“var rop = cbuttonlayout + 4936; // VirtualProtect()”,这个是怎么调的?参数是怎么输进去的?
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
我看了很多个分析这个漏洞的,但是都是最后一步这里没了。所以一直不明白为什么把VirtualProtect函数这样安排在这个位置?
|
|
|