小编use*_*352的帖子

ASLR 在 linux 中随机化哪些地址?

据我了解:

  • CPU 上有一个内存管理单元,用于控制对实际内存的访问。任何内存调用都流经这个单元,它将虚拟地址转换为实际内存地址。这允许计算机在 64 位机器上拥有 2^64 字节的虚拟内存空间。当没有足够的 RAM 时,CPU 或 MMU 会在需要时从磁盘交换页面进出。

  • Linux 上的 ELF 二进制文件包含一个标头,其中列出了二进制文件中二进制文件部分的地址(以及其他信息),其中包括代码部分和数据部分等。

  • ELF 标头还指定需要哪些共享库。它们由内核存储在内存中,当执行二进制文件时,它们的地址由内核提供给进程。

所以我更具体的问题是,作为 ASLR 的一部分,二进制文件和堆和堆栈的所有部分是否都从基位置随机偏移?

(对不起,如果其中任何一个是非常错误的,我在汇编/C/C++ 编程方面不是很有经验,并试图弄清楚二进制可执行文件如何工作的较小细节。)

linux executable linux-kernel aslr

5
推荐指数
0
解决办法
86
查看次数

如何在功能上干净地检查Scala中的错误?

在检查错误而不简单地链接函数时,有没有办法避免下面代码中的嵌套?

val a: Either[Value, Exception]
val b: Either[Value, Exception]
val c: Either[Value, Exception]

def combine(a: Either[Value, Exception], 
            b: Either[Value, Exception], 
            c: Either[Value, Exception]) = 
{
  a match {
    case Right(a) => Right(a)
    case Left(a)  => b match {
                       case Right(b) => Right(b)
                       case Left(b)  => c match {
                                          case Right(c) => Right(c)
                                          case Left(c)  => a + b + c
                                        }
                     }
   }
}
Run Code Online (Sandbox Code Playgroud)

functional-programming scala

0
推荐指数
1
解决办法
60
查看次数

如何在程序运行到 xxd 时通过管道输出它?

我希望能够在运行时以十六进制看到我的程序的输出,但是如果我将输出通过管道传输到 xxd 它只会在程序停止运行后打印。

这些是我尝试过的事情:

./a.out | while read LINE; do echo "$LINE" | xxd; done

./a.out | xxd
Run Code Online (Sandbox Code Playgroud)

这是我的控制台的样子:(箭头是我的评论)

1 <-- input
2 <-- input
3 <-- input
4 <-- input
a <-- input (program ends after this input)
00000000: 6465 6667 0a                           defg.. <-- output
00000000: 6465 6667 0a                           defg.. <-- output
00000000: 6465 6667 0a                           defg.. <-- output
00000000: 6465 6667 0a                           defg.. <-- output
Run Code Online (Sandbox Code Playgroud)

但这就是我想要的

1 <-- input
00000000: 6465 6667 0a                           defg.. <-- output
2 <-- …
Run Code Online (Sandbox Code Playgroud)

linux bash shell scripting

0
推荐指数
1
解决办法
81
查看次数