import frida
import sys
hook_class ="""
Java.perform(function(){
hookclass('com.xbiao.login.PhoneLoginActivity')
})
function printstack() {
console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new()))
}
function hookclass(className){
var Myclasa = Java.use(className)
//得到类下的所有方法
var methods = Myclasa.class.getDeclaredMethods()
//遍历所有方法
methods.forEach(function(method){
//获得方法名
var methodName = method.getName()
//获得该方法得所有重载
var overloads = Myclasa[methodName].overloads
//遍历重载
overloads.forEach(function(overload){
//hook 重载
var prot = '('
for (var i=0; i<overload.argumentTypes.length; i++){
prot += overload.argumentTypes[i].className + ','
}
prot += ')'
var wMethodName = className+'.'+methodName+prot
overload.implementation = function(){
printstack()
console.log(wMethodName)
for (var i=0; i<arguments.length;i++){
console.log('argument:'+JSON.stringify(arguments[i]))
}
var ret = this[methodName].apply(this, arguments)
console.log(wMethodName + 'return:'+JSON.stringify(ret))
return ret
}
})
})
}
"""
process = frida.get_usb_device(-1).attach("com.xxxxx")
script= process.create_script(hook_class)
script.load()
sys.stdin.read()
app逆向-frida hook 某个java类下的所有方法
最新推荐文章于 2024-07-22 14:15:06 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)