| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> objection 基本使用 -> 正文阅读 |
|
[移动开发]objection 基本使用 |
objection 默认通过USB连接设备,这里就不必和Frida 一样通过 -U参数指定USB模式连接,同时通过 -g 参数指定注入的进程并通过export命令进入REPL模式,进入REPL模式后就可以使用objection进行hook的常用命令。 objection 通过 -N 参数来指定网络中的设备同通过 -h 参数和 -p 参数指定对应设备的IP和端口进行连接,从而完成对网络设备的注入与Hook,除外还可以通过patchapk命令将frida-gadget.so打包进App。 接下来以安卓手机里面的设置为例 1、连接 usb手机 2、运行 frida-server 3、在手机上打开设置 4、通过 Frida-ps 找到对应的设置包名 frida-ps -U | grep setting 5、找到包名后通过objection注入设置应用,注入成功后便进入了objection的REPL界面。 objection -g 设置 explore ?6、在进入objection的repl界面后, 可以通过空格键显示提示命令。 7、在不知道命令什么作用的时候,在要使用的命令前假help就会出现解释。 8、jobs命令用于查看和管理当前所执行hook的任务,可以同时运行多项hook作业。 9、内存漫游 objection 可以快速便捷的打印出内存中的各种类相关信息,对app快速定位有着无可比拟的优势。 9.1、列出内存中的所有类 android hooking list classes ? 9.2、可以使用以下命令在内存中已加载的类中搜索包含特定的关键词的类。 android hooking search classes 比如:android hooking search classes display ?9.3 、可以使用以下命令在内存中搜索所有包含关键词key的方法 android hooking search methods <key> android hooking search methods display ? 9.4、搜索到我们感兴趣的类后,可以使用下面的命令查看关心类的所有方法 android hooking list class_methods android hooking list class_methods android.hardware.display.IDisplayManager ? 9.5、列出进程所有的activity(活动) android hooking list activities ? 9.6、列出进程所有server 服务 android hooking list services ? 9.7、列出进程所有receivers(接收器) android hooking list receivers ? 9.8、通过以下命令对指定的方法进行hook 参数 :--dump-args 打印函数参数、--dump-backtrace 调用栈、--dump-return返回值 android hooking watch class_method <methoName> --dump-args --dump-backtrace --dump-return ?可以通过 工作job查看作业相关信息 ID和上面的ID 对应、hook函数的数量、 ? 在手机设置里随便点击位置会发现 Called java.io.File.File(java.io.File, java.lang.String) 被调用了,在 Backtrace 之后打印的是调用栈可以清楚的看到这个构造函数的调用来源,顺序是从下至上,根据Arguments 哪一行会发现打开的文件路径是 java.io.File.File(/data/user_de/0/com.android.settings, shared_prefs) shared_prefs是文件名,返回参数是空 Return Value: (none) 表名这个函数没有返回值。 ?9.9、结束进程 jobs kill 708598 9.10、除了Hook一个函数外,objection 还可以通过以下命令实现对指定类classname中所有函数的hook(这里的所有的函数并不包括构造函数hook) hook java.io.File 类下的所有方法 android hooking watch class java.io.File ?一个类下一共Hook了56个方法 ?最终Hook效果如下,这里的调用顺序是从上到下的 9.11 、frida的一大特色,主动调用早objection中的使用,基于最简单的java.choose的实现,在frida脚本中对实例的搜索在objection中使用以下命令实现 android heap search instances <classname> 以java.io.File为例,搜索到很多File实例,并且打印出Handle和toString(), handle非常重要在之后的主动调用中都是以这个十六进制的handle值作为实例的句柄和执行函数。
第一种不带参数的调用实例的方法。 android heap execute <Handle> <methodname> 例子:android heap execute 1068086893 getPath ? 第二种带参数的调用实例的方法 android heap evaluate <Handle> ?会进入个迷你编辑器在里面输入想要执行的脚本内容,按esc退出,按回车就会执行脚本并输出结果。 clazz 用于代表handle值为 1068086893 所对应的实例 canWrite()函数用于返回这个实例所打开的文件是否可写 setWritable(false) 用于修改对应文件是否可写的属性 ? |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 | -2025/2/28 23:55:59- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |