0%

【PoRE#0x04】Frida & Android

Frida是一个几乎全平台(Windows、MacOS、GNU/Linux、IOS、Android)的代码插桩软件。它能够把谷歌的V8引擎(JavaScript、WebAssembly引擎,即解释器)注入到目标进程中,允许我们编写的JS脚本拥有对于整个进程内存空间的访问权、Hook进程里的代码、直接调用它们等……

Frida功能强大,且使用非常便捷、快速。比如在Android平台,Xposed模块也一样可以做到插桩,但调试起来麻烦得多,每次都要生成APK、安装APK、添加模块、重启环境。而Frida甚至不需要编译!官网对它的描述是 Scriptable,编辑后运行,直接就能够看到结果——你甚至不用重开目标进程!

如何使用Frida?Frida包括一个需要在目标机器上运行的Frida Server,同时,在本机上(用于写脚本的机器)提供了命令行工具(Frida CLI tool)、也可以用Python调用Frida API或直接编写JS脚本。

本笔记收集了一些安卓使用Frida的资源。

推荐食用方法是:

  1. 安装:如果你是PoRE学生,可以直接用助教给的方法,在虚拟机进行安装配置。否则可以参考官网文档。
    如果想要用真机进行调试,最好确保使用备用手机,可以使用magisk进行root,可以用一个magisk模块自动开机自启frida服务器,名为MagiskFrida。
  2. 从(助教给的例子或)官网的Example中学习,跑跑脚本并改一改脚本,学习Frida & Android的基础用法。
  3. 你已经可以直接上手了。遇到想要hook但不知道怎么hook的内容,从第三个链接(Sakura大佬的博客)那边可以学习如何使用,如何new一个类、如何获取一个类的实例等。
  4. python脚本与目标进程通信允许我们在主机上也能放一些逻辑,再加上python强大的第三方库支持,我们可以整很多活。等hook成功了之后,看看第四个链接的内容,想想可以整什么活。
  5. 最后是第五个链接,完整的官方文档,可以备着,想要实现某个奇怪的功能或了解某个接口的具体用法时查看。

安装配置:官网Android安装文档
官网Android Example(可以从注释学到基础用法):Android | Frida
大部分用法教程与示例:Frida Android hook | Sakuraのblog
目标进程与本地python脚本通信教程:Messages | Frida
详细的文档:JavaScript API | Frida