hook JNI example refactoring
This commit is contained in:
parent
fd64827ccc
commit
7494864aed
40
README.md
40
README.md
@ -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);
|
}
|
||||||
}
|
});
|
||||||
}
|
|
||||||
});
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user