linux - 为什么.bss段没有可执行属性?

标签 linux ubuntu elf ctf pwntools

我有一个名为 orw 的 ELF 32 位可执行文件来自 pwnable.tw:https://pwnable.tw/challenge/ .在我的 Ubuntu18.04 中,可以执行 .bss 段:
enter image description here
但是在我的 Ubuntu20 和 IDA Pro 中,.bss 段没有可执行属性,为什么?
enter image description here
enter image description here

最佳答案

Why does the .bss segment have no executable attribute?


在正常的可执行文件中 .bss不应该有执行权限,所以奇怪的是 Ubuntu 18.04 结果,而不是相反。
以下都是相关的:
  • 来自 readelf -Wl orw 的输出
  • 内核版本
  • 来自 cat /proc/cpuinfo 的输出
  • 模拟器详细信息(如果您使用的是某种模拟器)。

  • 我怀疑您使用的是模拟器,它设置为模拟 pre- NX-bit处理器(其中 W 位也暗示了 X 位)。
    或者,可执行文件缺少 PT_GNU_STACK段,在这种情况下 this answer可能是正确的 - 此类二进制文件的内核默认值已更改。

    关于linux - 为什么.bss段没有可执行属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70401842/

    相关文章:

    c++ - 如何在带有 C++ 的 Ubuntu 中使用 wmi

    java - ubuntu 1204中的环境

    linux - ( Node )达到最大文件限制?

    c++ - Linux C++ 尝试使用绝对路径加载一个特定的库,而所有其他库都使用相对路径进行链接

    linux - 在 linux 中合并两个文件并忽略任何重复

    ruby-on-rails - 乘客似乎没有运行(Capistrano/Rails/Apache/Ubuntu)

    gdb - 如何在 GNU GAS ELF 输出中制作 GDB 可以破解但不算作函数的本地标签?

    elf - Trace32 命令从 ELF 文件中读取符号内容

    c++ - `-fno-semantic-interposition` 与 `-fvisibility=protected` 究竟有何不同?

    python - 如何更改或禁用 python 的核心转储的路径?