9

基于frida的hook工具--Objection

 3 years ago
source link: http://blog.wen2go.site/2022/02/13/%E5%9F%BA%E4%BA%8Efrida%E7%9A%84hook%E5%B7%A5%E5%85%B7-Objection/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Objection太强了,告别敲代码的方式,快速动态trace,时间就是生命,用上就会戒不掉,且支持iosandroid

官方文档: https://github.com/sensepost/objection

  1. ps: python >= 3.4 且安装了frida, 参考

    pip3 install Objection
    • 直接终端输入objection,输出如下内容就成功了

    image-20220213225514319

    • 进入交互式界面

      objection -g apkname explore

      image-20220213230503828

    • 不知道指令直接按空格键,objection很人性化,只要按空格键就会弹出提示,然后按上下键选择需要使用的指令

      image-20220213230632786

      ​ 看上图提示已经很明显了,指令和含义都很清晰

      !		  执行操作系统命令
      pwd 打印当前工作目录
      cd 切换到指定目录
      ls 列出当前工作目录文件
      rm 删除远程设备的文件
      exit 退出
      env 打印有关环境的信息
      android android特有的命令
      ios ios特有的命令
      commands 处理当前会话中运行的命令
      file 操作远程设备的文件
      frida 获取frida的环境信息
      import 从一个完整的路径导入fridascript脚本并运行
      jobs 操作objection的任务列表
      memory 处理当前进程内存信息
      ping 检测当前注入状态
      plugin 使用插件,例如:dedump、wallbreaker
      reconnect 重新连接当前设备
      sqlite 使用sql指令
      ui 通用用户界面指令
  2. 常用指令简介

    • 从当前设备下载文件(不加ouput路径,下载到用户目录下)

      file download [filename] [outputfile]
    • 列出app所有的activityservices

      android hooking list activities/services
    • 列出内存中所有的类

      android hooking list classes
    • 搜索内存中已加载的类中包含特定关键词的类

      android hooking search classes [search_name] 
    • 搜索内存中已加载的方法中包含特定关键词的方法

      android hooking search classes [search_name] 
    • 堆内存中搜索指定类的实例, 可以获取该类的实例id

      android heap search instances search instances com.xx.xx.class
    • 直接执行指定实例下的方法

      android heap execute [ins_id] [func_name] 
    • 尝试关闭approot检测

      android root disable
    • 尝试模拟root环境

      android root simulate
    • 启动指定activity

      android intent launch_activity [activity_class]
    • 启动指定services

      android intent launch_service [services_class]
    • 关闭 app ssl 校验

      android sslpinning disable
    • 查看任务列表

      jobs list
    • jobs kill [task_id]
    • Spawn方式Hook, 用于hook启动阶段的操作,启动objection的时候就要设置

      objection -g packageName explore --startup-command '[obejection_command]'
    • hooking指定方法,如果重载会hook所有方法,这时我们可以添加参数辅助分析

      --dump-args : 打印参数

      --dump-backtrace : 打印调用栈

      --dump-return : 打印返回值

      android hooking watch class_method com.xxx.xxx --dump-args --dump-backtrace --dump-return
    • hooking指定类,方便我们动态trace关键函数

      android hooking watch class com.xxx.xxx
    • 设置返回值(只支持bool类型)

      android hooking set return_value  com.xxx.xxx.methodName false
    • 之前研究过的一个app,当时定位了好久,敲frida代码,一个函数一个函数hook,属实有些慢。。。现在直接objection上,直接配合静态分析,hook整个类,下面4个重载的a函数。

      image-20220214002552875

    • 使用jobs list 可以看到当前任务列表有一个任务,id892906

      image-20220214002801212

    • 滑动app页面触发加密函数,发现控制台a函数被调用,说明刚才滑动页面的网络请求,调用了类中的a函数

      image-20220214003206254

    • 下面使用jobs kill 892906 删除当前任务 ,再hook a函数, 因为a有重载,所以一并打印参数和返回值

      image-20220214003616619

    • 然后滑动页面,查看hook结果,调用栈很清晰,return的值就是加密结果

      image-20220214003816317

    • 查看堆栈,通过静态分析,使用之前套路定位到生成加密参数的位置,参数和返回值一目了然

      image-20220214004411061

    本文主要介绍objection,静态分析主要是使用jadx,不做详细介绍

    文章写的比较乱,刚开始学习使用objection,很多不熟悉的地方和理解不清晰的功能,希望大佬们带带弟弟。


Recommend

  • 75

    objection.js - An SQL-friendly ORM for Node.js

  • 14

    Frida-跨平台注入工具基础篇 瘦蛟舞 ·

  • 43
    • 微信 mp.weixin.qq.com 5 years ago
    • Cache

    Hook梦幻旅途之Frida

    这是  酒仙桥六号部队  的第  75   篇文章。 全文共计8297个字,...

  • 20

    在进行安卓安全研究时,hook技术是不可或缺的,常用的有Xposed:Java层的HOOK框架,由于要修改Zgote进程,需要Root,体验过Xposed,整个过程还是很繁琐的,并且无法hook,native层的。作为一名安卓菜鸟,Frida明显更方便,更适合我,结合现...

  • 9
    • shingle.me 4 years ago
    • Cache

    Frida实战hook学习笔记

    Frida实战hook学习笔记 2019-09-05 12:38:53 code 约 961 字 预计阅读 2 分钟 1298 次阅...

  • 6

    0x1 介绍 Objection是一款基于frida的hook框架,由于frida需要我们自己编写脚本,使用比较麻烦,objection内置了在安卓和IOS逆向中常用的一些hook脚本,我们通过简单的命令行就可以进行hook,非常方便。 0x2 objection环境配置   1.依...

  • 12
    • blog.wen2go.site 3 years ago
    • Cache

    脱壳工具frida-dexdump

    葫芦娃大佬的脱壳工具firda-dexdump,一键式脱壳,方便快捷,号称三秒脱一壳!!!git仓库:https://github.com/hluwa/FRIDA-DEXDump文档介绍了三种使用方...

  • 8
    • sunny250.github.io 3 years ago
    • Cache

    hook神器FRIDA

    hook神器FRIDA0x00 安装 使用python 一键安装 pip3 install fridapip3 install frida-tools 在安卓手机上安装frida-server 下载地址...

  • 4
    • blog.51cto.com 3 years ago
    • Cache

    Frida 实现 Hook 功能的强大能力

    技术分享 | Frida 实现 Hook 功能的强大能力​ ​更多技术文章​​Frida 通过 C 语言将 QuickJS 注入到...

  • 8

    FRIDA与安卓:动态代码插桩的强大工具 在移动安全领域,分析和调试安卓应用程序的能力至关重要。FRIDA是一个动态代码插桩框架,它为研究人员和开发者提供了一种强大的方法来钩子和修改运行在安卓设备上的代码。FRIDA的核心价值在于它能够在不修...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK