java hook 框架_hook框架-frida简单使用模板以及frida相关接口
一目录结构
├── test.py #py脚本
└── test.js #js脚本
一.py脚本
test.py
import frida
import sys
#连接设备app
dev=frida.get_usb_device() # get_usb_device获取设备
PACKAGE = 'cn.soulapp.android' # 包名
process = dev.attach(PACKAGE) # 获取给定包名的app进程
#运行脚本
#获取js脚本内容
with open('test.js', 'r') as fr:
js_test=fr.read()
script = process.create_script(js_test) # 这里是把你的js脚本给塞进了process
#可以获取打印效果
def show(message,data):
print(message)
script.on("message",show)
# 加载脚本
script.load()
sys.stdin.read()
二.js脚本
Java.perform(function(){ //固定写法所有脚本就要丢在里面
var c =Java.use('cn.soulapp.android.utils.j'); //Java.use获取cn.soulapp.android.utils.j这个类
c.e.implementation =function(a){return false}; //类的方法复制
});
三.frida相关接口
一.Java.perform(function(){}):
返回值:空
用途:这是frida的main,所有的脚本必须放在这个里面
二. Java.use(类名)
返回值:类的对象
用途:动态获取一个类的对象
拓展:$new()实例化对象, $dispose()销毁对象
三.Java.available
返回值:boolean。
用途:确认当前进程的java虚拟机是否已经启动,虚拟机包括Dalbik或者ART等。虚拟机没有启动的情况下不要唤醒其他java的属性或者方法。
四.Java.enumerateLoadedClasses(callbacks)
返回值:无
参数:回调函数
用途:列出当前已经加载的类,用回调函数处理
回调函数:
onMatch:function(className){ }
找到加载的每个类的时候被调用,参数就是类的名字,这个参数可以传给java.use()来获得一个js类包
onComplete: function ():
列出所有类之后被调用 ,也就是完成后做一些扫尾工作
五.Java.enumerateLoadedClassesSync()
返回值:所有已经加载的类的数组。
六.Java.scheduleOnMainThread(function(){}):
返回值:无
用途:在线程上运行指定的函数
七.Java.choose(className, callbacks):
用途:查找堆中指定类的实例。获得实例后可以调用实例的函数
回调函数
onMatch: function (instance)
每次找到 指定类的实例后调用,
onComplete: function ()
完成时调用
八.Java.cast(handle, klass)
返回值:类的对象
参数:句柄(ptr),klass(use()的返回值)
用途:用来获取 指定内存地址的类的实例 的对象。这个对象有类属性,可以得到所属类的对象。还有$className属性过去类名的字符串。一个对象有可能有很多实例
例子:
var Activity = Java.use("android.app.Activity");
var activity = Java.cast(ptr("0x1234"), Activity);
四.总结
java接口的api中,perform是必须用,没什么实际作用。use是最常用的,用来获取类的对象,获取对象后就可以替换具体方法的实现了,相当于修改源码!!choose和cast是针对运行时对象的实例,相当于动态调试过程中获取信息。
java hook 框架_hook框架-frida简单使用模板以及frida相关接口相关推荐
- 简单介绍一下Java常用的五大框架!
Java框架在Java开发中的作用是毋庸置疑的.那么Java常用框架有哪些?大概包括:Hibernate.Spring.Struts.jQuery.Redis五种.这些框架有什么用呢?Java常用框架 ...
- java认证框架_sa-token 一个的JavaWeb权限认证框架,强大、简单、好用
sa-token是什么? 一个的JavaWeb权限认证框架,强大.简单.好用 与其它权限认证框架相比,sa-token尽力保证两点: 上手简单:能自动化的配置全部自动化,不让你费脑子 功能强大:能涵盖 ...
- java 中常用框架、intell idea简单使用、爬虫系统
学习:http://www.ityouknow.com/spring-boot.html http://blog.didispace.com/spring-boot-learning-1/ ***in ...
- java上传ddi_Android平台dalvik模式下java Hook框架ddi的分析(2)--dex文件的注入和调用...
前面的博客<Android平台dalvik模式下java Hook框架 ddi 的分析(1)>中,已经分析了dalvik模式下 ddi 框架Hook java方法的原理和流程,这里来学习一 ...
- Android平台dalvik模式下java Hook框架ddi的分析(2)--dex文件的注入和调用
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/77942585 前面的博客<Android平台dalvik模式下java Ho ...
- Android平台dalvik模式下java Hook框架ddi的分析(1)
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/75710411 一.前 言 在前面的博客中已经学习了作者crmulliner编写的, ...
- 【Android 插件化】Hook 插件化框架 ( 从 Hook 应用角度分析 Activity 启动流程 一 | Activity 进程相关源码 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- 【Android 插件化】Hook 插件化框架 ( Hook 技术 | 代理模式 | 静态代理 | 动态代理 )
Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...
- 知识笔记 - sekiro RPC框架的安装与简单使用
文章旨在学习和记录,若有侵权,请联系删除 文章目录 前言 一.sekiro是什么 1. 简介 2. 逻辑结构 3. 运行流程 4. 下载和部署 二.如何开发sekiro客户端 1.打开平头哥项目 2. ...
最新文章
- jS四种函数的调用方式
- 检察机关计算机涉密案例,三原县检察院:扎实做好新时代检察机关保密工作
- 如何在 ASP.NET Core 中实现全局异常拦截
- wordpress CAS
- 颜色空间直方图matlab,使用Matlab绘制图像的rgb颜色空间和Lab颜色空间分量图和分量直方图 | 学步园...
- Linux入门之inode解析及管道重定向
- spring AOP的方式监控方法的执行时间
- showModalDialog的用法
- delphi2010安装
- 电子系统中的品质因数
- SQL摘录笔记 --分组数据(5)
- 2020年国赛A题目思路(高教杯全国大学生数学建模竞赛)
- 矩阵的转置等于矩阵的逆
- window.scrollTo滚动
- 【CVPR 2020】蒸馏篇(四):Online Knowledge Distillation via Collaborative Learning
- gazebo mesh尝试dae
- Fwd: Nginx Rewrite研究笔记
- js基础(4) -- 数据类型
- 少儿编程开讲了:围棋AI人工智能是如何设计的?揭秘AI神秘面纱!
- 上海市考 计算机类岗位,2021年上海市公务员考试职位分析,法学类专业报考优势大...
热门文章
- MySQL创建存储过程(CREATE PROCEDURE)
- 1.1 Java异常(Exception)处理及常见异常
- 2018 年 ACM-ICPC 焦作站现场赛感受
- 1001 A+B Format (20 分)【难度: 简单 / 知识点: 模拟】
- Redis的Expire与Setex
- ActiveMQ中Topic消费者
- python用turtle库绘制树图形_使用Python中的Turtle库绘制简单的图形
- 【Java】5.2 方法详解
- 【PAT】A1060 Are They Equal *
- 华为:鸿蒙OS要一统江湖!