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

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

2020-7-29 11:18
5226

现在有一个方法: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 为调用方法后的返回值

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 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
活跃值: (1508)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
var obj = BufferObj.$new();
obj.$h
2020-7-31 20:59
0
雪    币: 946
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
Monkeylord var obj = BufferObj.$new(); obj.$h
牛逼大佬,哈哈哈哈,多谢多谢,抽根华子
2020-8-1 17:37
0
雪    币: 35
活跃值: (1065)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
Kris777 再次更新,由于Frida的线程是 pthead fork 的一个新的线程,在使用JNIEnv.findClass('xxxx&am ...
大佬,有解决吗?我也遇到了此问题
2020-9-29 13:02
0
雪    币: 3370
活跃值: (4317)
能力值: ( LV5,RANK:61 )
在线值:
发帖
回帖
粉丝
8
JNIEnv每一个实例都会对应不同一个classload的吧,dfeK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6V1k6i4k6W2L8r3!0H3k6i4u0Q4x3X3g2S2L8X3c8J5L8$3W2V1i4K6u0W2j5$3!0E0i4K6u0r3N6s2u0S2K9h3&6A6L8X3N6Q4x3V1k6S2M7Y4c8A6j5$3I4W2M7#2)9J5c8Y4m8W2M7X3k6Q4x3X3c8B7L8X3W2Q4x3U0y4B7j5i4k6S2N6X3#2Q4x3X3c8S2L8X3c8Q4x3X3c8B7L8X3W2W2L8Y4k6Q4c8e0y4Q4z5o6m8Q4z5o6u0B7L8X3W2Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0k6Q4z5p5y4Q4z5o6W2Q4c8e0N6Q4z5o6g2Q4b7e0N6Q4c8e0S2Q4b7V1k6Q4z5e0W2Q4c8e0c8Q4b7U0S2Q4b7f1q4Q4c8e0g2Q4z5o6q4Q4z5f1q4Q4c8e0c8Q4b7U0S2Q4z5o6m8Q4c8e0c8Q4b7U0S2Q4z5p5u0Q4c8e0g2Q4z5o6g2Q4b7e0S2Q4c8e0g2Q4b7U0q4Q4z5o6m8Q4c8e0g2Q4b7V1y4Q4z5e0g2Q4c8e0N6Q4z5e0c8Q4b7e0S2Q4c8e0k6Q4z5o6S2Q4z5e0k6Q4c8e0S2Q4z5o6m8Q4z5o6g2Q4c8e0g2Q4z5o6g2Q4b7e0S2Q4c8e0g2Q4b7U0q4Q4z5o6m8Q4c8e0g2Q4b7V1y4Q4b7U0q4Q4c8e0g2Q4b7V1y4Q4z5e0g2Q4c8e0N6Q4z5e0c8Q4b7e0S2Q4c8f1k6Q4b7V1y4Q4z5p5y4X3M7X3W2V1j5g2!0q4y4g2)9^5x3q4)9&6x3W2!0q4z5q4!0n7c8W2)9&6z5q4!0q4y4W2)9&6z5q4!0m8c8W2!0q4y4#2)9&6b7#2)9&6c8W2!0q4y4#2)9&6b7g2)9^5y4q4!0q4y4q4!0n7z5q4)9^5c8q4!0q4y4#2)9&6c8W2!0m8y4g2!0q4z5g2)9^5x3g2)9&6x3#2!0q4y4q4!0n7b7g2)9^5y4R3`.`.
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
雪    币: 3126
活跃值: (4292)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
Monkeylord var obj = BufferObj.$new(); obj.$h
我frida12.8.0  用.$h 报undefined,枚举了object的属性后发现是.$handle
2021-1-31 18:47
0
游客
登录 | 注册 方可回帖
返回