免root使用frida
Frida自吐算法演示Java.perform(function () { function showStacks() { console.log( Java.use("android.util.Log") .getStackTraceString( Java.use("java.lang.Throwable").$new() ) ); } function logOutPut(msg) { Java.use("android.util.Log").d("xiaojianbang", "frida inject: " + msg); } var ByteString = Java.use("com.android.okhttp.okio ...
objection
objection的安装
objection的使用
objection的插件
frida
静态方法和实例方法的hook
不需要区分修饰符,也不需要区分静态和实例方法,hook代码的写法都是一样的
得到Money类对象
var money = Java.use("com.xiaojianbang.hook.Money");
hook实例方法
money.getInfo.implementation = function(){ var result = this.getInfo(); console.log("money.getInfo result:",result); return result;}
hook静态方法
money.setFlag.implementation = function(a){ console.log("money.setFlag parmm:",a); return this.setFlag(a);}
函数参数和返回值的修改var money = Java.use("com.xiaojianbang. ...
关键代码快速定位
hook一些重要函数Java.perform(function () { function showStacks() { console.log( Java.use("android.util.Log") .getStackTraceString( Java.use("java.lang.Throwable").$new() ) ); } // var hashMap = Java.use("java.util.HashMap"); // hashMap.put.implementation = function (a, b) { // if(a.equals("username")){ // showStacks(); // co ...
嘟嘟牛算法复现
;(function (root, factory) { if (typeof exports === "object") { module.exports = exports = factory(); } else if (typeof define === "function" && define.amd) { define([], factory); } else { root.CryptoJS = factory(); }}(this, function () { var CryptoJS = CryptoJS || (function (Math, undefined) { var create = Object.create || (function () { function F() { ...
frida hook的使用
使用frida-hook分析嘟嘟牛加密方法首先使用PKiD查壳,发现没有加壳
查找加密方法时,发现有两个加密函数,使用frida-hook分析走了哪一个加密函数
frida-hook脚本
//如果是Java hook代码都放到Java.perform中Java.perform(function () { var JsonRequest = Java.use("com.dodonew.online.http.JsonRequest"); console.log("JsonRequest:",JsonRequest); JsonRequest.paraMap.implementation = function (a) { console.log("paraMap",a); this.paraMap(a); } JsonRequest.addRequestMap.overload('java.util.Map', ...
JS快速入门
JavaScript介绍JavaScript是一种轻量级的脚本语言。所谓”脚本语言”,指的是它不具备开发操作系统的能力,而是用来编写其他大型应用程序的”脚本”。
JS的语句标识符语句JavaScript程序的单位是行(line),也就是一行一行的执行。一般情况下,每一行就是一个语句
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title></head><body> <script> var num = 10; var username = "iwen"; ...
FridaHook环境搭建
frida的卸载pip uninstall frida;pip uninstall frida-tools;
frida的安装这里有个一直报错的点,需要下载对应的egg文件
pip install frida==14.2.18pip install frida-tools==9.2.5
检验frida是否安装成功frida --version,出来版本号说明frida-tools安装成功pythonimport frida,如果没有任何报错,代表安装的没有问题
安装frida-serveradb push frida-server-14.2.18-android-arm64 /data/local/tmp/
手机端启动frida-serverchmod 777 /data/local/tmp/frida-server-14.2.18-android-arm64/data/local/tmp/frida-server-14.2.18-android-arm64 &//启动成功后会显示[1] 21228
结束frida-server的方法pkill frida-serve ...
app界面控件查看-通过控件定位代码
app界面控件的查看
抓包环境配置
抓包工具
虚拟机桥接模式不能使用校园网
public.xml中显示硬编码和name的关系,string.xml中显示name和字符串的关系
r0capture的使用方法1、配置python环境
2、安装frida和frida-tools
这里指定版本会出问题,默认用最新的
pip install fridapip install frida-tools
3、将frida-server推送进手机端
adb push frida-server-14.2.18-android-arm64 /data/local/tmp/
4、手机端启动frida-server
chmod 777 /data/local/tmp/frida-server-14.2.18-android-arm64//提升权限/data/local/tmp/frida-server-14.2.18-android-arm64 &[1] 21228
5、PC端
attach模式,抓包内容可以保存成pcap文件供后续分析 python r0capture.py -U com.qiyi.video -v - ...