Objection命令
zsk Lv4

安装frida 12.8.0全家桶

1
2
3
pip install frida==12.8.0
pip install frida-tools==5.3.0
pip install objection==1.8.4

frida切换端口

1
./frida-server-12.8.10-android-arm64 -v -l 0.0.0.0:9999

根据端口连接

1
frida -H 192.168.137.148:9999 -F

查看进程端口

1
netstat -tuulp |grep fs

objection通过端口连接

1
objection -N -h 192.168.137.148 -p 9999 -g com.android.settings explore

列出所有的类

1
android hooking list classes

在手机上启动frida-server,并且点击启动“设置”图标,手机进入设置的界面,首先查看一下“设置”应用的包名

1
2
3
# frida-ps -U|grep -i setting
7107 com.android.settings
13370 com.google.android.settings.intelligence

再使用objection注入“设置”应用。

1
# objection -g com.android.settings explore
  • 查看内存中加载的库

运行命令memory list modules

  • 查看库的导出函数

运行命令memory list exports libssl.so

  • 将结果保存到json文件中

当结果太多,终端无法全部显示的时候,可以将结果导出到文件中,然后使用其他软件查看内容

1
2
3
# memory list exports libart.so --json /root/libart.json  
Writing exports as json to /root/libart.json...
Wrote exports to: /root/libart.json

批量Hook

1
objection -g 包名 explore -c "path"

搜索文件下含有关键字

1
grep -ril "okhttp3" *

第二种  使用无线WiFi连接
首先先了解一点底层的知识:
    Android系统底层运行着一个服务(adbd),用于响应和管理大家在电脑端的adb命令连接,这个服务在启动时会根据手机的配置监听USB连接或网络其中之一。配置的属性为:service.adb.tcp.port,也就是监听的网络端口
•以上属性的值 > 0:adbd将监听网络对应的端口(一般为5555)
•以上属性的值 <=-1:adbd将监听USB
接下来是连接步骤:
命令行输入:adb connect (ip):5555
提示:unable to connect to (ip):5555
解决办法:
   1)手机与PC相连,执行以下命令:adb tcpip 5555
     成功提示:restarting in TCP mode port 5555  
   然后断开USB
     错误提示:error:device not found
     查看手机USB调试是否打开;PC端是否安装手机驱动。
   2)接着执行adb connect (ip):5555,这时候应该就能连接成功了
     成功提示:connected to (ip):5555
调试完成之后,输入如下的命令断开连接:
adb disconnect (ip):5555

列出所有activity

1
android hooking list activities

跳到某一个activuty界面

1
android intent launch_activity ***Activity

列出所有services

1
android hooking list services

从内存中搜索实例类

1
android heap search instances ***

搜索到类的方法是否存在

1
android heap execute 类的地址值 方法名

查看实例类的地址

1
plugin wallbreaker objectsearch ****

根据地址查看该类属性

1
plugin wallbreaker objectdump ****

启动app并执行

1
objection -g 包名 explore --startup-command "android hooking watch ... --dump-args --dump-backtrace --dump-return" 
1
objection -g 包名 explore -s "android hooking watch ... --dump-args --dump-backtrace --dump-return" 

如何使用objection去批量hook和trace?比如一次性hook几千个类?

  1. 把~/.objection/objection.log删掉;
  2. 到objection界面中运行android hooking list classes,列出所有的类;
  3. 对新生成的~/.objection/objection.log文件进行过滤,比如只关心http相关的。cat objection.log|grep -i http
  4. 将输出结果保存到一个excel列中,前面补全android hooking watch class xxxxx,另存为文本文件。如附件所示
  5. 加载这个文件:objection -g com.android.settings explore -c “2.txt” ,这样一下子就hook上了几千个相关类的所有方法及其所有重载。
  6. 如果trace感兴趣的方法也是同理,android hooking search methods * ,会打印出所有的方法。

安装objection插件

安装FRIDA_DEXDump

1
git clone https://github.com/hluwa/FRIDA-DEXDump ~/Downloads/FRIDA-DEXDump;

把frida_dexdumpp移到/root/.objection/plugins/下

1
mv /root/Downloads/FRIDA-DEXDump/frida_dexdump /root/.objection/plugins/

使用方法

1
objection -g com.app.name explore -P ~/.objection/plugins

https://github.com/hluwa/FRIDA-DEXDump


安装Wallbreaker

1
git clone https://github.com/hluwa/Wallbreaker ~/.objection/plugins/Wallbreaker

https://github.com/hluwa/Wallbreaker


wallbreaker

导入(win下)

1
plugin load .objection/plugins/Wallbreaker

查看类的结构

1
plugin wallbreaker classdump ***

根据名字找类

1
plugin wallbreaker classsearch ***

查看类的实例的内容

1
plugin wallbreaker objectdump --fullname ***

找出类的实例

1
plugin wallbreaker objectsearch ***
 评论