打包 irreader RSS reader 的经历版本概述第一部分:1.5.9 版本的升级初始情况升级过程技术细节配置修改第二部分:最新版订阅限制修复解决方案技术讨论附录:openwebmonitor4 相关技巧
打包 irreader RSS reader 的经历
版本概述
irreader 有 2 个版本,1.5.9 以及最新版。
第一部分:1.5.9 版本的升级
初始情况
1.5.9 是最后一个免费版,源码也没混淆,但是作者是用电子 v1 开发的
没办法,官网推荐的安装方法就是 sudo npm i -g electron
升级过程
升级电子就一堆 breaking change。经过一段时间的 patch, 升到了电子 11, 能正常使用了。
技术细节
- AUR 有电子 1-latest 的所有 -bin 的包
- sqlite3 在新版本时有 napi ,不需要折腾 node-gyp,只需要去拉二进制
- bsdtar 可以直接解 exe 的包,
bsdtar -xvpf *.exe
,而且是 linux 附带的。虽然 xkcd 经典笑话。
配置修改
解压完后把 asar 也解压了,就能 patch 了。
12 开始有神奇的无法理解的 bug, 就不管了。
第二部分:最新版订阅限制修复
但是一直想修好最新版的限制订阅数的 "bug"。
和 TG 群里的某佬 https://github.com/pionxzh 交流后,ta 告诉我

前面其实就是构建一个大 array 后面的 function 只是进去拿 value 所以手工做法是 evaluate 前段代码 构造出 _0x19a3 后可以正则匹配替换
解决方案
可以用网站 de4js 进行反混淆。
经过测试

就可以反混淆。随便挑了几个文件后。
问题解决了。
技术讨论
草,最高级的修改是不修改
xs 赞美 cjs 是吧
是啊,electron 至今只能用 cjs, 方便修改了x 这一行代码价值几百块呢x
但是还是那句话,加一行只要几秒,知道在哪加就。。 代码写出来一行,知道为啥写就不是几行的事了x
附录:openwebmonitor4 相关技巧
openwebmonitor4 同理。利用
2
ii. NOTE: If there are multiple function declarations for the same name, the last declaration is used.
的原理覆盖掉定义。