gpt4 book ai didi

linux - ptrace:获取 tracee 的图像库?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:22:01 25 4
gpt4 key购买 nike

我在 ubuntu 13.10 上并且有这个剥离+打包的小 Sprite 文件。我需要以自动方式从其过程中转储各种信息,因此我破解了一个微型跟踪器来跟踪我的进度,类似于 strace。出现了三个问题:

1) 附加到我的进程后,如何获取它的图像库?

2) 进程首先在哪里中断?显然不是节目的EP。

3) 当加载 .so/.lib 文件时,有什么方法可以通知我?我认为 GDB 可以以某种方式做到这一点。

第一个问题确实是最重要的问题。感谢您的帮助。

最佳答案

1)/proc/<PID>/maps 包含进程映射的所有内容以及从何处映射的列表,包括从可执行文件映射的页面。通过阅读可执行的 ELF header ,您应该能够找出 .text 的位置。

2) 动态链接二进制文件的执行通常从解释器开始。 ELF 可执行文件(使用 readelf -e 转储)中的 INTERP 程序头将具有其名称。它是解释器开始执行的入口点。通常它是一个运行时链接器 ld-<some-variant>.so .它映射到可执行文件的部分,也可能映射所需的共享库。

3) GDB 相当详细地了解运行时链接器是如何实现的,因此它能够通过在正确的位置设置断点来拦截动态对象加载。你也可以做到的。 dlopen() 似乎是一个很好的拦截点候选者。正如我在 #2 中指出的那样,共享对象可能在可执行文件获得控制权之前就已预加载。

关于linux - ptrace:获取 tracee 的图像库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19985096/

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