我有一个应用程序(我没有源代码),可以像这样从命令行调用
$ ./notmyapp
我想知道应用程序写入的所有位置。它在调用它的目录中输出一些文件,但我需要确保这些是唯一创建的文件。
因此,我需要隔离应用程序以找出它在运行时创建/编辑的所有文件。
我该怎么做?
使用 Perl 或 C 或 C++ 的某种方式?这些语言中的任何标准库是否有办法做到这一点?
最佳答案
strace
、ktrace
/kdump
、truss
、dtruss
等您的平台提供的用于跟踪系统调用的其他程序可能正是您正在寻找的。p>
期待其中任何一个的大量输出。要弄清楚应用程序正在读取和写入哪些文件,您可能希望将输出限制为仅几个系统调用。 strace -eopen ./notmyapp
,例如。
应用程序也可能会派生出子进程来完成它的一些工作。对于大多数系统调用跟踪器,您还必须具体跟踪那些子进程。对于 strace,那将是 strace -f ./notmyapp
。
关于c++ - 如何找出所有闭源应用程序正在写入的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3666105/