0x00 进程注入
通过ptrace机制,调用目标进程的dlopen来加载我们的so,实现进程注入。
这部分知识在Android中的so注入(inject)和挂钩(hook) - For both x86 and arm,有详细的解释,请读者先阅读这篇文章。
那么被注入的进程是如何返回到我们的进程中呢?答案在regs->ARM_lr = 0。具体的分析请参考Android注入完全剖析。
0x01 要被注入的so
这个so主要的任务是hook住Zygote的Native Method。基于HOOK的Anti-debug调用点trace和Anti-anti这篇文章讲解了原理和对应的工程。为了方便起见,我上传了源码工程,这个被注入的so的工程可以在http://download.youkuaiyun.com/detail/jltxgcy/9602656下载。
下面是工程目录:
由于我们要注入的so是两个,一是libTKHooklib.so,一个是libtrace_anti.so,而入口函数hook_entry在libtrace_anti.so中,由于Android中的so注入(inject)和挂钩(hook) - For both x86 and arm这篇文章只介绍了注入一个so的源码,所以我们要修改源码,注入两个so。
那么怎么样才能注入两个so呢?很简单,libTKHooklib.so是libtrace_anti.so所依赖的,所以先注入libTKHooklib.so,然后再注入l