下面是frida的hook代码,我想修改撤回提示的内容,hook后显示修改成功!可是屏幕上显示的依旧没有“(已阻止)”相关字眼,有做过的大佬瞅瞅,这个问题很小,但是不解决就心痒痒的[JavaScript] 纯文本查看 复制代码 setTimeout(() => {
let SQLiteDatabase = Java.use("com.tencent.wcdb.database.SQLiteDatabase");
let ContentValues = Java.use("android.content.ContentValues");
SQLiteDatabase.updateWithOnConflict.implementation = function (str, contentValues, str2, strArr, i15) {
// 过滤目标表
if (str === "message" || str === "rconversation") {
try {
// 处理content字段
if (contentValues.containsKey("content")) {
let content = contentValues.getAsString("content");
if (content && content.includes("撤回了一条消息") && !content.includes("(已阻止)")) {
let newContent = content + "(已阻止)";
contentValues.put("content", newContent);
console.log("[修改成功] content: " + contentValues.getAsString("content"));
}
}
// 处理digest字段(会话列表摘要)
if (contentValues.containsKey("digest")) { // 注意字段名是否正确,根据日志调整
let digest = contentValues.getAsString("digest");
if (digest && digest.includes("撤回了一条消息") && !digest.includes("(已阻止)")) {
let newDigest = digest + "(已阻止)";
contentValues.put("digest", newDigest);
console.log("[修改成功] digest: " + contentValues.getAsString("digest"));
}
}
} catch (e) {
console.error("处理contentValues时出错: " + e);
}
}
// 调用原方法并返回结果
return this.updateWithOnConflict(str, contentValues, str2, strArr, i15);
};
}, 1000); |