Support remote function call with ptrace

End up not used for anything, but keep it for good
This commit is contained in:
topjohnwu
2021-01-02 21:29:45 -08:00
parent 4e97b18977
commit 5f2e22a259
5 changed files with 353 additions and 12 deletions

View File

@@ -47,6 +47,10 @@ pid_set attaches;
* Utils
********/
static inline long xptrace(int request, pid_t pid, void *addr, uintptr_t data) {
return xptrace(request, pid, addr, reinterpret_cast<void *>(data));
}
static inline int read_ns(const int pid, struct stat *st) {
char path[32];
sprintf(path, "/proc/%d/ns/mnt", pid);
@@ -69,17 +73,6 @@ static int parse_ppid(int pid) {
return ppid;
}
static inline long xptrace(int request, pid_t pid, void *addr, void *data) {
long ret = ptrace(request, pid, addr, data);
if (ret < 0)
PLOGE("ptrace %d", pid);
return ret;
}
static inline long xptrace(int request, pid_t pid, void *addr = nullptr, intptr_t data = 0) {
return xptrace(request, pid, addr, reinterpret_cast<void *>(data));
}
void update_uid_map() {
mutex_guard lock(monitor_lock);
uid_proc_map.clear();