From 9de27d332d12ffa9a9762117c1aa2afbdf4b47b0 Mon Sep 17 00:00:00 2001 From: wangsiyuan <2392948297@qq.com> Date: Mon, 16 Oct 2023 19:13:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20hook=5Fconversions.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hook_conversions.js | 51 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) 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; + }; + }); +}