我的主动调用代码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);
目前已解决,方案如下:
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)