I tried to find out how RuntimeException works internally in cs.android.com so I can understand how to prevent crashes but didn't find anything useful and I have no clue how to analyze components-related JDK in perspective of reverse engineering, I'm curious what's going on behind RuntimeException so I can prevent crashes
I tried with this Frida script but no luck
Java.perform(function() {
var RuntimeException = Java.use('java.lang.RuntimeException');
RuntimeException.$init.overload().implementation = function(){
console.log("hits .overload()")
return;
}
RuntimeException.$init.overload('java.lang.String').implementation = function(arg1){
console.log("hits .overload('java.lang.String')")
return;
}
RuntimeException.$init.overload('java.lang.Throwable').implementation = function(arg1){
console.log("hits .overload('java.lang.Throwable')")
return;
}
RuntimeException.$init.overload('java.lang.String', 'java.lang.Throwable').implementation = function(arg1,arg2){
console.log("hits .overload('java.lang.String', 'java.lang.Throwable')")
return;
}
RuntimeException.$init.overload('java.lang.String', 'java.lang.Throwable', 'boolean', 'boolean').implementation = function(arg1,arg2,arg3,arg4){
console.log("hits .overload('java.lang.String', 'java.lang.Throwable', 'boolean', 'boolean')")
return;
}
})
RuntimeException
calls the app is still crash when it callsRuntimeException
? is there someting happening internally ?