在前面的系列文章中对Frida相关的API进行了介绍。


文章目录

  • Hook everything
  • 内存漫游
  • 启动objection
  • Hook anywhere
  • 启动Activity或者Service
  • objection的缺陷
  • 退出
  • 抓包
  • 公众号


Hook everything

Frida只是提供了各种API供我们调用,在此基础之上可以实现具体的功能,比如禁用证书绑定之类的脚本,就是使用Frida的各种API来组合编写而成。于是有大佬将各种常见、常用的功能整合进一个工具,供我们直接在命令行中使用,这个工具便是objection。

objection基本整合了常用的各种hook功能,在逆向apk、Hook代码、查看内存信息的时候为我们提供极大的方便。使用objection掌握常用的命令,大部分情况下是不需要写任何代码的。

Frida进阶之内存漫游以及简单抓包_搜索

内存漫游

启动objection

保证Frida server开启
命令行输出

objection -g com.lingpao.lpcf622b explore
  1. 查看基本信息
  2. Frida进阶之内存漫游以及简单抓包_android_02

  3. 查看内存中加载的库 memory list modules
  4. Frida进阶之内存漫游以及简单抓包_API_03

  5. 查看库的的导出函数 memory list exports libgsl.so
  6. Frida进阶之内存漫游以及简单抓包_API_04

  7. 提取整个内存 memory dump all from_base
  8. Frida进阶之内存漫游以及简单抓包_搜索_05

  9. 后续文章会对dump出的内存做详细的分析。
  10. 搜索整个内存 memory search "88" --string --offsets-only, 关于如何进行的搜索,在Frida API使用(2)中介绍了通过Frida进行搜索。Objection对通配符的支持不好。

Hook anywhere

  1. 列举内存中的所有类 android hooking list classes
  2. 在内存中所有已加载的类中搜索包含特定关键词的类 android hooking search classes game
  3. 内存中搜索所有的方法 android hooking search methods game非常耗时的一个操作。
  4. 列出类的所有方法 android hooking list class_methods com.fish.main.MainGameActivity
  5. 直接生成hook代码 android hooking generate simple com.fish.main.MainGameActivity没有参数,需要自行添加。
  6. hook类的所有方法 android hooking watch class com.fish.main.MainGameActivity当需要调用相应的方法的方法的时候,可以看出相应的hook信息被打印出来。关于Activity的声明周期在Frida API进阶-文件有介绍。
  7. hook方法的参数、返回值和调用栈 android hooking watch class_method com.fish.main.MainGameActivity.onWindowFocusChanged --dump-args --dump-return --dump-backtrace
  8. hook方法的所有重载 android hooking watch class_method java.io.File.$init --dump-args

启动Activity或者Service

  1. 查看当前可用的Activity android hooking list activities
  2. 直接启动activity android intent launch_activity com.zhihu.matisse.ui.MatisseActivity
  3. 查看可开启的服务 android hooking list services
  4. 开启服务 android intent launch_service com.cameraphotodemo.localnotificationfunction.ExtFuncUtils$DetectService

objection的缺陷

  • 缺少对Native层的支持
  • 对象类型的数据打印有问题,比如Byte array和Json,会显示成[object,object]
  • 对Spawn方式启动的支持不够流畅

退出

exit

抓包

Tcpdump进行抓包,具体可参见下图,后续文章会详细讲解抓包。

Frida进阶之内存漫游以及简单抓包_API_06

通过tcpdump -h可以查看每一个参数的含义。

公众号

更多Frida相关内容,欢迎关注我的微信公众号:无情剑客。

Frida进阶之内存漫游以及简单抓包_搜索_07