backtrace 发表于 2016-12-12 18:47

Electron跨平台程序破解的一般思路

本帖最后由 backtrace 于 2017-2-27 05:17 编辑

Electron 是 Github 发布跨平台桌面应用开发工具,支持 Web 技术开发桌面应用开发。代表项目有Github的Atom和Microsoft的VSCode。


以前端预处理工具Prepros 6为例简单阐述下Electron封装的跨平台程序破解的一般思路:
[*]安装npm(至于如何安装,网上教程很多,不赘述)
[*]安装好npm后执行命令安装asar:npm install asar -g
[*]以macOS平台为例,在Prepros.app/Contents/Resources下找到app.asar,其他平台方法类似
[*]用asar命令解包:asar e app.asar tmp
[*]到步骤4中建立的tmp目录下找到对应的js文件hack之。
[*]破解完后重新封装程序 :asar p tmp/ app.asar,破解完成。



因为步骤4中解包出来的全是源码文件,而且涉及到注册的字符串(trial、license)并未加密,所以直接修改程序逻辑即可实现破解。
步骤5中破解涉及到的4个文件:
config/app/licnese.js //授权信息文件
lib/license-manager.js //授权判断文件
lib/update-manager.js //联网更新获取
lib/browser/application.js //启动时检测更新

config/app/licnese.js
补全key信息。

lib/license-manager.js
activate和verify函数直接return e.stop();

lib/update-manager.js
checkUpdate函数直接return e.stop();

lib/browser/application.js
直接注释掉initUpdater里的更新检测。



结语:相对于二进制逆向,Electron程序的逆向几无技术难度可言。开发者能抵御这种逆向分析的手段也很有限——仅有混淆一途,而且效果也不佳,只要逆向者肯花点时间去分析,还是能够轻松逆向出源码。这也就注定了Electron只适合开源生态的程序的开发,并不适合对技术及知识产权的保护有强需求的企业和个人。


破解成品:http://www.52pojie.cn/thread-563609-1-1.html



三毛洗头爱飘柔 发表于 2016-12-21 20:48

虽然感觉自己不会,不过还是支持一下

aweiribao 发表于 2017-2-25 19:17

吓得我 赶紧 换CEF开发

wooq 发表于 2017-12-9 20:34

大爱楼主,希望能加个好友请教

sjian0323 发表于 2018-3-8 17:25

谢谢 分享!!!

babyhux 发表于 2018-5-21 15:49

非常感谢指路

matrixpt 发表于 2018-5-27 22:58

aweiribao 发表于 2017-2-25 19:17
吓得我 赶紧 换CEF开发

cef也能破解吧{:1_924:}

fzfz666 发表于 2018-10-21 23:55

大侠你好,求合作

Suremotoo 发表于 2018-10-22 15:08

不错,虽然我用 electron 开发了个小工具,但是我还是看不下去。哈哈哈。

xieyuanjuan 发表于 2019-12-10 10:34

最近正遇到这个情况,感谢分享!
页: [1]
查看完整版本: Electron跨平台程序破解的一般思路