我想使用 Frida 在 android 应用程序中挂钩 java.net.Socket.connect() 方法。但我失败了,应用程序崩溃了。
我正在使用带有 Android 7.1.1 和 frida-server-12.2.27-android-arm 的 Nexus 6 设备。
这是我使用的js代码:
jscode = """
Java.perform(function(){
var target = Java.use("java.net.Socket");
target.$init.overload().implementation = function(){
return this.$init();
};
target.connect.overload('java.net.SocketAddress', 'int').implementation = function(socketAddr, timeout) {
this.connect(socketAddr, timeout);
};
});
"""
我发现如果我只是挂钩 $init() 方法,一切都很好;但是如果我添加方法connect()的钩子,APP就会崩溃。