OkHttpLogger-Frida
OkHttpLogger-Frida copied to clipboard
考虑添加Gzip.并提供相应代码
我已经尝试改下。已经成功。 https://github.com/friddle/OkHttpLogger-Frida/blob/master/okhttp_poker_gzip.js 但是不是很熟悉frida的写法。代码质量不行。所以没有pull request。只提供参考下
var charset = defChatset
var mediaType = responseBody[M_rspBody_contentType]()
logString.append("| Response Body,Encoding:").append(encoding).append("\n")
var source = OkioGzipSource.$new(responseBody[M_rspBody_source]())
var buffer=Java.use("okio.Okio").buffer(Java.cast(source,Java.use("okio.Source")))
var byteArrayString=buffer.readByteString()
var rspString=byteArrayString.string(charset)
var newBody = ResponseBodyWapper[M_rspBody_create](mediaType,byteArrayString)
var newBuilder = null;
if ("" == M_rsp_newBuilder) {
var ResponseBuilderClazz = response.class.getDeclaredClasses()[0]
newBuilder = Java.use(ResponseBuilderClazz.getName()).$new(response)
} else {
newBuilder = response[M_rsp_newBuilder]()
newBuilder.removeHeader(EncodingKey)
}
var bodyField = newBuilder.class.getDeclaredField(F_rsp$builder_body)
bodyField.setAccessible(true)
bodyField.set(newBuilder, newBody)
newResponse = newBuilder[M_rsp$builder_build]()
logString.append(splitLine(rspString, "| ")).append("\n")
logString.append("|" + "<-- END HTTP RESPONSE").append("\n");
在京东下已经跑成功