gpt4 book ai didi

linux - linux 中的 mprotect

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:31:02 28 4
gpt4 key购买 nike

如果我使用 PROT_NONE mprotect 段并且如果 SIGSEGV 由于写入而发生,该写入由 sigactionsa_sigaction ,我们将能够使用siginfo_tsi_addr找到故障发生的地址。但是有没有办法找到试图写入的数据和数据的长度?

我正在尝试这样做,因为我正在为我的项目尝试一种写时复制机制。

最佳答案

您找不到进程试图写入的数据,询问其大小也没有意义。如果您可以获得数据,则意味着内核已经将其复制到某处。

您在整个页面上得到一个 SIGSEGV。也就是说,无论进程正在写入什么数据,每页都会出现一个错误 - 第一次尝试写入一个字节时。所以你需要做的就是:

  • 跟踪页面状态
  • 根据需要增加权限

关于linux - linux 中的 mprotect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9273891/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com