首页
社区
课程
招聘
[已解决] 使用 Frida Hook so 时遇到 [B 类型数据,如何转换数据类型将数据打印出来?
发表于: 2020-1-17 12:03 8040

[已解决] 使用 Frida Hook so 时遇到 [B 类型数据,如何转换数据类型将数据打印出来?

2020-1-17 12:03
8040

尝试了使用

var byte = Java.use('java.lang.Byte')

映射数据,但是报了一个错误,想请问如何才能将参数打印出来?
错误如下:

{'type': 'error', 'description': "Error: Cast from '[B' to 'java.lang.Byte' isn't possible", 'stack': "Error: Cast from script1.js:67", 'fileName': 'frida/node_modules/frida-java-bridge/lib/class-factory.js', 'lineNumber': 1159, 'columnNumber': 1}

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

最后于 2020-1-17 13:41 被Kris777编辑 ,原因: 已解决
收藏
免费 2
支持
分享
最新回复 (2)
雪    币: 129
活跃值: (407)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
var jBase64 = Java.use('android.util.Base64'): console.log(jBase64.encodeToString(bytes, 2));
或者
var bytes = xxx; // 由Frida Hook或其它方式获取到该数据
for (var i = 0; i < bytes.length; i++) {
  console.log(i + ": " + bytes[i]);
}
最后于 2020-1-17 12:56 被SevenSir编辑 ,原因:
2020-1-17 12:55
0
雪    币: 81
活跃值: (462)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
SevenSir var&nbsp;jBase64&nbsp;=&nbsp;Java.use('android.util.Base64'):&nbsp;console.log(jBase ...

ok 谢谢啊,刚刚也找到了另外一种解决方式;代码如下:

var b = Java.use('[B')
Interceptor.attach(pointer, {
        onEnter: function(args) {

            var buffer = Java.cast(args[1], b);
            var result = Java.array('byte', buffer);
            var s = "";
            for (var i=0; i < result.length; i++) {
                send(result[i])
            }

// python 中使用chr解开unicode码 打印出来也行。
2020-1-17 13:40
1
游客
登录 | 注册 方可回帖
返回
//