PID 区分文件审核中的 BTW 进程 [INOTIFY] Android

PID Distinguish BTW Processes In File Auditing [INOTIFY] Android

提问人:Aimar 提问时间:10/14/2023 最后编辑:Aimar 更新时间:10/14/2023 访问量:53

问:

我试图区分顺便说一句 PID 文件审核 [ANDROID X64]

这是我的 C++ 可执行代码

#include <iostream>
#include <fstream>
#include <sys/inotify.h>
#include <thread>
#include <unistd>

void FILER() {
    std::this_thread::sleep_for(std::chrono::seconds(10));
    std::ifstream file("/data/user/0/com.termux/files/home/ok.txt");
    if (file.is_open()) {
        std::string line;
        while (std::getline(file, line)) {
            std::cout << "File data: " << line << std::endl;
        }
        file.close();
    }
}

int main() {
    int fd = inotify_init();
    int wd = inotify_add_watch(fd, "/data/user/0/com.termux/files/home/ok.txt", IN_OPEN | IN_ACCESS);
    char buffer[4096];
    ssize_t bytesRead;
    std::thread printThread(FILER);
    while (true) {
        bytesRead = read(fd, buffer, sizeof(buffer));
        struct inotify_event* event = (struct inotify_event*)buffer;
        if (event->mask & IN_ACCESS) {
            std::cout << "File accessed" << std::endl;
        }
        sleep(2);
    }
    printThread.join();
    close(wd);
    close(fd);
    return 0;
}

如您所见,我检查文件是否被此代码访问或打开,并在 10 秒后从自己的进程打开文件, 但是我无法区分从文件管理器打开文件和从自己的进程打开相同的文件

我只是想区分从其他进程打开文件和从同一进程打开文件

如果 inotify 不能做到这一点,那么除了 linux 命令之外,任何其他方法都不能在非 root 环境中工作

谢谢

Android C++ Linux 安全 inotify

评论

0赞 Shawn 10/14/2023
inotify 不会为您提供有关导致事件的原因的任何信息,因此我认为您不能。
0赞 Aimar 10/14/2023
@Shawn 如果 inotify 无法做到这一点,那么除了 linux 命令之外,任何其他方法(如果可能的话),这些命令在非 root 环境中工作

答: 暂无答案