Skip to content

Instantly share code, notes, and snippets.

@haxrob
Last active July 9, 2023 12:22
Show Gist options
  • Save haxrob/380a24d843fe295cf849c3cbca60b472 to your computer and use it in GitHub Desktop.
Save haxrob/380a24d843fe295cf849c3cbca60b472 to your computer and use it in GitHub Desktop.
Java.perform(function () {
let RequestBody = Java.use("okhttp3.RequestBody");
RequestBody["create"].overload('okhttp3.MediaType', '[B').implementation = function (mediaType, bArr) {
console.log("\n");
var ssresult = "";
for(var i = 0; i < bArr.length; ++i) {
ssresult+= (String.fromCharCode(bArr[i] & 0xff));
}
console.log(ssresult);
let result = this["create"](mediaType, bArr);
console.log(`RequestBody.create result=${result}`);
return result;
};
});
Java.perform(function () {
let HashMapNode = Java.use('java.util.HashMap$Node');
let HashMap = Java.use("java.util.HashMap");
let ArrayMap = Java.use("androidx.collection.ArrayMap");
let ServiceMethod = Java.use("retrofit2.ServiceMethod");
let Base64 = Java.use('android.util.Base64');
ServiceMethod["toRequest"].implementation = function (objArr) {
var result = this["toRequest"](objArr);
if (typeof objArr == 'object') {
var raw = JSON.stringify(objArr,null,2);
console.log(raw);
for(var c = 0; c<objArr.length;c++) {
if (objArr[c].$className == 'java.util.HashMap') {
var hashMap = Java.cast(objArr[c], HashMap);
var iterator = hashMap.entrySet().iterator();
while (iterator.hasNext()) {
var entry = Java.cast(iterator.next(), HashMapNode);
console.log(entry.getKey() + ": " + entry.getValue());
}
}
if (objArr[c].$className == 'androidx.collection.ArrayMap') {
var arrayMap = Java.cast(objArr[c], ArrayMap)
var params = arrayMap.get("params");
if (params != null) {
console.log("params (b64):" + params);
var db64 = Base64.decode(params,0);
console.log("params (dec):" + String.fromCharCode.apply(null, db64));
}
}
}
}
console.log(`ServiceMethod.toRequest result=${result}`);
console.log("\n=====\n");
return result;
};
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment