首页
社区
课程
招聘
[求助] Frida 如何将对象写入内存?
发表于: 2020-7-29 11:18 4899

[求助] Frida 如何将对象写入内存?

2020-7-29 11:18
4899

现在有一个方法:sub_BBB8(env, jobj, jstring)
三个参数都是使用传递地址的方式传递,第二个参数为 okio.Buffer 对象,想问下,如果想组织第二个参数,如何将 okio.Buffer 对象写入内存中?谢谢

 

更新:
使用JniEnv.allocObject(handle)方法可以在内存中创建对象了,但是无奈无法调用对象的方法对其属性进行赋值,想知道在内存中的对象如何对属性赋值,并且复制完成后对象还在更改之前的内存中,求大佬解释...困扰两天了。。

 

更新:终于实现了,记录一下实现方法

const handle = JNIEnv.findClass('xxx/xxx/xxx')
const obj = JNIEnv.allocObject(handle);  // 初始化对象
var init = JNIEnv.nonvirtualVaMethod('pointer', ['pointer']);
var initId = JNIEnv.getMethodId(handle, "methodName", "signature");
var content = JNIEnv.newStringUtf(text);
var clazz = init(JNIEnv, obj, handle, initId, content)
// clazz 为调用方法后的返回值

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

最后于 2020-7-30 15:19 被Kris777编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 81
活跃值: (462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
还请大佬指导一下啊
2020-7-29 16:15
0
雪    币: 81
活跃值: (462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
又或者使用 BufferObj.$new(); 的内存地址是什么??
2020-7-30 11:29
0
雪    币: 81
活跃值: (462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4

再次更新,由于Frida的线程是 pthead fork 的一个新的线程,在使用

JNIEnv.findClass('xxxx')

时,会提示找不到 xxxx 类,想请教一下大家

最后于 2020-7-30 18:16 被Kris777编辑 ,原因: 代码展示错误
2020-7-30 18:15
0
雪    币: 634
活跃值: (1503)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
var obj = BufferObj.$new();
obj.$h
2020-7-31 20:59
0
雪    币: 32
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
Monkeylord var obj = BufferObj.$new(); obj.$h
牛逼大佬,哈哈哈哈,多谢多谢,抽根华子
2020-8-1 17:37
0
雪    币: 35
活跃值: (1040)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
Kris777 再次更新,由于Frida的线程是 pthead fork 的一个新的线程,在使用JNIEnv.findClass('xxxx&am ...
大佬,有解决吗?我也遇到了此问题
2020-9-29 13:02
0
雪    币: 2104
活跃值: (2567)
能力值: ( LV5,RANK:61 )
在线值:
发帖
回帖
粉丝
8
JNIEnv每一个实例都会对应不同一个classload的吧,https://developer.android.com/training/articles/perf-jni#javavm-and-jnienv。jni的按照这个做一下全局引用或者全局弱引用,frida倒还是真的不知道了
2020-10-5 23:18
0
雪    币: 81
活跃值: (462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
星斗 大佬,有解决吗?我也遇到了此问题
var obj = BufferObj.$new(); // 创建对象
console.log(obj.$h);  // 这里打印出来的就是对象的地址,直接写入此地址就行了
2020-10-16 16:27
0
雪    币: 3023
活跃值: (4072)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
Monkeylord var obj = BufferObj.$new(); obj.$h
我frida12.8.0  用.$h 报undefined,枚举了object的属性后发现是.$handle
2021-1-31 18:47
0
游客
登录 | 注册 方可回帖
返回
//