apk的hook机制

前言

web端爬虫,可以通过js debug机制断点调试。而做为更加热门的android如何完成呢?

获取apk及源码

  1. 通过手机下载对应apk
  2. 使用adb pull 命令取出《使用adb命令取出手机中的apk
  3. 将apk后缀改成zip,或者rar.解压得到dex文件
  4. 通过dex2jar工具将dex转换成jar文件《apktool、dex2jar、jd-gui的区别及详解
  5. 最后能过jd-gui反编译,阅读源码
  6. 如果觉的4,5步骤太麻烦,可以直接《jadx》直接翻译dex

frida hook

有时候简单的通过阅读源码不能有效的解决问题,需要运行时数据辅助。frida通过插桩技术帮我们完成,其步骤

  1. 通过《frida入门总结》中的步骤安装 frida
  2. 1步骤中语法不清楚,可参考《Frida官方手册 》或者百度“Frida官方手册中文版”
  3. 根据源码,编写脚本查看运行时数据

frida 脱壳

有些app有通过加壳的方式让保护源读《App解固脱壳方式》,加壳方法有多种,我们可以利用frida方式进行脱壳

  1. 在《IDA官网》获取IDA,然后《IDA静态分析so文件》方式找到android中openMemery加载class的标识
  2. 按《用Frida对APP脱壳》步骤获取源码

xpose hook

使用以述办法,获取源码。通过frida找到露洞后. 总要和java通讯的吧。一般使用 NPS+frida/NPS + NanoHTTP。相比于frida借助于adb, xpose + NanoHTTP 更舒服

  1. 去下载《MUMU模拟器》要之前的版本,当前版本都是x64的。老点的会自动更新成x86
  2. 按照《xposed开发入门向之入门前准备工作 模拟器安装xposed框架》去下载对应的zip
  3. 按2步骤做完,可能不会有对应的install按钮,请按下图勾选
    在这里插入图片描述
  4. 接入 Sekiro 替换 NanoHTTP的理由《APP长连接通讯Sekiro
  5. Sekiro简介

Guess you like

Origin blog.csdn.net/y3over/article/details/120220480