问题标签 [aslr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 是否可以确定指令的时间跨度?
我有一个问题,我无法谷歌,因为我真的不知道它的正确术语,如果存在概念的话。我的问题是这个;
想象一下在 C 中有一个 while 循环,它执行 1 条内联汇编指令
然后我们将分别用 printf 打印它的输出。但是是否有可能确定“时间”何时恰好达到 1 秒?
我正在对 ASLR 进行一些研究,我想通过查看随机化是否恰好相隔 X 秒来查看每次随机化之间是否存在固定的时间跨度。
希望您能理解,并感谢您的阅读/帮助。
linux - ASLR implementation
I just read about how ASLR helps in preventing buffer overflow attacks and would like to have a look at its implementation.
Could someone offer a few pointers on where I could start looking? I would also love it if you could point me towards more reading material related to the same.
c++ - 预编译头文件和 ASLR 有什么问题?
我在几个预编译标头和地址空间布局随机化不兼容的站点上阅读它。是什么让它们不兼容?修复它需要什么?
我的问题与操作系统无关我听说这是带有 grsecurity 的 linux 和较新的 Windows 版本上的问题。(而且我不知道还有什么还有 ASLR。)
linux - 禁用内存地址的随机化
我正在尝试调试使用大量指针的二进制文件。有时为了快速查看输出以找出错误,我会打印出对象的地址及其对应的值,但是,对象地址是随机的,这违背了快速检查的目的。有没有办法暂时/永久禁用它,以便每次运行程序时都能获得相同的值。
哎呀。操作系统是Linux fsttcs1 2.6.32-28-generic #55-Ubuntu SMP Mon Jan 10 23:42:43 UTC 2011 x86_64 GNU/Linux
aslr - 我们如何比较不同操作系统的 ASLR?
地址空间布局随机化 (ASLR) 是一种计算机安全技术,它涉及在进程的地址空间中随机排列关键数据区域的位置,通常包括可执行文件的基址以及库、堆和堆栈的位置。
这是来自维基百科的描述。
通过估计关键数据区域位置的“随机性”来估计两个不同操作系统中 ASLR 的有效性是否公平?
是否有任何其他可衡量的因素可以用来比较 ASLR 的有效性?关于如何进行的任何提示?
delphi - Delphi中的ASLR和DEP,如何分辨?
来自http://blogs.msdn.com/b/michael_howard/archive/2007/04/04/codegear-s-new-delphi-2007-supports-aslr-and-nx.aspx,我使用的是 {$SETPEOPTFLAGS $140 } 在我的项目文件中的程序名称下获取地址空间布局随机化 (ASLR) 和 DEP。
如何判断标志是否在 PE 中设置?PeStudio 似乎有信息,但似乎不起作用。
谢谢。
android - Android上有某种ASLR保护吗?
我想知道是否有人可以访问具有从程序的一个实例到另一个实例相同的函数地址的库?
c - ASLR 暴力破解
为了练习,我一直在尝试在我的机器上强制执行 ASLR 实现。首先,我确保 ASLR 已打开。
我使用的机器是:-
我的程序很简单,如下。
为了利用这一点,我创建了一个环境变量,如下所示。正如你所看到的,它有一个非常大的 nop 雪橇,带有用于反向 shell 的漏洞利用代码。
我使用以下 C 程序找出环境变量的地址:
我得到的地址为0xbfefadfd
。
我发现溢出返回地址需要76 bytes of something
+ 4 bytes of the return address
。所以,为了蛮力我这样做: -
正如预期的那样,我得到了分段错误的日志,但是,即使在运行程序大约 30 分钟后,我也没有得到反向 shell。我在这里做错了什么?
c - 在 Mac OS X Snow Leopard 中禁用 ASLR
本质上我想在 Mac OS X Snow Leopard 中禁用 ASLR 并使用 gcc 来做一些缓冲区溢出和堆栈溢出。有人知道如何禁用 ASLR 吗?
windows - 用于非感知可执行文件的 ASLR 和 Windows 系统 DLL?
来自微软文章:
地址空间布局随机化 (ASLR)
当系统启动时,ASLR 将可执行映像移动到随机位置,从而使漏洞利用代码更难以可预测的方式运行。对于支持 ASLR 的组件,它加载的所有组件也必须支持 ASLR。例如,如果 A.exe 使用 B.dll 和 C.dll,则这三个都必须支持 ASLR。默认情况下,Windows Vista 及更高版本将随机化系统 DLL 和 EXE,但 ISV 创建的 DLL 和 EXE 必须使用 /DYNAMICBASE 链接器选项选择支持 ASLR。
我不太明白。获取 Windows 上每个进程加载的基本系统 DLL:NtDll.dll
和kernel32.dll
.
如果有一个不知道的可执行文件,这些系统 DLL 会使用 ASLR 吗?也就是说,在 Win 7 上每次系统重新启动后,它们会在不同的基地址加载此可执行文件,还是在系统重新启动后总是在相同的基地址加载,就像在 Win XP 上一样?
为了更清楚我的意思:我的典型虚拟程序的启动堆栈将如下所示:
查看 asm BaseProcessStart
,我在我的 XP 框中看到:
现在我感兴趣的是以下内容:
在 Windows XP 上,无论我重新启动这台机器多少次,地址都将始终为 0x7C817054。如果我在带有 ASLR 的 Win7 上,如果加载 kernel32.dll 的可执行文件没有为 ASLR 启用,这个地址会在重新启动之间改变吗?
(注意:对我来说,atm.,这个地址只有一个小用例有用:在 Visual Studio 中,我只能为程序集级函数设置一个“数据断点”,即断点@0x7.. . - 如果我想中断特定的 ntdll.dll 或 kernel32.dll 函数,在 Windows XP 中我不必在重新启动之间调整断点。随着 ASLR 的启动(这个问题的范围),我将不得不改变重新启动之间的数据断点。)