我在java.lang.Class.getMethod
中有一个问题。
public Method getMethod(String name, Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException
{
return getMethod(name, parameterTypes, true);
}
第二个参数需要一个[java.lang.Object];
类型和java
这样的代码:
getMethod("say", new Class[]{String.class,int.class});
getMethod("say", new Class[]{Integer.TYPE,Integer.TYPE});
那么如何使用array
或其他方式创建此js
?
此外,我这样创建了一个obj array
:
var Integerclass = Java.use("java.lang.Integer");
var objectArr = Java.array('Ljava.lang.Class;[Integerclass.TYPE,Integerclass.TYPE]);
但是我收到一个无效的参数值错误,如何解决??
{'type':'错误','description':'错误:无效参数值','stack':'错误:无效参数值\ n在frida / node_modules / frida-java / lib / env.js在frida / node_modules / frida-java / lib / class-factory.js:515 \ n:在toJniObjectArray(frida / node_modules / frida-java / lib / class-factory.js:2640)中的Java:2592 \ n。 js:4489 \ n在frida / node_modules / frida-java / lib / class-factory.js:743 \ n在[anon](script1.js:28)\ n输入:1','fileName':'frida /node_modules/frida-java/lib/env.js','lineNumber':515,'columnNumber':1}
答案 0 :(得分:0)
使用反射的 java 代码为:
int length = 42;
int[] arr = (int[]) java.lang.reflect.Array.newInstance(int.class, length);
int.class
与常量Integer.TYPE
相对应的地方。
您可以将反射用作:
klazz.getMethod("avg", int[].class, int.class);
JavaScript可以使用自动换行。
我对JavaScript的猜测:
var StringClass = Java.use("java.lang.String.class");
var IntClass = Java.use("int.class");
var IntArrayClass = Java.use("int[].class");
var objectArr = Java.array([IntClass, IntArrayClass]);
var objectArr = Java.array([StringClass, IntClass]);
getMethod("say", objectArr);
答案 1 :(得分:0)
如果您想要一个'int':
Integer = Java.use("java.lang.Integer")
int = Integer.class.getField("TYPE").get(null)
希望你能做到
int数字似乎无法识别为“ java.lang.Object”,但是方法(param具有“ int”)可以自动适应它。 这是一个例子:
var iActivityManager = ActivityManagerNative.class.getMethod("getDefault", null).invoke(null, null)
var method_startUserInBackground = ActivityManagerNative.class.getMethod("startUserInBackground", [int])
var isOK = method_startUserInBackground.invoke(iActivityManager, [Integer.$new(10)])
getMethod-使用'int'; sendParam-使用“整数”