type
status
date
slug
summary
tags
category
icon
password
一、 主动调用类方法(java静态方法)
函数是有static关键字修饰的,所以是个类方法(静态方法)。
调用格式:类名引用.方法名(参数,...)
二、 主动调用native类方法 (静态native方法)
这个函数有static关键字的 所以是个类方法(静态方法)这里有native 关键字 所以是个静态的c方法
调用格式:类名引用.方法名(参数,...)
三、主动调用对象的java方法
函数是没有static关键字,所以是个对象方法(实例方法)
主动调用有2种方式:
- 直接获取内存中已存在的对象(建议使用)
- 创建一个新对象
因为运行过程中对象的成员的值可能已经发生变化,所以如果创建一个对象,新对象的值还是初始值,在调用算法或者函数的时候,可能会产生影响。 所以这里建议直接获取内存中已经有的对象
调用格式:
- instance.方法名(参数,...) //直接获取已有对象
- 类名引用.方法名(参数,...) //新创建的对象
1、直接获取内存中对象主动调用
Frida的api:
主动调用代码
2、创建一个新对象主动调用代码
Frida创建对象的语法 $new()
$new()是调用类的构造函数,新建一个对象。
注意两点
- 如果 没有构造函数 或 构造函数没有参数 直接写$new()
- 如果 构造函数有参数,那么一定要填参数 $new(参数,...)
创建一个对象,主动调用代码
四、主动调用对象的native方法
这个函数是没有有static关键字的,所以是个对象方法(实例方法)。
主动调用有2种方式:
- 直接获取内存中已存在的对象
- 自己创建一个新对象
建议直接获取内存中已经有的对象
调用格式:
- instance.方法名(参数,...) //直接获取已有对象
- 类名引用.方法名(参数,...) //新创建的对象
1、直接获取内存中对象主动调用
2、创建一个新对象主动调用代码
五、主动调用so方法
Frida用于调用c层函数的API
- address:要hook的函数地址
- returnType:返回值类型
- argTypes[, abi]: 参数类型 这里参数可以是多个
NativeFunction支持的类型
参数有两个 一个是 char* 一个是int
NativeFunction是支持int这个类型的
但是没有char* 对于指针一系列的参数我们可以用 pointer表示,所以这里的返回值类型就是 'pointer',参数类型是['pointer', 'int']
Tip: JavaScript 是没有char* 这个类型的,所以要通过frida的api去模拟,这里Memory.allocUtf8String()申请空间 存入字符串 模拟char*。
- 作者:404False
- 链接:https://blog.404nofoundx.top//article/7ea0c06c-594a-4831-b9a3-05faa773bbb0
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。