Java.perform(function () {
var class1 = Java.use("com.ss.a.b.a");
var class2 = Java.use("com.ss.sys.ces.a"); // 底層
var JavaString = Java.use("java.lang.String");
var ByteString = Java.use("com.android.okhttp.okio.ByteString");
class2.leviathan.implementation = function (s1, s2) {
console.log("com.ss.sys.ces.a => leviathan");
var result = this.leviathan(s1, s2);
console.log("com.ss.sys.ces.a => result:" + result);
console.log("com.ss.sys.ces.a => result string:" + ByteString.of(result).hex());
return result;
};
class1.a.overload('java.lang.String').implementation = function (s1) {
console.log("com.ss.a.b.a = >a");
console.log("參數(shù)1:" + s1);
var result = this.a(s1);
console.log("com.ss.a.b.a => result:" + result);
// console.log("com.ss.a.b.a => result:" + JavaString.$new(result));
return result;
}
});
# 以下代碼來自龍哥分享
console.log("加載腳本成功兴革!");
Java.perform(function x() {
//定位StringBuilder,StringBuffer類
const stringbuilder = Java.use("com.dianping.util.NativeHelper");
//定位方法
const func = "ndug";
// 使用log類和Exception類產(chǎn)生堆棧
var jAndroidLog = Java.use("android.util.Log");
var jException = Java.use("java.lang.Exception");
var ByteString = Java.use("com.android.okhttp.okio.ByteString");
stringbuilder[func].implementation = function(x, y, z){
//打印輸入?yún)?shù)
//方法一
var argsArray = [];
for(var i = 0; i < x.length; i++) {
argsArray.push(x[i]);
}
console.log("測(cè)試一:"+"["+argsArray.join(",")+"]");
//方法二
var arr = Java.use("java.util.Arrays");
console.log("測(cè)試二:" + arr.toString(x));
console.log("參數(shù)二:"+arr.toString(y));
console.log("參數(shù)三:"+arr.toString(z));
//方法三
console.log("測(cè)試三"+JSON.stringify(x));
// 打印十六進(jìn)制字符串
var arg1 = ByteString.of(x).hex();
console.log("Arg1:"+arg1);
console.log("Arg2:"+ByteString.of(y).hex());
console.log("Arg3:"+ByteString.of(z).hex());
//執(zhí)行原邏輯
const result = this[func](x, y, z);
// 打印返回的字符串內(nèi)容
var ret = ByteString.of(result).hex();
console.log("Result:"+ret);
console.log("Result Length:"+ret.length);
// 只有長度大于30時(shí)犁柜,才打印堆棧
if (result.length > 15) {
// 拋出異常脖卖。打印堆棧
console.log(jAndroidLog.getStackTraceString(jException.$new()));
}
//return出去
return result;
};
});
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者