首页
社区
课程
招聘
[原创]frida自编译以及去特征
发表于: 2025-9-24 19:08 6315

[原创]frida自编译以及去特征

2025-9-24 19:08
6315

环境:WSL Ubuntu 20.04.6 LTS

版本:frida14.2.18

前言:查看网上很多很多手动魔改frida,绕过一些检测点教程都是直接通过git pach进去的,首先想自己手动修改一下源码,理清一下修改点和修改逻辑,所以直接在源码上修改添加内容的,其次我主用的frida12.8.0和frida14.2.18没有对应的patch,想要魔改该版本也只能依据其他版本的pach手动修改。文章内容比较长,步骤并非一次成功,包含了一些试错过程,复现时建议先全文读完,绕过试错过程,frida12.8.0由于工具链缺失没有完成编译,但步骤大同小异。


一开始选择的12.8.0版本,后面发现工具链下载不到没办法编译,后面换为14.2.18版本,流程基本是一样的。

build-essential: 包含 C/C++ 编译器 (gcc/g++) 和 make 等基础开发工具。

git: 版本控制工具,用于从 GitHub 下载源码。

python3-pip: Python 的包管理器,用于安装后续的 Python 依赖。

lib32stdc++-9-dev & libc6-dev-i386: 32 位 C++ 标准库和 C 库的开发文件,交叉编译 32 位架构。(需要编译32位可以安装)

curl & unzip: 用于下载和解压文件。

--recurse-submodules: 这是编译 Frida 关键的参数之一。作用是克隆主项目的同时,自动下载所有这些被依赖的“子项目”。如果没有这个参数,源码会不完整,编译时会因为缺少文件而失败。

-b 12.8.0: -b 参数用来指定一个特定的版本。

使用git时注意用git config --global user.name "Your Name" git config --global user.email "youremail@yourdomain.com"配置一下用户名和邮箱

如果有网络问题使用git config --global http.proxy http://127.0.0.1:yourProxyPortgit config --global https.proxy http://127.0.0.1:yourProxyPort设置一下代理。

如果出现:

换成https协议

这里通过字段"node": ">=8.0.0""@types/node": "^12.0.4"android_ndk_version="r20" \android_ndk_major_version=20 \ndk_required_name="r20",可以确定node版本为12,ndk版本为r20,具体的小版本可能不一定找得到,尽量大版本对应。

推荐nvm安装,方法设置环境变量切换版本

具体小版本号要去官网看看有哪些

直接make,会列出支持的所有编译选项

这里我只需要支持64位Android的,选择core-android-arm64

可以直接make -j$(nproc) core-android-arm64使用全部线程编译加快速度,也可以-j后跟一个数字指定线程数编译(不能超过cpu支持的线程数)

因为git的时候直接git clone -b 12.8.0,没有在master分支上所以报错,直接创建命名为master

工具链已经不存在了。

其他教程说工具链需要手动下载,url上区别是不同版本的时间不同,也就是url中数字那一串不同

看了一下12.8.0没有deps.mk

直接字符串搜索了一下在setup-env.sh中,时间号为20191024和20190428,确实工具链地址已经不存在了,所以下载不到会报错,直接进去把这两个下载注释掉,直接不用工具链完全重新编译试试。

image-20250920234645631

报错了

image-20250920234808976

依赖库太复杂了不好编译,换个新点的有工具链的版本试试。

image-20250921123605202

然后和上面一样下载安装配置好对应版本node和ndk环境变量进行make即可

image-20250921124913809

编译能够正常下载工具链(网上有的帖子说要手动先下载工具链,但是我发现make的时候会自动下载,那就不用手动下载了)

image-20250921125732132

