1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
function hookTest() { Java.perform(function () { var addr = Module.findExportByName("<so_name>", "<function_name>"); console.log(addr); if (addr != null) { Interceptor.attach(addr, { onEnter: function (args) { var jString = Java.cast(args[1].Jave.use("Java.lang.String")); console.log("args:", jString.toString());
var JNIEnv = Java.vm.getEnv(); var originalStrPtr = Java.getStringUtfChars(args[1], null).readCString(); console.log(originalStrPtr); var modifiedContent = "str1"; var newJSring = JNIEnv.newSringUtf(modifiedContent); args[1] = newJString;
}, onLeave: function (retval) { var jString = Java.cast(retval.Jave.use("Java.lang.String")); console.log("retval:", jString.toString()); var JNIEnv = Java.vm.getEnv(); var originalStrPtr = Java.getStringUtfChars(retval, null).readCString(); console.log(originalStrPtr); var modifiedContent = "str1"; var newJSring = JNIEnv.newSringUtf(modifiedContent); retval.replace(newJString);
}
}) }
}) }
|