使用PTrace转储进程打开的文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用PTrace转储进程打开的文件相关的知识,希望对你有一定的参考价值。

我已经熟悉并成功地使用strace转储了进程打开的文件。话虽如此,strace性能导致我的软件性能下降,我想为我的软件实现一个使用c ++的包装器,以便ptrace将收集和转储由软件打开的文件。

我找到了如何附加和修改注册表的指南 - 但这对任何事情都没有帮助。

感谢帮助。

答案

在linux上,您可以访问/proc/<pid>/fd中所有打开文件的列表。这个目录只包含每个打开文件的一堆符号链接;使用标准目录迭代,您可以非常轻松地创建打开文件列表,例如在终端上:

ls -l /proc/$(pidof bash)/fd/

对于创建C / C ++包装器,您可以例如使用此相关问题中描述的技术:How to list files in a directory in a C program?

以上是关于使用PTrace转储进程打开的文件的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向代码调试器开发 ( 等待进程状态改变 | detach 脱离进程调试 PTRACE_DETACH | 调试中继续运行程序 PTRACE_CONT )

Android 逆向代码调试器开发 ( ptrace 函数 | 向进程内存写出数据 )

“聊天剽窃手”--ptrace进程注入型病毒

Android Ptrace Inject

为问题进程创建转储文件的最简单方法

在进程的内存转储中查找视频文件