使用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 )