本文为看雪论坛优秀文章
看雪论坛作者ID:sunfishi
11月23日,Typora 正式发布 1.0 版本,进入了收费时代。1.0 版本是一次性付费而非订阅的,只要支付人民币 89 元,可以在 3 台设备里使用。
如你所见,这一篇文章就是使用Typora所写。自搭建个人博客起,Typora就成为了我主要的写作平台。
用惯了Markdown,WordPress的古腾堡编辑器没法满足我的需求,于是开始寻找替代品,最终的结果便是typora。轻盈、干净
所见即所得
图床
主题、生态
(beta)免费
……
如今,typora进入收费阶段,不乏使用者被迫迁移至其他写作工具上。下面,我们来一探究竟。
请勿使用盗版,支持正版授权,文中内容仅作学习和讨论,请不要从事任何非法行为。由此产生的任何问题都将读者/用户(您)承担。
在Windows下,typora会记录日志至{UsersRoot}\AppData\Roaming\Typora\typora.log,能看到可疑的注册表操作记录。正版激活的注册项内容:
这里关注到了app.asar,通过搜索引擎,尝试解包。npm install -g asar
asar extract {installRoot}/Typora/resources/app.asar workstation/outs
JavaScript不管是字节码还是明文脚本都会在运行时加载,结合模块列表寻找加载点。由字符串联想到对加密文件进行的base64解码,导入表查找到 napi Node-API | Node.js API 文档 (nodejs.cn)。
尝试Findcrypt寻找算法,找到AES的Sbox和InvBox,通过交叉引用定位到可疑函数点 main.node+E440。
分析模块后,定位base+offset下断,运行,看到:
通过偏移EF19,能够确定AES轮数为13轮,对应为AES 256,偏移B510处的函数,能够得到AESKey。
解密得到明文脚本,授权主逻辑在Lisence.js中。本地验证->获取用户特征->网络验证授权->返回密文->RSA公钥解密->设备指纹对比修改完成后,只需要按相同格式加密并打包为app.asar即可实现补丁Patch
typoraCracker是一个Typora解包解密程序,也是一个打包加密程序。你可以轻松的打造独属于你的补丁,但请注意法律上的可行性。
总有一种人,喜欢享受“正版”激活的感觉。而我就是……我采用 Patch+KeyGen,补丁去除网络授权,KeyGen用于本地验证,测试成功。typora针对electron下的源码加固仍是一片空白。简单思考后,传统代码混淆的方式对关键逻辑的保护依然有较大的提升空间,不失为一个恰当的加固方向。
看雪ID:sunfishi
https://bbs.pediy.com/user-home-883754.htm
*本文由看雪论坛 sunfishi 原创,转载请注明来自看雪社区