diff --git a/hook_conversions.js b/hook_conversions.js index ae71e5a..ae8944b 100644 --- a/hook_conversions.js +++ b/hook_conversions.js @@ -1,7 +1,9 @@ console.log("Script loaded successfully"); // hook_okhttp_client() if (Java.available) { - Java.perform(function() { + hook_json() + // hook_okhttp3_client() + Java.perform(function () { try { var OkHttpClient = Java.use("okhttp3.OkHttpClient"); console.log("OkHttp detected in the app"); @@ -116,3 +118,50 @@ function hook_HttpURLConnection_stream() { } +function hook_okhttp3_client() { + Java.perform(function () { + var OkHttpClient = Java.use("okhttp3.OkHttpClient"); + OkHttpClient.newCall.overload("okhttp3.Request").implementation = function (request) { + console.log("okhttp3 Request -> " + request.url().toString()); + + var response = this.newCall(request).execute(); + + console.log("okhttp3 Response -> " + response.body().string()); + + return response; + } + }); +} + +function hook_retrofit() { + Java.perform(function () { + var retrofitBuilder = Java.use("retrofit2.Retrofit$Builder"); + retrofitBuilder.build.implementation = function () { + var retrofit = this.build(); + var httpClient = retrofit.callFactory().clone(); + httpClient.interceptors().add(new Java.use('okhttp3.Interceptor')({ + intercept: function (chain) { + console.log("HTTP Request -> " + chain.request().toString()) + var response = chain.proceed(chain.request()); + console.log("HTTP Response -> " + response.toString()); + return response; + } + })) + return retrofit.newBuilder() + .callFactory(httpClient) + .build(); + } + }); +} + + +function hook_json() { + Java.perform(function () { + var JSONObject = Java.use('org.json.JSONObject'); + JSONObject.toString.overload().implementation = function () { + var result = this.toString.call(this); + console.log("Serialized JSONObject: " + result); + return result; + }; + }); +}