-
Notifications
You must be signed in to change notification settings - Fork 58
/
Copy pathdo_matchV2_byDataDecryptCommand_model.js
36 lines (29 loc) · 1.46 KB
/
do_matchV2_byDataDecryptCommand_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
console.log("Script loaded successfully ");
Java.perform(function() {
var DataDecryptCommand$execute$1$decryptData$1 = Java.use('com.fenbi.android.leo.webapp.secure.commands.DataDecryptCommand$execute$1$decryptData$1');
DataDecryptCommand$execute$1$decryptData$1['invokeSuspend'].implementation = function (obj) {
console.log("['invokeSuspend'] DataDecryptCommand$execute$1$decryptData$1.invokeSuspend is called: obj=" + obj);
// 调用原始方法获取结果
var originalResult = this['invokeSuspend'](obj);
// 发送结果给监听者
send(originalResult.toString());
// 同步等待监听者返回新数据
var newResult
recv('input', function(value) {
console.log('[matchV2_byDataDecryptCommand] Data Replaced');
console.log(value.payload);
newResult = value.payload;
}).wait()
// 确保新数据是一个字符串
if (typeof newResult !== 'string') {
console.warn("['invokeSuspend'] New result is not a string, converting to string.");
newResult = String(newResult);
}
// 将新数据转换为Java字符串
var StringClass = Java.use('java.lang.String');
var modifiedResult = StringClass.$new(newResult);
console.log("['invokeSuspend'] Modified result: " + modifiedResult);
// 确保返回类型兼容
return Java.cast(modifiedResult, Java.use('java.lang.Object'));
}
});