frida-gum icon indicating copy to clipboard operation
frida-gum copied to clipboard

Java: class[method].overload.apply() results in errors in frida-gum

Open pandasauce opened this issue 6 years ago • 0 comments

Run

Java.perform(function () {
    var target_class = Java.use("java.security.KeyStore");
    var target_method_name = "getInstance";
    var target_overload = ['java.lang.String'];

    var original_method = target_class[target_method_name].overload.apply('this', target_overload);
});

Using frida -U -n Gadget -l simpletest.js

On https://github.com/googlearchive/android-BasicAndroidKeyStore

Expected result: no error, original_method gets a reference to java.security.KeyStore.getInstance

Actual result:

TypeError: cannot read property 'length' of undefined
    at [anon] (../../../frida-gum/bindings/gumjs/duktape.c:56618)
    at frida/node_modules/frida-java-bridge/lib/class-factory.js:872
    at /simpletest.js:6
    at frida/node_modules/frida-java-bridge/lib/vm.js:11
    at frida/node_modules/frida-java-bridge/index.js:389
    at frida/node_modules/frida-java-bridge/index.js:340
    at frida/node_modules/frida-java-bridge/lib/vm.js:11
    at /_java.js:2916
    at frida/node_modules/frida-java-bridge/index.js:307
    at /simpletest.js:7

Looks like a bug either here or in duktape? Or am I doing it wrong and there is a better way to call .overload with a dynamic set of arguments?

pandasauce avatar Apr 17 '20 18:04 pandasauce