我破解过一些 electron 应用,主要是为了在我的 musl libc 的系统上用,因为我用的 musl libc/libc++运行不了给 glibc 的 electron 应用.(顺便说一下我把 electron 移植到了 musl libc 上:
https://github.com/12101111/overlay/tree/master/dev-util/electron )
从防御破解的角度来说,如果想防源码泄露,建议的技术路线是 snapshot ,加强一点就是修改 v8 的 snapshot 相关的代码,比如改编码方式,再 AES 加密。密钥不要明摆着写死在程序了,可以是从程序本身算出来的。当然这需要有能力修改 v8 并重新编译整个 electron ,鉴于编译 electron 下载源码很繁琐且编译时间很长,这个属于侵入性较高的。
简单一些的就是用 native module 把核心 js 代码混淆+加密成二进制的,然后运行时解密,同样加密的算法和解密密钥本身不要一眼就能逆出来。如果你懂 rust 的话,可以用
https://github.com/neon-bindings/neon + rust 一些加密库做,因为 Rust 编译出来的代码本身就比 C 难逆向,而且性能可能更高一些。