frida / frida

Clone this repo to build Frida
https://frida.re
Other
15.73k stars 1.63k forks source link

I got a problem about enum type #1430

Open haonit opened 4 years ago

haonit commented 4 years ago

my code is :

Java.perform(function(){
   var urlConn = Java.use('java.net.URL');
   var proxy = Java.use('java.net.Proxy');
   var isa = Java.use('java.net.InetSocketAddress');
   var iproxy = proxy.$new(proxy._Type.HTTP, isa.$new('10.20.10.141',8080));
   urlConn.openConnection.overload('java.net.Proxy').implementation = function(p){
       console.log("called openConnection");
       var retval = this.openConnecttion(iproxy);
       return retval;
   }

})

when I hook the app; I got this:

TypeError: cannot read property 'HTTP' of undefined
    at [anon] (../../../frida-gum/bindings/gumjs/duktape.c:59225)
    at /Hook.js:5
    at frida/node_modules/frida-java-bridge/lib/vm.js:11
    at frida/node_modules/frida-java-bridge/index.js:446
    at frida/node_modules/frida-java-bridge/index.js:395
    at frida/node_modules/frida-java-bridge/lib/vm.js:11
    at /_java.js:2922
    at frida/node_modules/frida-java-bridge/index.js:364
    at /Hook.js:12

I want to know how to new a Proxy with specific proxy server Please tell me how to fix this problem Thanks a lot

dsgz1234-sket commented 3 years ago
          console.log("precall");
          var proxy = Java.use('java.net.Proxy');
          var proxy_type = Java.use('java.net.Proxy$Type');
          var inet =Java.use("java.net.InetSocketAddress");
          var isa = Java.cast(inet.$new("0.0.0.0", 8080),Java.use("java.net.SocketAddress"));
          var iproxy = proxy.$new(proxy_type.valueOf("HTTP"), isa);
          console.log(iproxy);
          console.log("called openConnection");
          var retval = this.openConnection(iproxy);
          return retval;

No error,but still not work.Someone plz help me.

liukuo362573 commented 3 years ago

I test it works like this.

var proxy = Java.use("java.net.Proxy");
var proxyType = Java.use('java.net.Proxy$Type');
var inetSocketAddress = Java.use("java.net.InetSocketAddress");
var inetSocketAddressInstance = inetSocketAddress.$new("192.168.8.33", 8888);
var proxyInstance = proxy.$new(proxyType.valueOf("HTTP"), inetSocketAddressInstance);