吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 218|回复: 2
收起左侧

[Android 求助] frida主动调用时构建参数类型Object的问题

[复制链接]
nixiangzhazha 发表于 2025-1-31 13:06
40吾爱币
需要调用的函数在app中的样子:public static native Object a(int i, int i2, long j, String str, Object obj);

问题:frIDA如何构建第五个参数obj

简述:这是一个Object类型,通过hook得到传入的参数obj为字符串数组:["accept-encoding","gzip","activity_now_client","173816"]

我的主动调用代码1:
        var ins = Java.use('ms.bd.c.k');
        var i = 50331649;
        var i2 = 0;
        var j = 525188729888;
        var str1 = "provider";
        var stringArray = [
            "accept-encoding", "gzip",
            "activity_now_client", "173816",
        ]
        var obj = Java.array("Ljava.lang.Object;", stringArray);                //就是这里构造参数obj时出现问题
        console.log(obj)
        var result = ins.a(i, i2, j, str1, obj);

以下为控制台信息(似乎我所构造的obj并不是一个Object类型):
accept-encoding,gzip,activity_now_client,1738160321140        //这里是我console.log的obj
Error: a(): argument types do not match any of:
        .overload('int', 'int', 'long', 'java.lang.String', 'java.lang.Object')
    at X (frida/node_modules/frida-java-bridge/lib/class-factory.js:563)
    at value (frida/node_modules/frida-java-bridge/lib/class-factory.js:966)
    at e (frida/node_modules/frida-java-bridge/lib/class-factory.js:547)
    at <anonymous> (/charles.js:66)
    at <anonymous> (frida/node_modules/frida-java-bridge/lib/vm.js:11)
    at perform (frida/node_modules/frida-java-bridge/index.js:193)
    at call_XGorgon (/charles.js:73)
    at <eval> (<input>:1)
    at eval (native)
    at fridaEvaluate (/charles.js:102)
    at apply (native)
    at <anonymous> (frida/runtime/message-dispatcher.js:13)
    at c (frida/runtime/message-dispatcher.js:23)

主动调用代码2(这里只写Java.array的部分,其他部分与之前一样):
var obj = Java.array("char", stringArray);

以下为控制台信息(这里改成char类型,虽然是Object,但这样构造的obj["accept-encoding", "gzip","activity_now_client", "173816",]变成了["a","g","a","1"]):
[object Object]        //这里是我console.log的obj


研究半天,发现只有构造的obj在console.log时为[object Object],才能够正常传参。

但不知道该如何构造这样的一个Object,试了网上各种方法都不行,求大佬指点。




发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| nixiangzhazha 发表于 2025-2-1 12:41
目前已解决,方案如下:
var obj = Java.array("Ljava.lang.String;", stringArray);
let JavaObject = Java.use("java.lang.Object");
let val = Java.cast(obj.$w, JavaObject)
console.log(val)

var result = ins.a(i, i2, j, str1, val);
zhouzheng1201 发表于 2025-2-5 17:37
nixiangzhazha 发表于 2025-2-1 12:41
目前已解决,方案如下:
var obj = Java.array("Ljava.lang.String;", stringArray);
let JavaObject = J ...

66666666666
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-4-3 07:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表