攻击者如何泄漏内存,以及他如何使用它有效绕过ASLR? />
#1 楼
这就是BSTR在内存中的表示方式:一个BSTR,可能是:堆溢出。
释放后使用会崩溃,该指令在可以修改受控内存地址(例如AND 0xFFFFFFFF,edi)的指令上崩溃edi由攻击者控制,并指向BSTR长度字段
等。
,那么BSTR的长度将是如此之大,以至于您可以读取一大块内存,其中仅指向DLLS的指针,从中您将获得这些DLLS的基地址,然后弹出!绕过ASLR!
#2 楼
使用GetModuleHandle()
获取模块的基址和偏移量。偏移量仅为
current address - base address
。评论
但是,为了调用GetModuleHandle(),我们需要首先绕过DEP。要绕过DEP,我们需要首先绕过ASLR。让我知道GetModuleHandle()在哪种情况下有效?
–john4tech
2014年5月28日下午6:32
评论
太棒了谢谢。您能举一个使用这种技术的例子吗?如果可能的话,请提供给我一个伪代码,可以使用这种技术在Windows上演示ASLR绕过吗?非常感谢你。
–john4tech
2014年5月26日14:30