移植
架构
移植
移植Frida的第一步是设置构建系统。假设你要将Frida移植到Linux/MIPS架构。由于Frida已支持Linux,我们只需要添加特定架构的部分内容。
移植构建系统
根据不同架构,可能需要调整releng/machine_spec.py
。检查生成的机器文件,如build/
目录下的frida-linux-mips.txt
,确保工具链配置正确。
构建frida-gum
这是最低级别的组件,也是移植工作中最需要努力的部分。构建方法如下:
$ git clone https://github.com/frida/frida-gum.git
$ cd frida-gum
$ make
这一步可能不会成功,但至少能为环境设置做好准备。
代码编译成功后,接下来需要关注的是通过测试:
$ make test
你也可以只运行单个测试,例如:
$ FRIDA_TEST_OPTIONS="--test-args='-p /Core/Process/process_modules' -v" make test
移植frida-gum
通过复制例如gum/backend-arm64来添加gum/backend-mips目录,然后进行替换。移植的关键部分是guminterceptor-mips.c和gumspinlock-mips.c。gumstalker-mips.c可以作为存根保留,因为它是一个高级功能,移植起来比较复杂。
构建frida-core
frida-gum成功构建后,接下来要对frida-core进行相同的处理。
移植frida-core
这部分主要是移植注入器。实现代码在这里,推荐的方法是跟随#if X86
部分来移植特定架构的内容。有关Linux注入器的详细介绍,可以查看我们的演示视频这里。
原文链接:Hacking | Frida • A world-class dynamic instrumentation toolkit
翻译来源:ChatGPT