hook all java method overloads
This commit is contained in:
parent
2a210509c6
commit
2067de23a4
47
README.md
47
README.md
@ -37,6 +37,7 @@
|
||||
* [`Get Android ID`](#get-android-id)
|
||||
* [`Bypass FLAG_SECURE`](#bypass-flag_secure)
|
||||
* [`Shared Preferences update`](#shared-preferences-update)
|
||||
* [`Hook all method overloads`](#hook-overloads)
|
||||
* File system access hook `$ frida --codeshare FrenchYeti/android-file-system-access-hook -f com.example.app --no-pause`
|
||||
</details>
|
||||
|
||||
@ -1186,6 +1187,52 @@ TODO
|
||||
<br>[⬆ Back to top](#table-of-contents)
|
||||
|
||||
|
||||
|
||||
#### Hook overloads
|
||||
|
||||
```javascript
|
||||
function hookOverloads(className, func) {
|
||||
var clazz = Java.use(className);
|
||||
var overloads = clazz[func].overloads;
|
||||
for (var i in overloads) {
|
||||
if (overloads[i].hasOwnProperty('argumentTypes')) {
|
||||
var parameters = [];
|
||||
|
||||
for (var j in overloads[i].argumentTypes)
|
||||
parameters.push(overloads[i].argumentTypes[j].className);
|
||||
|
||||
var args = [];
|
||||
for (var i = 0; i < parameters.length; i++)
|
||||
args.push('arg_' + i);
|
||||
|
||||
var script = "var ret = this.__FUNCNAME__(__SEPARATED_ARG_NAMES__) || '';\n"
|
||||
+ "console.log('__CLASSNAME__.__FUNCNAME__(' + __SEPARATED_ARG_NAMES__ + ') : ' + ret);\n"
|
||||
+ "return ret;"
|
||||
|
||||
script = script.replace(/__FUNCNAME__/g, func)
|
||||
.replace(/__SEPARATED_ARG_NAMES__/g, args.join(', '))
|
||||
.replace(/__CLASSNAME__/g, className)
|
||||
.replace(/\+ \+/g, '+');
|
||||
|
||||
args.push(script);
|
||||
clazz[func].overload.apply(this, parameters).implementation = Function.apply(null, args);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Java.perform(function() {
|
||||
hookOverloads('java.lang.StringBuilder', '$init');
|
||||
})
|
||||
```
|
||||
|
||||
<details>
|
||||
<summary>Output example</summary>
|
||||
TODO
|
||||
</details>
|
||||
|
||||
<br>[⬆ Back to top](#table-of-contents)
|
||||
|
||||
|
||||
#### iOS alert box
|
||||
|
||||
```js
|
||||
|
Loading…
Reference in New Issue
Block a user