-
Notifications
You must be signed in to change notification settings - Fork 58
/
Copy pathsubmit_model.js
60 lines (48 loc) · 2.05 KB
/
submit_model.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// 输出提交的数据
// 比 https://github.com/Hawcett/XiaoYuanKouSuan_Frida_hook 早hook了一层,确保hook到的数据应该都是待提交的答案
// 应注意可能有某个页面也被hook到了,可能有也肯能没有
console.log("Script loaded successfully ");
Java.perform(function() {
let DataEncryptCommand$execute$1$encryptData$1 = Java.use("com.fenbi.android.leo.webapp.secure.commands.DataEncryptCommand$execute$1$encryptData$1");
DataEncryptCommand$execute$1$encryptData$1["invokeSuspend"].implementation = function (obj) {
// 复制粘贴 https://github.com/Hawcett/XiaoYuanKouSuan_Frida_hook 的
let r2 = Java.use("com.fenbi.android.leo.utils.r2");
r2["b"].implementation = function (data) {
var String= Java.use("java.lang.String");
let data_ori = data
data = Bytes2HexString(data)
send(data)
let new_data
let new_data_2
var instance
recv(function (received_json_object) {
new_data = received_json_object.my_data
instance = String.$new(new_data);
new_data_2 = instance.getBytes()
}).wait();
let result = this["b"](new_data_2);
return result;
}
function Bytes2HexString(arrBytes) {
var str = "";
for (var i = 0; i < arrBytes.length; i++) {
var tmp;
var num = arrBytes[i];
if (num < 0) {
//此处填坑,当byte因为符合位导致数值为负时候,需要对数据进行处理
tmp = (255 + num + 1).toString(16);
} else {
tmp = num.toString(16);
}
if (tmp.length == 1) {
tmp = "0" + tmp;
}
str += tmp;
}
return str;
}
// 调用原始方法获取结果
var originalResult = this["invokeSuspend"](obj)
return originalResult
};
});