能看到编译出来的文件,证明编译环境没问题,接下来push进手机测试一下(编译文件在frida/build/frida-android-arm64/bin

image-20250921132020871

image-20250921132435136

image-20250921132503889

能正常使用,接下来修改frida特征重新编译

检测原理:Frida 的客户端和注入到 App 里的服务端(frida-agent.so)之间通过交换 JSON 格式的消息来通信。为了识别这些消息是属于 Frida 的远程调用,每一条 RPC 相关的消息中都会包含一个固定的标识符frida:rpc,app可以对代码段进行扫描检测。

首先找到frida:rpc的位置,在`frida-core/lib/interfaces/session.vala`中。

网上很多公开的修改都是基于base64编码来规避的,这里我采用base62,避免公开的修改也被检测到。

先添加base62字符集和解码函数

修改所有使用字符串位置

文件路径:frida-core/server/server.vala

检测原理:frida-server 在运行时,会创建一个属于自己的工作目录。这个目录被硬编码为 re.frida.server,app可以通过maps发现Frida的文件夹特征。

文件路径:`frida-core/src/linux/frida-helper-backend-glue.c

检测原理:为了将核心的 frida-agent.so 文件内容注入进目标 App 的内存里,Frida会在文件系统上创建一个临时的“通信管道”,命名为`linjector-xxxx,可以通过fd目录看到相关文件描述符信息和实际的资源路径。

文件路径:frida-core/src/linux/linux-host-session.vala

检测原理:这个文件打包了Frida的核心功能代码,但是需要注入到 App 的进程空间里才能开始工作。它会先释放到前面所提到的re.frida.server目录中,然后加载进去后会在应用的maps中映射其在内存中的地址。

检测原理: 应用可以通过解析加载到内存中的 so 文件获取 frida_agent_main 入口点字符串这个特征,或其它包含 frida 和frida相关的字符串、符号名以及so创建的线程名称字符串。

相关线程,字符串

gum-js-loop线程是 Frida 的 JavaScript 引擎,主要用来执行js脚本;

gmain线程负责处理Frida 自身大量的内部任务,如与外界 frida-server 的通信、I/O 操作、定时器等。

gdbus 是负责处理 D-Bus 通信的线程。Frida 客户端和 frida-server之间的默认通信方式是 D-Bus,当然也可以直接通过tcp连接绕过。

"FridaScriptEngine"我看有的patch对这个字符串进行了替换,但是在我修改的14.2.18版本中没有搜索到这个字符串,所以我没有做替换。

"GLib-GIO"是 Frida 所依赖的一个底层库的名字,它是 GLib 库的一部分,主要提供一些网络、文件和 D-Bus 通信。Frida 的通信功能建立在它之上。

"GDBusProxy"是 GLib-GIO 库里的一个的名字。通过创建一个 GDBusProxy 对象能够实现使用 D-Bus 和另一个程序通信。

"GumScript"是 Frida 内部代表一个被加载的 JS 脚本的类名。当 Frida 加载一段 hook 脚本时,Frida 的 FridaScriptEngine 会创建一个 GumScript 对象来包裹和管理这段脚本代码。

首先是针对so文件的修改,Frida会针对app注入so文件进行相关的控制,so文件可以直接用脚本批量修改。

通过Python脚本修改so文件需要lief库,需要安装一下pip install lief --break-system-packages

新增脚本anti-anti-frida.py,文件路径frida-core/src/anti-anti-frida.py

其次是针对代码中frida_agent_main的修改,因为so文件的入口函数以及改名字了,所以调用端也需要使用修改后的名字。其次由于部分代码作为服务端打包进了so文件,so文件结构能够使用工具批量修改,但是有一部分调用端编译以后直接就生成了机器码,很难进行批量修改。所以一部分调用端代码通过手动修改。


文件路径:frida-core/src/agent-container.vala

文件路径:frida-core/src/darwin/darwin-host-session.vala

文件路径:frida-core/src/linux/linux-host-session.vala

文件路径:frida-core/src/qnx/qnx-host-session.vala

文件路径:frida-core/src/windows/windows-host-session.vala

文件路径:frida-core/tests/test-agent.vala

文件路径:frida-core/tests/test-injector.vala

最后是针对embed-agent.sh的修改,这个脚本是 Frida 编译的一部分。作用是获取编译好的一些需要打包的相关文件,打包到 frida-server中,在这里使用anti-anti-frida.py脚本对so文件中字符串内容进行清洗替换。


文件路径:frida-core/src/embed-agent.sh

文件路径:frida-core/src/droidy/droidy-client.vala

原因:系统的一些底层服务可能会无意中向 Frida 正在监听的通道发送 OPEN, CLSE, WRTE 等指令(Frida的协议中不会包含这些指令)。原来的代码逻辑是,当Frida收到不在协议范围内的指令时,认为这是一个不该出现的情况,于是立即抛出一个“协议错误” (throw new Error.PROTOCOL),然后导致程序中断或崩溃。

文件路径:frida-core/src/frida-glue.cfrida-gum/gum/gum.c

检测原理: Frida 的核心引擎 Gum 在初始化时,会把自己内部的程序名设置为 "frida"(跟安卓系统中的程序名不同,属于内部程序名,同一进程内才可以获取到),虽然安卓没有直接的接口查询,但是有可能通过使用GLib 库提供特定函数g_get_prgname()查询到。

注意node和NDK版本

image-20250922202410837

没有找到valac编译器

安装一下试试

已经存在了,修改前编译过一次没有出问题,但是编译完成后apt安装过一次valac,应该是起冲突了,sudo apt purge valac libgee-0.8-dev卸载掉后make clean后再编译。

报错不认识 ArrayList 这个类型

image-20250922225341453

ArrayList 来自于 Gee 库,但在代码中没有明确指定它的命名空间,在frida-core/lib/interfaces/session.vala文件中ArrayList 前面加上 Gee.就行了。

报错

image-20250922230037351

注册一个 D-Bus 对象时,必须为这个对象的接口(Interface)添加一个 [DBus (name = "...")] 的注解,来明确它在 D-Bus 服务上的名称。看了下代码是在frida-core/lib/interfaces/session.vala中添加解码函数时把函数插在了[DBus (name = "re.frida.HostSession14")]public interface HostSession : Object 中间导致的,把[DBus (name = "re.frida.HostSession14")]移动到public interface HostSession : Object 的头上即可。

image-20250922231141484

修改的字符串也打印出来了,接下来去frida/build/frida-android-arm64/bin找到server push进手机测试一下。注意给权限。

image-20250923215221202

测试了下之前存在反检测那个app直接能附加进去了,但是发现一个问题,在交互界面执行eixt退出的时候,会卡住阻塞在那,没办法正常退出,而且强制Ctrl C退出后,再次附加直接无法附加,并且所有app都点不开,但是手机重启后可以附加,感觉通信交互出问题了?还是程序崩溃了?查看端口发现,Ctrl C虽然终止了交互终端,但是端口仍在监听,并且一直没有执行关闭,感觉是通信问题。

image-20250923141109586

看了一下‘’frida-core/lib/interfaces/session.vala文件源码,发现添加的给frida:rp字符串base62解码的函数,在字符串解码时没有获取到正确字符串,而且读取时可能会破坏内存,导致exit时frida-sever崩溃。

原因是vala语言编译最后会编译为C代码,C中string字符串实际上是指向内存中连续字符的指针,最终结束依赖于字符串末尾的终止符"\0",没有终止符就会一直处理直到遇到终止符,会导致内存越界。

最后在return (string) reversed_bytes.to_array();之前通过reversed_bytes.add (0);增加一个终止符。

最后重新编译,push进手机。

未魔改的直接注入:

image-20250923214708879

魔改版注入:

image-20250923214837669

某些大厂APP还是能检测到,技术有限,主要是跟着别人的思路梳理一遍Frida的常见检测点以及绕过,感谢大佬的patch。

Frida自编译

记录一次成功的frida编译-CSDN博客)

