gpt4 book ai didi

macos - Mac OS X : Application with NX flag, Stack Cookies 和 ASLR 是否启用?

转载 作者:行者123 更新时间:2023-12-03 17:58:05 28 4
gpt4 key购买 nike

我想知道一个可执行文件是否支持常见的安全保护,例如 NX 标志、堆栈 cookie 或 ASLR。似乎 ASLR 是在操作系统级别设置的,但您怎么知道它已启用?在 Windows 上,某些可执行文件不支持 ASLR,所以我想知道如何在 Mac OS X 上确定这一点。

最佳答案

首先在 OSX 10.6 及更低版本中使用 ALSR did not randomize all regions of memory .据我所知,所有正在运行的可执行文件都启用了 ASLR。这是很容易要测试,只需启动调试器设置断点并记录堆栈上的任何内存地址。重新启动应用程序并查看相同的变量是否具有相同的内存地址。

我认为在 OSX 10.7 中,他们开始随机化动态链接器。 linux,bsd,甚至windows系统都做了多少年了。

对于 OSX,可以使用执行 export DYLD_PRINT_SEGMENTS=1 测试链接库 ASLR。然后运行一个命令。 TEXT 内存区域是库的基地址。对任何二进制文件运行此命令两次。如果两次执行之间的基地址不同,则应归咎于 ASLR 的肮脏工作。

Stack cookie 是一个完全不同的球赛。这是编译器级别的保护,会因应用程序而异。现代版本的 GCC 应该默认启用 stack carnies。同样,您应该咨询您的调试器以查看特定应用程序是否正在使用金丝雀。只需检查任何函数的堆栈帧,看看是否在本地声明的变量和返回地址之间插入了一个随机值。

就 NX 标志而言,您应该假设 1999 年之后制造的任何系统都使用这种微不足道的保护形式。但是,这是迄今为止最简单的绕过保护,只需 ret-to-libc 或使用 ROP 链(因为 aslr)。

关于macos - Mac OS X : Application with NX flag, Stack Cookies 和 ASLR 是否启用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8000282/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com