hook JNI example refactoring

This commit is contained in:
Iddo 2018-05-30 18:42:41 +03:00 committed by GitHub
parent fd64827ccc
commit 7494864aed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -61,27 +61,25 @@ TODOs:
* Hook Native (JNI) * Hook Native (JNI)
``` ```
Interceptor.attach(Module.findExportByName(null, "dlopen"), { Interceptor.attach(Module.findExportByName(null, "dlopen"), {
onEnter: function (args) { onEnter: function(args) {
var lib = Memory.readUtf8String(args[0]); var lib = Memory.readUtf8String(args[0]);
console.log("dlopen called with: " + lib); console.log("dlopen called with: " + lib);
this.lib = lib; // pass argument to onLeave this.lib = lib; // pass argument to onLeave
}, },
onLeave: function (retval) { onLeave: function(retval) {
console.log("dlopen called exit with: " + this.lib); console.log("dlopen called exit with: " + this.lib);
if (this.lib.endsWith("libfoo.so")) { if (this.lib.endsWith("libfoo.so")) {
console.log("ret: " + retval); console.log("ret: " + retval);
var libtmessages_base = Process.findModuleByName("libfoo.so").base; // Module.findBaseAddress(foo.so).add(0x1234) var funcAddr = 0x0021e5b4; // find function address with $ nm -CD libfoo.so | grep "SomeClass::someFunction"
console.log("libtmessages_base: " + libtmessages_base); var offset = Module.findBaseAddress("libfoo.so"); // Process.findModuleByName("libfoo.so").base) will also work
// find function address with $ nm -CD libfoo.so | grep "SomeClass::someFunction" Interceptor.attach(offset.add(funcAddr), {
var i = Interceptor.attach(libtmessages_base.add(0x0021e5b4), { onEnter: function(args) {
onEnter: function(args) { console.log('hooked !');
console.log('initttt '); }
} });
}); }
console.log("i: " + i); }
} });
}
});
``` ```