Frida Hook方法2
补充前面的知识
Hook学习常见问题
- Java基础不够的问题
- 搜索不太靠谱,需要更精准更通用的方式来定位关键代码Java:hook系统函数、沙盒、自吐
- Frida功能强大,但对其API的使用还需要进一步熟悉
- Frida代码比较简洁、容易上手,但还是太繁琐,是否有更简单的方式
Java:Objection、沙盒、自吐
so:目前没有太好用的工具,只能自己对Frida APl做一些简单封装,或者开发和使用一些简单的工具 - 如果app存在root检测等,Frida是否有其他执行的方式
frida-server(CLIPython方t)、 frida-inject、 frida-gadget - 算法加密经常用到一些标准算法,对于Java和C的标准算法的实现都还不熟悉
- 算法还原通常选用一个自己熟悉的语言去复现
比如选择avaScript,但该语言的加解密也还不熟悉 - 当app有限制的时候如何处理
dex加固、so加固、抓包检测、Hook检测、root检测
关键代码快速定位
- HashMap的put、get方法
- Java和Frida代码的互相翻译
- ArrayList的add、addAll、set方法等
- TextUtils的isEmpty方法
- Log
- Collections的sort方法
获取函数调用栈
1 | # 安卓的 Java开发中,使用如下方式打印调用栈: |
在frida的js中
1 | Java.perform(function () { |
APP在系统调用的时候会调用非常多的函数,所以要用判断进行过滤,比如
1 | hashMap.put.implementation = function (a, b){ |
川公网安备51010702042859号