Frida反调试之编译与魔改Frida16.7.19

StrongR Frida特征魔改 - 佛光普照

GitHub - Ylarod/Florida: 基础反检测 frida-server / Basic anti-detection frida-server

Patchs/strongR-frida/frida-core at master · hluwa/Patchs · GitHub



sudo apt install build-essential git python3-pip lib32stdc++-9-dev libc6-dev-i386 curl unzip
git clone --recurse-submodules -b 12.8.0 4bfK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0j5i4m8@1L8$3#2Q4x3V1k6X3M7X3W2V1j5g2)9J5c8X3k6J5K9h3c8S2
Cloning into '/home/schimmer/workspace/frida/frida12.8.0/frida/capstone'...fatal: unable to connect to github.com:github.com[0: 20.205.243.166]: errno=Connection timed outfatal: clone of 'git://github.com/frida/capstone.git' into submodule path '/home/schimmer/workspace/frida/frida12.8.0/frida/capstone' failedFailed to clone 'capstone'. Retry scheduledCloning into '/home/schimmer/workspace/frida/frida12.8.0/frida/frida-clr'...fatal: unable to connect to github.com:github.com[0: 20.205.243.166]: errno=Connection timed out
git config --global url."c0eK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1j5`.".insteadOf git://github.com/# 继续下载cd fridagit submodule update --init --recursive
# 在package.json搜索node版本信息schimmer@jnga-20230821GW:~/workspace/frida/frida12.8.0/frida$ cat frida-node/package.json | grep node    "node": ">=8.0.0"    "@types/node": "^12.0.4",    "ts-node": "^8.1.0",    "install": "prebuild-install || node-gyp rebuild",    "test": "npm run prebuild && node --expose-gc node_modules/mocha/bin/_mocha -r ts-node/register test/*.ts"    "url": "8cbK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6X3M7X3W2V1j5g2)9J5c8X3k6J5K9h3c8S2i4K6u0V1L8X3!0V1k6g2)9J5k6h3N6A6N6l9`.`."    "url": "b7cK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6X3M7X3W2V1j5g2)9J5c8X3k6J5K9h3c8S2i4K6u0V1L8X3!0V1k6g2)9J5c8X3W2K6M7%4g2W2M7H3`.`."    # 搜索ndk字段查看使用的ndk版本schimmer@jnga-20230821GW:~/workspace/frida/frida12.8.0/frida$ grep -i ndk Makefile.sdk.mk        ndk_abi := x86        ndk_triplet := i686-linux-android        ndk_abi := x86_64        ndk_triplet := x86_64-linux-android        ndk_abi := arm-linux-androideabi        ndk_triplet := arm-linux-androideabi        ndk_abi := aarch64-linux-android        ndk_triplet := aarch64-linux-android        ndk_build_platform_arch := $(shell uname -s | tr '[A-Z]' '[a-z]')-$(build_arch)        ndk_llvm_prefix := $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/$(ndk_build_platform_arch)        ndk_gcc_prefix := $(ANDROID_NDK_ROOT)/toolchains/$(ndk_abi)-4.9/prebuilt/$(ndk_build_platform_arch)                CPP=clang CC=clang CXX=clang++ LD= LDFLAGS= AR=$(ndk_triplet)-ar RANLIB=$(ndk_triplet)-ranlib \                ANDROID_NDK=$(ANDROID_NDK_ROOT) \                PATH=$(ndk_llvm_prefix)/bin:$(ndk_gcc_prefix)/bin:$$PATH \                android_ndk_root="$(ANDROID_NDK_ROOT)" \                android_ndk_version="r20" \                android_ndk_major_version=20 \                android32_ndk_api_level=18 \                android64_ndk_api_level=21 \                clang_base_path="$(abspath $(ANDROID_NDK_ROOT)/toolchains/llvm/prebuilt/$(ndk_build_platform_arch))"                                # 也可以在setup-env.sh文件看ndk版本schimmer@jnga-20230821GW:~/workspace/frida/frida12.8.0/frida$ cat releng/setup-env.sh | grep ndk  ndk_required_name="r20"      ndk_installed_version=$(grep Pkg.Revision "$ANDROID_NDK_ROOT/source.properties" | awk '{ split($NF, v, "."); print v[1]; }')      ndk_installed_version=$(cut -f1 -d" " "$ANDROID_NDK_ROOT/RELEASE.TXT")    if [ $ndk_installed_version -ne 20 ]; then        echo "Unsupported NDK version $ndk_installed_version. Please install NDK $ndk_required_name."        echo "Frida's SDK - the prebuilt dependencies snapshot - was compiled against $ndk_required_name,"        echo "releng/setup-env.sh and adjust the ndk_required variable. Make sure you use"    echo "ANDROID_NDK_ROOT must be set to the location of your $ndk_required_name NDK." > /dev/stderr
# 安装nvmcurl -o- 5b1K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6J5j5i4N6Q4x3X3g2Y4K9i4c8Z5N6h3u0#2M7$3g2J5j5$3!0F1N6r3g2F1N6q4)9J5k6h3y4G2L8g2)9J5c8X3&6$3L8g2)9J5k6s2y4Z5i4K6u0r3L8Y4k6E0i4K6u0r3N6U0m8Q4x3X3f1@1x3q4)9J5k6e0y4Q4x3V1k6A6L8Y4y4@1j5h3I4D9i4K6u0W2M7$3S2Q4b7K6u0Q4b7e0m8Q4y4@1y4Q4b7K6u0Q4b7e0m8T1j5i4y4Z5M7$3!0#2M7X3y4W2i4@1x3J5i4@1p5H3i4K6N6q4i4K6u0r3i4K6u0W2j5X3q4K6K9s2u0U0i4K6t1K6i4@1x3J5i4@1p5H3i4@1f1#2i4@1q4q4i4K6R3&6i4@1f1^5i4@1p5K6i4K6R3#2i4@1x3J5i4@1p5H3L8X3!0V1k6e0p5J5L8Y4k6E0i4@1x3J5i4@1p5H3K9h3&6K6N6r3q4D9L8q4!0o6x3W2!0m8x3o6p5J5i4K6t1K6i4@1x3J5i4@1p5H3i4@1f1@1i4@1u0p5i4@1u0r3i4@1f1%4i4K6V1@1i4@1p5^5x3e0u0Q4c8e0N6Q4z5o6W2Q4z5o6S2Q4c8e0k6Q4z5f1y4Q4b7f1y4F1N6X3#2Q4b7K6u0Q4b7e0m8#2M7$3g2Q4b7K6u0Q4b7e0l9I4x3W2)9J5x3#2!0o6x3W2!0m8x3q4!0q4y4W2)9&6c8W2!0m8y4g2!0q4y4#2)9&6b7#2)9^5b7W2!0q4y4#2)9^5z5g2)9^5z5q4!0q4y4W2)9&6b7#2!0m8b7$3&6G2k6r3g2Q4b7K6u0Q4b7e0m8Q4x3X3c8$3N6U0p5J5i4K6u0W2x3U0u0Q4x3X3f1I4x3R3`.`.
# 创建文件夹,解压的ndk文件到时候放这里,位置自行选择mkdir -p ~/Android/Sdk/ndk# 下载wget 5efK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1L8q4)9J5k6h3N6G2L8$3N6D9k6g2)9J5k6h3y4G2L8g2)9J5c8X3q4F1k6s2u0G2K9h3c8Q4x3V1k6J5k6i4m8G2M7$3W2@1L8%4u0&6i4K6u0r3j5h3&6V1M7X3!0A6k6q4)9J5k6r3&6V1K9#2)9J5k6s2t1J5x3r3u0Q4x3X3c8D9K9h3&6#2P5q4)9J5k6s2R3^5y4W2)9#2k6U0j5@1i4K6u0W2P5X3W2H3i4K6t1K6i4@1x3J5i4@1p5H3i4@1f1^5i4@1p5%4i4@1p5K6i4@1f1#2i4K6S2q4i4K6S2n7N6h3&6*7K9i4m8Q4b7K6u0Q4b7e0m8S2L8X3c8J5L8$3W2V1i4K6u0V1L8X3c8C8i4K6u0V1M7U0t1H3j5W2)9J5k6r3I4A6L8Y4g2^5i4K6u0V1P5o6R3$3i4K6g2X3y4U0c8Q4x3X3g2*7K9i4m8Q4b7K6u0Q4b7e0m8Q4x3X3c8V1i4@1x3J5i4@1p5H3i4K6N6q4i4K6u0r3b7h3&6V1M7X3!0A6k6q4)9J5c8W2y4V1K9#2)9J5c8X3&6V1K9#2)9J5x3#2!0o6x3W2!0m8x3q4!0q4z5q4!0m8c8g2!0n7c8g2!0q4y4#2!0n7c8q4!0m8c8g2!0q4y4g2!0n7c8q4)9&6x3#2!0q4y4g2)9^5z5g2)9^5c8s2y4Z5k6h3I4D9i4@1f1%4i4K6S2q4i4@1q4r3i4@1f1#2i4@1p5J5i4K6R3K6i4@1f1#2i4K6S2r3i4K6V1^5i4@1f1&6i4K6R3%4i4K6S2r3i4@1g2r3i4@1u0o6i4K6S2o6i4@1f1#2i4@1p5$3i4K6R3J5i4@1f1$3i4K6W2q4i4K6W2o6i4@1f1^5i4@1p5$3i4K6R3I4i4@1f1&6i4K6V1#2i4@1u0r3i4@1f1$3i4K6W2o6i4K6W2r3i4@1f1%4i4K6V1@1i4K6W2r3i4@1f1$3i4K6V1#2i4K6R3^5i4@1f1&6i4K6W2o6i4K6R3H3i4@1f1^5i4@1p5$3i4K6R3I4i4@1f1^5i4K6R3%4i4@1q4m8i4@1f1#2i4@1t1%4i4@1t1I4i4@1f1#2i4K6R3$3i4K6V1&6i4@1f1^5i4@1u0r3i4K6W2n7i4K6N6q4i4K6u0r3i4K6u0W2j5X3q4K6K9s2u0U0i4@1f1@1i4@1t1^5i4@1q4p5k6i4S2H3L8%4u0@1i4@1x3J5i4@1p5H3b7f1&6p5f1V1!0u0c8q4)9#2k6V1&6p5d9#2)9#2k6W2u0a6e0#2c8Q4x3@1b7`."$HOME/Android/Sdk/ndk/android-ndk-r20b"export PATH=$ANDROID_NDK_ROOT:$PATH
schimmer@jnga-20230821GW:~/workspace/frida/frida12.8.0/frida$ makemake[1]: Entering directory '/home/schimmer/workspace/frida/frida12.8.0/frida'Usage: make TARGET [VARIABLE=value]Where TARGET specifies one or more of:  /* gum */  gum-linux-x86                     Build for Linux/x86  gum-linux-x86_64                  Build for Linux/x86-64  gum-linux-x86-thin                Build for Linux/x86 without cross-arch support  gum-linux-x86_64-thin             Build for Linux/x86-64 without cross-arch support  gum-linux-arm                     Build for Linux/ARM  gum-linux-armbe8                  Build for Linux/ARMBE8  gum-linux-armhf                   Build for Linux/ARMhf  gum-linux-arm64                   Build for Linux/ARM64  gum-linux-mips                    Build for Linux/MIPS  gum-linux-mipsel                  Build for Linux/MIPSel  gum-linux-mips64                  Build for Linux/MIPS64  gum-linux-mips64el                Build for Linux/MIP64Sel  gum-android-x86                   Build for Android/x86  gum-android-x86_64                Build for Android/x86-64  gum-android-arm                   Build for Android/ARM  gum-android-arm64                 Build for Android/ARM64  gum-qnx-arm                       Build for QNX/ARM  gum-qnx-armeabi                   Build for QNX/ARMEABI  check-gum-linux-x86               Run tests for Linux/x86  check-gum-linux-x86_64            Run tests for Linux/x86-64  check-gum-linux-x86-thin          Run tests for Linux/x86 without cross-arch support  check-gum-linux-x86_64-thin       Run tests for Linux/x86-64 without cross-arch support  check-gum-linux-arm64             Run tests for Linux/ARM64  /* core */  core-linux-x86                    Build for Linux/x86  core-linux-x86_64                 Build for Linux/x86-64  core-linux-x86-thin               Build for Linux/x86 without cross-arch support  core-linux-x86_64-thin            Build for Linux/x86-64 without cross-arch support  core-linux-arm                    Build for Linux/ARM  core-linux-armbe8                 Build for Linux/ARMBE8  core-linux-armhf                  Build for Linux/ARMhf  core-linux-arm64                  Build for Linux/ARM64  core-linux-mips                   Build for Linux/MIPS  core-linux-mipsel                 Build for Linux/MIPSel  core-linux-mips64                 Build for Linux/MIPS64  core-linux-mips64el               Build for Linux/MIPS64el  core-android-x86                  Build for Android/x86  core-android-x86_64               Build for Android/x86-64  core-android-arm                  Build for Android/ARM  core-android-arm64                Build for Android/ARM64  core-qnx-arm                      Build for QNX/ARM  core-qnx-armeabi                  Build for QNX/ARMEABI  check-core-linux-x86              Run tests for Linux/x86  check-core-linux-x86_64           Run tests for Linux/x86-64  check-core-linux-x86-thin         Run tests for Linux/x86 without cross-arch support  check-core-linux-x86_64-thin      Run tests for Linux/x86-64 without cross-arch support  check-core-linux-arm64            Run tests for Linux/ARM64  /* python */  python-linux-x86                  Build Python bindings for Linux/x86  python-linux-x86_64               Build Python bindings for Linux/x86-64  python-linux-x86-thin             Build Python bindings for Linux/x86 without cross-arch support  python-linux-x86_64-thin          Build Python bindings for Linux/x86-64 without cross-arch support  python-linux-arm64                Build Python bindings for Linux/ARM64  check-python-linux-x86            Test Python bindings for Linux/x86  check-python-linux-x86_64         Test Python bindings for Linux/x86-64  check-python-linux-x86-thin       Test Python bindings for Linux/x86 without cross-arch support  check-python-linux-x86_64-thin    Test Python bindings for Linux/x86-64 without cross-arch support  check-python-linux-arm64          Test Python bindings for Linux/ARM64  /* node */  node-linux-x86                    Build Node.js bindings for Linux/x86  node-linux-x86_64                 Build Node.js bindings for Linux/x86-64  node-linux-x86-thin               Build Node.js bindings for Linux/x86 without cross-arch support  node-linux-x86_64-thin            Build Node.js bindings for Linux/x86-64 without cross-arch support  node-linux-arm64                  Build Node.js bindings for Linux/ARM64  check-node-linux-x86              Test Node.js bindings for Linux/x86  check-node-linux-x86_64           Test Node.js bindings for Linux/x86-64  check-node-linux-x86-thin         Test Node.js bindings for Linux/x86 without cross-arch support  check-node-linux-x86_64-thin      Test Node.js bindings for Linux/x86-64 without cross-arch support  check-node-linux-arm64            Test Node.js bindings for Linux/ARM64  /* tools */  tools-linux-x86                   Build CLI tools for Linux/x86  tools-linux-x86_64                Build CLI tools for Linux/x86-64  tools-linux-x86-thin              Build CLI tools for Linux/x86 without cross-arch support  tools-linux-x86_64-thin           Build CLI tools for Linux/x86-64 without cross-arch support  tools-linux-arm64                 Build CLI tools for Linux/ARM64  check-tools-linux-x86             Test CLI tools for Linux/x86  check-tools-linux-x86_64          Test CLI tools for Linux/x86-64  check-tools-linux-x86-thin        Test CLI tools for Linux/x86 without cross-arch support  check-tools-linux-x86_64-thin     Test CLI tools for Linux/x86-64 without cross-arch support  check-tools-linux-arm64           Test CLI tools for Linux/ARM64
schimmer@jnga-20230821GW:~/workspace/frida/frida12.8.0/frida$ make core-android-arm64
make[1]: Entering directory '/home/schimmer/workspace/frida/frida12.8.0/frida'
make[1]: *** No rule to make target '.git/refs/heads/master', needed by 'build/frida-version.h'.  Stop.
make[1]: Leaving directory '/home/schimmer/workspace/frida/frida12.8.0/frida'
make: *** [Makefile:4: core-android-arm64] Error 2

传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2025-9-24 19:33 被schimmer编辑 ,原因:
收藏
免费 14
支持
分享
最新回复 (9)
雪    币: 6
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2025-9-24 20:46
0
雪    币: 104
活跃值: (7189)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
tql
2025-9-25 00:48
0
雪    币: 316
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
还得是孙笑川
2025-9-28 15:43
0
雪    币: 255
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
用14.2.18版本有什么说法吗
2025-10-9 19:11
0
雪    币: 2564
活跃值: (105)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
Cure. 用14.2.18版本有什么说法吗
Android10和frida14搭配比较稳定
2025-10-9 20:18
0
雪    币: 530
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
自己改完17.3.2版本之后,发现过不了网易易盾的壳????。大佬,你自改的试过网易易盾的壳能不能过去吗?
2025-10-14 16:32
0
雪    币: 2564
活跃值: (105)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
宛枫 自己改完17.3.2版本之后,发现过不了网易易盾的壳????。大佬,你自改的试过网易易盾的壳能不能过去吗?
没有试过,可能检测点不在改动范围中
2025-10-22 16:11
0
雪    币: 13
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
NB
2025-11-1 17:25
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
666
2025-11-25 17:14
0
游客
登录 | 注册 方可回帖
返回