setImmediate(function() { Java.perform(function() { var url = Java.use("java.net.URL"); url.$init.overload('java.lang.String').implementation = function (var0) { console.log("[*] Created new URL with value: " + var0 +"\n"); return this.$init(var0); }; url.openConnection.overload().implementation = function () { console.log("[*] Created new URL connection\n"); return this.openConnection(); }; url.openConnection.overload('java.net.Proxy').implementation = function (var0) { console.log("[*] Created new URL connection with proxy value: " + var0 +"\n"); return this.openConnection(var0); }; var URLConnection = Java.use("java.net.URLConnection"); URLConnection.connect.implementation = function () { console.log("[*] Connect called.\n"); this.connect(); }; URLConnection.getContent.overload().implementation = function () { var content = this.getContent(); console.log("[*] Get content called. Content: " + content + "\n"); return content; }; URLConnection.getContentType.implementation = function () { var contentType = this.getContentType(); console.log("[*] Get content type called. Content type: " + contentType + "\n"); return contentType; }; URLConnection.getContentLength.implementation = function () { var contentLength = this.getContentLength(); console.log("[*] Get content length called. Content length: " + contentLength + "\n"); return contentLength; }; URLConnection.getContentLengthLong.implementation = function () { var contentLengthLong = this.getContentLengthLong(); console.log("[*] Get content length long called. Content length long: " + contentLengthLong + "\n"); return contentLengthLong; }; URLConnection.getContentEncoding.implementation = function () { var contentEncoding = this.getContentEncoding(); console.log("[*] Get content encoding called. Content encoding: " + contentEncoding + "\n"); return contentEncoding; }; URLConnection.getDate.implementation = function () { var contentDate = this.getDate(); console.log("[*] Get date called. Date: " + contentDate + "\n"); return contentDate; }; URLConnection.getExpiration.implementation = function () { var contentExpiration = this.getExpiration(); console.log("[*] Get expiration called. Expiration: " + contentExpiration + "\n"); return contentExpiration; }; URLConnection.getLastModified.implementation = function () { var lastModified = this.getLastModified(); console.log("[*] Get last modified called. Value: " + lastModified + "\n"); return lastModified; }; URLConnection.getInputStream.implementation = function () { console.log("[*] Get input stream called.\n"); return this.getInputStream; }; URLConnection.setDoOutput.overload('boolean').implementation = function (var0) { console.log("[*] URLConnection.setDoOutput called with value: " + var0 + ".\n"); this.setDoOutput(var0); }; URLConnection.setDoInput.overload('boolean').implementation = function (var0) { console.log("[*] URLConnection.setDoInput called with value: " + var0 + ".\n"); this.setDoInput(var0); }; var httpURLConnection = Java.use("com.android.okhttp.internal.huc.HttpURLConnectionImpl"); httpURLConnection.setRequestMethod.overload('java.lang.String').implementation = function (var0) { console.log("[*] Set request method called: " + var0 + "\n"); this.setRequestMethod(var0); }; httpURLConnection.setRequestMethod.overload('java.lang.String').implementation = function (var0) { console.log("[*] Set request method called: " + var0 + "\n"); this.setRequestMethod(var0); }; httpURLConnection.connect.implementation = function () { console.log("[*] Connect called.\n"); this.connect(); }; httpURLConnection.disconnect.implementation = function () { console.log("[*] Disconnect called.\n"); this.disconnect(); }; httpURLConnection.getResponseCode.implementation = function () { var responseCode = this.getResponseCode(); console.log("[*] Get response code called: " + responseCode + "\n"); return responseCode; }; var httpsURLConnection = Java.use("com.android.okhttp.internal.huc.HttpsURLConnectionImpl"); httpsURLConnection.setRequestMethod.overload('java.lang.String').implementation = function (var0) { console.log("[*] Set request method called: " + var0 + "\n"); this.setRequestMethod(var0); }; httpsURLConnection.connect.implementation = function () { console.log("[*] Connect called.\n"); this.connect(); }; httpsURLConnection.disconnect.implementation = function () { console.log("[*] Disconnect called.\n"); this.disconnect(); }; httpsURLConnection.getResponseCode.implementation = function () { var responseCode = this.getResponseCode(); console.log("[*] Get response code called: " + responseCode + "\n"); return responseCode; }; httpsURLConnection.setRequestProperty.overload('java.lang.String', 'java.lang.String').implementation = function (var0, var1) { console.log("[*] URLConnection.setRequestProperty called with key: " + var0 + " and value: " + var1 + ".\n"); this.setRequestProperty(var0, var1); }; }); });