高版本frida使用objection的方法
本帖最后由 lhro 于 2023-12-21 22:18 编辑# 前言
objection 的最新版本 1.11.0 发布时间为2021年,与其匹配的frida版本为14.2.18。然而frida server 14.2.18在我的测试机一加Ace 2V 会导致系统崩溃重启,似乎是与MTK的兼容性问题。frida 降级到 12 后,虽然手机不崩溃了,但是这个版本在Mac上仅有X86的版本,与M2芯片不匹配。。。
另一方面,虽然objection虽然较长时间没有新发布,但是仓库代码仍保持更新,最近一次提交时间为9月10日,因此萌生了从源码编译安装的意图。
# objection编译步骤
> 测试环境:
> - macos 14
> - python 3.8
> - frida 16.1.8
> - node.js 20.10.0
> - Android 13
1. 准备工作
1. 安装 node.js:https://nodejs.org/en
2. 下载objection源码
```
git clone https://github.com/sensepost/objection.git
```
3. 进入objection源码目录
```
cd path/to/objection/
```
2.准备 npm 项目依赖
```
cd agent
npm install
```
3. 编译
```
cd .. # objection源码目录
make frida-agent
make sdist
```
4. 安装
```
pip install dist/objection-1.11.0.tar.gz
```
# PS
此时编译的objection与1.11.0版本的命令有一定变化。常用命令变化为:
```
-g --> -n
explore --> start
```
```
Usage: objection COMMAND ...
_ _ _ _
___| |_|_|___ ___| |_|_|___ ___
| . | . | | -_|_|_| | . | |
|___|___| |___|___|_| |_|___|_|_|
|___|(object)inject(ion)
Runtime Mobile Exploration
by: @leonjza from @sensepost
Options:
-N, --network Connect using a network connection instead of USB.
-h, --host TEXT
-p, --port INTEGER
-ah, --api-host TEXT
-ap, --api-port INTEGER
-n, --name TEXT Name or bundle identifier to attach to.
-S, --serial TEXT A device serial to connect to.
-d, --debug Enable debug mode with verbose output.
-s, --spawn Spawn the target.
-p, --no-pause Resume the target immediately.
-f, --foremost Use the current foremost application.
--debugger Enable the Chrome debug port.
--uid TEXT Specify the uid to run as (Android only).
--help Show this message and exit.
Commands:
api Start the objection API server in headless mode.
patchapkPatch an APK with the frida-gadget.so.
patchipaPatch an IPA with the FridaGadget dylib.
run Run a single objection command.
signapk Zipalign and sign an APK with the objection key.
start Start a new session
version Prints the current version and exits.
```
# PPS
单元测试不通过,影响未知。。。 其他版本不确定,但至少以下版本的组合是不可以的。在objection里面执行frida直接报异常了
frida 16.3.3
frida-tools 12.4.3
objection 1.11.0
A Frida agent exception has occurred.
Error: java.lang.ClassNotFoundException: Didn't find class "android.hardware.display.DisplayManager.pauseWifiDisplay" on path: DexPathList[,nativeLibraryDirectories=] 按照楼主的步骤重新编译后,在objection里面确实能正确显示frida版本号了。
for command suggestions
设置 (run) on (Android: 9) # frida
---------------------------
Frida Version 16.3.3
Process Architecturex64
Process Platform linux
Debugger Attached False
Script Runtime QJS
Frida Heap Size 5.6 MiB
---------------------------
感谢楼主提供的方法。 不错,高版本的问题可以解决 我竟然没有遇到这种问题,一直用的15、16的frida和objection......没啥影响 我竟然没有遇到这种问题 一直用的15的frida,没遇到objection报错 在未root的手机上,安装用objection patchapk的apk并启动后,frida-ps 看不到Gadget进程,objection连接提示
Unable to connect to the frida server: need Gadget to attach on jailed Android; its default location is: C:\Users\xxx\AppData\Local\Microsoft\Windows\INetCache\frida\gadget-android-arm64.so kk1024lyl 发表于 2023-12-29 10:22
我竟然没有遇到这种问题,一直用的15、16的frida和objection......没啥影响
你的objection是哪一个版本的呢 虽然没遇到过Objection兼容问题,但还是要学习一下,以后遇到了不至于懵逼。 完美解决我的问题 bilibioo 发表于 2024-3-11 11:27
你的objection是哪一个版本的呢
objection: 1.11.0
页:
[1]
2