【问题标题】:ELF x86 executable entry pointELF x86 可执行入口点
【发布时间】:2023-03-04 21:44:01
【问题描述】:
void  *entrypoint;
/*virtual address of process*/
fscanf(debuggedfile, "%p", &entrypoint);

其中 debuggedfile 是指向 int 入口点所在偏移量的 elf 文件的流。 当我使用 ptrace(PTRACE_PEEKTEXT, 0, entrypoint, 0) 它返回 -1

【问题讨论】:

    标签: elf ptrace


    【解决方案1】:

    ELF 是一种二进制文件格式。 fscanf 用于读取文本文件。请改用fread

    【讨论】:

      【解决方案2】:

      如果您正在编写解析 ELF 文件的代码,我建议 使用像 libelf 这样的标准库,而不是编写你的代码 手动拥有 ELF 解析器。

      这样你就可以让 libelf 处理出现的极端情况 偶尔,例如,使用扩展节编号的 ELF 对象。

      有活跃的开源项目正在开发BSD licensedGPL'ed libelf 的实现——任你选择。

      【讨论】:

      • 谢谢,看来我还没有准备好自己做这个(我总是讨厌使用库,因为我想了解一切是如何工作的)我会试试看
      猜你喜欢
      • 2017-11-18
      • 1970-01-01
      • 2012-12-09
      • 2017-10-13
      • 1970-01-01
      • 2015-03-10
      • 2022-01-18
      • 2014-05-24
      • 2015-09-10
      相关资源
      最近更新 更多