Frida源码编译与魔改
Android逆向-Frida源码编译与魔改
下载与编译
WSL2(失败)
为了便于开发,我决定用Win10+WSL2的组合来搭建编译开发环境。
首先下载:
1 | sudo apt-get install build-essential curl git lib32stdc++-9-dev \ |
修复nodejs/npm下载问题
首先是解决多余的node/npm。我的WSL上面,在/usr/local/bin
里面还有多余的node/npm,这些会被识别出来,但是apt无法去修改他们。因此我手动删除了他们,以及/usr/local/lib
里面相关的依赖(似乎只有个node_modules
文件夹)。
然后再用apt安装nodejs,安装后就发现都在/usr/bin
里面,这就正常了。
用whereis
指令来看程序所在的位置
1 | whereis node |
然后解决npm,这一块有点玄学。就是在
1 | sudo apt install npm |
的时候,瞬间给我列出来一大堆玩意,说is not going to be installed
。
然后解决方案似乎是主动去安装这些玩意。
1 | sudo apt install nodejs npm |
时候发现npm应该是不需要主动用apt安装的,因为安装nodejs的时候似乎自带了。因此这里忽视。
然后安装交叉编译工具。
1 | sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu |
然后设置ANDROID_NDK_ROOT
环境变量(先下载Linux上的Android NDK,版本要是r25的!)
NDK 下载 | Android NDK | Android Developers
1 | vim ~/.zshrc |
在WSL2中用Git下载:
1 | git clone --recurse-submodules https://github.com/frida/frida |
编译:
输入
1 | make |
会输出一大堆的列表。选择我们要的。
core-android-arm64
1 | sudo make core-android-arm64 -j4 |
Windows(没成功)
配置NDK路径
在Windows上,配置好系统环境变量,以我的电脑为例子,设置ANDROID_NDK
为
1 | D:\Environment\Android_SDK\ndk\25.1.8937393 |
这个文件夹下有ndk-build.cmd
,ndk-gdb.cmd
等用于Android平台上交叉编译的工具。
Linux(虚拟机上成功)
换到我的VMWare r0envKali逆向虚拟机里面。
首先
1 | apt update |
我的openssh-server总是更新报错,anyway不管了。
先remove openssh-server,然后重新安装,然后选择第一个选项,安装新版本,覆盖原来的配置。
然后根据以下命令的需求安装:(不用直接执行这个命令)
1 | sudo apt-get install build-essential curl git lib32stdc++-9-dev \ |
其中的lib32stdc++-9-dev
和libc6-dev-i386
好像没法安装,不过问题不大
这个虚拟机比较好用,这些都有:
1 | node: v18.13.0 |
还有一个很重要的就是
1 | sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu |
开始下载源码
1 | git clone --recurse-submodules https://github.com/frida/frida |
然后再下载Android NDK r25c,解压并设置好ANDROID_NDK_ROOT
最后
1 | make core-linux-arm64 -j8 |
这里make时,或者前面apt install时需要科学上网,因此可以前面带上
proxychains4
现在真的是一切正常了。最后成功编译。
我将frida源码放在了Kali里的
Desktop/frida-dev
文件夹下了。
strongR-frida-android⭐
hzzheyang/strongR-frida-android: An anti detection version frida-server for android. (github.com)
Patchs/strongR-frida/frida-core at master · hluwa/Patchs (github.com)
这是一个将frida源码进行patch魔改,实现掩盖frida特征的一个项目。
可以偷懒直接下载它提供的release,但也最好自己试试魔改。
隐藏”frida:rpc”
在frida-core/lib/base
中构造request
变量时:
1 | .add_string_value("frida:rpc") |
问题
releng/detect_os.sh
找不到
实际上是从Windows Terminal的Powershell上面,用git下载下来的脚本的回车符是CRLF格式的,和WSL2里Linux shell的解释器基于LF的回车符不一致,就出现bug了。
最好直接用WSL2里的Linux git来下载东西。这样就能成功解决问题。
参考
Hacking | Frida • A world-class dynamic instrumentation toolkit
Building | Frida • A world-class dynamic instrumentation toolkit
记录一次成功的frida编译_frida 编译_一只快死的猿的博客-CSDN博客⭐
- 本文作者: Taardis
- 本文链接: https://taardisaa.github.io/2023/10/11/Android逆向-Frida源码编译与魔改/
- 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!