0

我是 Linux PaX用户,因此要调试任何二进制文件,我需要使用 paxctl 命令禁用保护标志(每个二进制文件)。PaX 通过随机化为用户提供针对缓冲区溢出攻击等的保护,但它也禁止有意义的调试。我可以手动执行此操作,但是每次重建后我都必须重复它。我在考虑这4个选项:

  1. 使用 /proc/sys/kernel/pax/softmode 临时禁用 PaX
  2. 让 Eclipse 在构建后运行某种批处理文件(或修改默认生成文件)
  3. 从内核中删除一些 PaX 以保留地址空间(正如Gentoo 文档所建议的那样)
  4. 使 Eclipse CDT 调试器 (gdb) 使用硬件断点 (hbreak) 而不是普通断点 (break)

2)似乎是一种方法(不牺牲安全性或性能)。

有没有办法在(重新)构建后执行脚本/批处理文件?

还有另一个问题,即使我以某种方式设法运行禁用保护的脚本,我如何使其安全,使其不能被其他人使用?我正在考虑让 ide 在“eclipse”用户下运行,该用户将在适当的组中执行 paxctl 或类似的东西。

提前感谢您的任何提示。

4

1 回答 1

0

您是否考虑过仅为您的可执行文件/库禁用 PaX?您可以通过添加来做到这一点Project Properties > Build > Settings > Build Steps > Post-build Steps

/sbin/paxctl -pemrxs <your_artifact_name>
于 2012-02-16T13:31:47.113 回答