lhro 发表于 2023-12-21 22:02

高版本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
单元测试不通过,影响未知。。。

xuri422 发表于 2024-7-26 11:20

其他版本不确定,但至少以下版本的组合是不可以的。在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=]

xuri422 发表于 2024-7-26 11:44

按照楼主的步骤重新编译后,在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
---------------------------
感谢楼主提供的方法。

xixicoco 发表于 2023-12-22 22:06

不错,高版本的问题可以解决

kk1024lyl 发表于 2023-12-29 10:22

我竟然没有遇到这种问题,一直用的15、16的frida和objection......没啥影响

wantwill 发表于 2023-12-29 11:56

我竟然没有遇到这种问题

WXjzc 发表于 2024-1-6 17:23

一直用的15的frida,没遇到objection报错

一片小朵朵 发表于 2024-2-22 17:56

在未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

bilibioo 发表于 2024-3-11 11:27

kk1024lyl 发表于 2023-12-29 10:22
我竟然没有遇到这种问题,一直用的15、16的frida和objection......没啥影响

你的objection是哪一个版本的呢

ShadowJokerN7 发表于 2024-3-11 14:47

虽然没遇到过Objection兼容问题,但还是要学习一下,以后遇到了不至于懵逼。

timel0rd 发表于 2024-3-22 09:55

完美解决我的问题

kk1024lyl 发表于 2024-4-7 13:25

bilibioo 发表于 2024-3-11 11:27
你的objection是哪一个版本的呢

objection: 1.11.0
页: [1] 2
查看完整版本: 高版本frida使用objection的方法