如何过maps检测
- IO重定向,当发现__openat打开的是*/proc/self/maps或者/proc/{pid}/maps*这样的文件时,可以选择替换路径或者替换文件描述符fd,稳定的做法是fd替换,以下描述的也是fd替换。
- 创建一个临时的maps文件,把原fd的内容经过过滤后写入到这个临时maps文件当中,过滤一般像frida这些so之类的,然后删掉这个文件(Linux内核不会立即删掉该文件,而是在释放文件(close掉)描述符fd之后再进行删除),此时把这个临时的fd返回,这样就替换掉了原fd,且内容为我们想让app读取到的maps。
具体代码参考珍惜的68课如何过maps检测,这节课讲的很详细,但具体思路如上