Frida编译与patch¶
Frida编译¶
代码同步与环境准备¶
Windows 11 + vmware Ubuntu 22.04 虚拟机,在虚拟机中进行了操作
使用git clone --recurse-submodules https://github.com/frida/frida.git
即可同步Frida的全部代码,如果要使用特定tag的代码可以使用如下的命令创建新的分支,这里以笔者最新的16.0.19版本为例
1 2 |
|
这样的话就切换到了创建的分支,并可以基于该分支修改文件了,这里我新建一个基于main的分支并进行修改
想要编译Frida,首先要配置好对应的NDK版本,我们在frida/releng/setup-env.sh
下能够找到ndk_required
,这里说明了所需的NDK版本
1 2 3 4 5 6 7 8 9 |
|
以文章编写时的最新版本为例,这里能看到需要的Android NDK version 是25,下载NDK并安装
1 2 3 4 5 |
|
除此以外,还需要安装Python和Nodejs,执行官网的命令即可
1 2 |
|
编译¶
进入frida
主目录后执行make core-android-arm64
即可进行编译,在这期间需要科学上网,编译过程中会下载所需的SDK文件,一切顺利的话,会显示Compilation succeeded
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
在frida/build/frida-android-arm64/bin
文件夹下会有生成的frida-server
文件
Frida Patch¶
这里主要参考的是hluwa大佬对Frida的patches,且依照 .kk大佬的文章做了部分的修改
16.0.19版本¶
这里没有修改运行默认目录(/data/local/tmp
),也没有修改默认端口(27042),如果有需要可以自行修改。
0001-ecool_string_frida_rpc.patch¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
|
0002-ecool_io_re_frida_server.patch¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
0003-ecool_io_frida_agent_so.patch¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
|
0004-ecool_frida_agent_main.patch¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
|
0005-ecool_anti_frida_build.patch¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
|
0006-ecool_frida_protocol_unexpected_command.patch¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
编译的过程就和上面的一样,这里就不赘述了。
参考资料¶
Building | Frida • A world-class dynamic instrumentation toolkit
[原创]FRIDA Patchs 16.0.9-Android安全-看雪-安全社区|安全招聘|kanxue.com