
公司自己的 IM 是基于Electron构建的 可以调出控制台插入任意的 js 代码。
有个想法就是能不能实现从 dom 或其他层面实现防撤回,自己有个想法是:
监听 dom 移除的事件,然后如果是消息撤回相关的 dom 移除,就阻止移除或重新插入
不知道这个方案现不现实 能不能实现?
1 cydysm 2021 年 4 月 1 日 不能禁用 devtools 吗 |
2 seki 2021 年 4 月 1 日 按照我的理解,IM 的信息不是发送到服务端里面储存,客户端只负责展示吗,用户删除 dom 的意义是什么 然后其实是有办法禁止开发者工具和调试参数的,但这个不治本,因为用户最终还是可以打开 asar 做他想做的事情 |
4 Jirajine 2021 年 4 月 1 日 MutationObserver 或者你直接 setInterval 轮询,不断读取 dom 列表,发现比之前少了就加回去。 |
5 xcstream 2021 年 4 月 1 日 理论上可以 |
6 Kasumi20 2021 年 4 月 1 日 您这套系统有点牛啊 |
7 zhuweiyou 2021 年 4 月 1 日 hook websocket 的 on message |
8 ch2 2021 年 4 月 1 日 开 debuger,你自己撤回一次,然后断点 trace 到功能函数,然后把那个函数给 hook 掉使它无效 |
9 superrichman 2021 年 4 月 1 日 via iPhone 直接把撤回消息的函数干掉就完事了 |
10 BeautifulSoap 2021 年 4 月 1 日 via Android 防撤回应该没问题,但还不够。你还得把撤回的信息保存在本地动态插入加载。否则的话重启下软件拦截下的消息就没了 |
11 cereschen 2021 年 4 月 1 日 找到你想监听的 dom 然后重写 removeChild 就可以避免被删除元素了 |
12 meepo3927 2021 年 4 月 2 日 没太明白, 撤回功能是哪来的? 开发的吗? |
13 crclz 2021 年 4 月 2 日 将所有消息再存一份即可 |
14 Roger006 2021 年 4 月 2 日 重写 [删除消息的函数] ,让它能执行,但不起作用 |