微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

RWX内存页面的风险

得到负面评论这个答案后 – 我可以实现计数器在.text区域,而不使用寄存器? ,我进行了一些调查,试图了解RWX内存页面是否真的非常用和稀有的事情,或者每个stream行的程序都有一些。 ( 科学! )

我通过WinDBG连接到MSVS,执行!address /f:Image,PAGE_EXECUTE_READWRITE ,

我看到很多这样的线条:

7a534000 7a537000 3000 MEM_IMAGE MEM_COMMIT PAGE_EXECUTE_READWRITE Image "C:WINDOWSassemblyNativeImages_v2.0.50727_32System6836a951700c2eb01a933212425cda4eSystem.ni.dll"

我检查了它的部分,并且有“Execute Read Write”标志的.xdata部分。

这是否意味着每个加载了.NET库的应用程序都有RWX内存页面

例如你的浏览器(如果你运行Windows)。 (幸运的是,既不是FF8,也不是IE8不使用.NET)

AppDomain无法在x64平台目标中卸载

Windows任务计划程序安装程序

我如何枚举所有可用的无线networking并将其显示在列表框中?

Windows 10虚拟机上的Visual Studio性能较差

我可以从JavaScript(JScript)或VBScript使用.NET Framework吗?

那么,为什么我们打扰RWX记忆?

技术防止多个login到同一台计算机

测量下载速度

Windows进程和它连接到的IP地址

禁用“应用程序已停止工作”窗口

使用远程桌面的远程计算机的MachineName

我的直觉是这可能不是问题。 这可能是运行时环境支持动态行为所必需的。

内存区域有可写和可执行的安全问题。 这允许攻击者用shellcode填充缓冲区,然后执行这个代码。 用shellcode填充缓冲区并不是什么大事,它只是数据。 当攻击者能够控制指令指针(EIP)时,通常通过使用基于堆栈的缓冲区溢出来破坏函数的堆栈帧,然后通过将该指针指派给shellcode的地址来改变执行流程在nop雪橇的某个地方将会碰到shellcode)。

如果你想更好地理解这个安全措施,那么看看在NX位出现之前,哪些缓冲区溢出会被利用。 你应该阅读经典文章, 粉碎堆栈的乐趣和利润 。 请记住,由于NX位,ASLR和金丝雀,这些攻击都不再有效。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