|
|
1
3
Alignment requirements
对于您的体系结构,我假设是x86和
可能的 Yeah, sure 。你就去做吧。 这是个好主意吗?不,绝对不是。原因见下文。
我假设你所说的“正确”是指一个好的熵源,而答案是否定的。 有一定程度的 address space layout randomization 在现代操作系统中,它并不是一个好的熵源。这只是为了让某人更难将程序中的漏洞用作安全漏洞。而且ASLR确实没有任何保证(如果你真的想,可以在某些操作系统中关闭它)。 简言之,您不应该使用变量的地址作为熵的来源。这不是随机性的好来源。 |
|
|
2
1
如果你真的需要随机性,你应该使用以下方法之一:
|
|
|
3
0
它是4的倍数,因为函数地址将在我所知道的每个平台上进行字对齐(我假设这是x86还是x86_64?) argc的地址在某种意义上可能是“随机的”,因为你可能不知道它是什么,所以如果你用它来为一个游戏或其他可能会起作用的游戏设定起始条件;如果您将其用于加密或其他用途,绝对不要依赖它——攻击者可能会影响argc的加载位置。 也就是说,您的C库附带了完全可行的rand()和srand()函数,作为奖励,您可以故意为其添加一个特定的值,这对调试非常有帮助;无论何时我需要随机数字,我都会坚持这一点。 |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |