
主界面
Typora现在开始收费了,下面来介绍一下如何破解Typora。
知彼知己,百战不殆,先确认软件开发语言和框架。

入口函数

目录结构
根据目录结构和程序的入口函数,可以得到程序是使用electron开发的软件。electron作为目前桌面端的框架是非常火的,vscode,迅雷,网易云音乐,等等的桌面端都是使用electron开发的,electron基于nodejs,使用的js语言开发,把它看成一个浏览器就可以了。所有资源都在resources目录中,而App的业务js都被打包在App.asar中,首先对其解包
npm install asar
asar extract App.asar ./App3
解压后的文件,但是文件被加密了。

加密的文件
要分析软件的注册逻辑,我们必须要找到解密算法,由于electron是开源的,很容易定位到关键地方。


算法部分,


通过常量表,得到是aes算法。这样我们就得到了所有的解密后的js

下面来分析具体的注册逻辑

首先判断注册码是不是满足以下规则

如果满足则,获取电脑名,机器码和注册码等等发送给服务器


再用公钥解密信息,这里是服务器私钥加密,客户端公钥解密。
require("crypto").publicDecrypt(PUB_KEY, n);
如果服务器返回成功,则写入到本地注册表保存起来,这里写入的也是加密的。


破解办法:
no1.无限试用15天
清除注册表HKEY_CURRENT_USER\Software\Typora

清除 \AppData\Roaming\Typora
no.2 替换公钥
直接替换PUB_KEY为自己生成的rsa2048的公钥, HOST也替换成自己的服务器,然后服务器自己私钥加密成功数据返回。
no3.直接patch js

start函数内直接修改成已认证。
ps.
修改的license.js不需要再加密回去了。因为license.js是atom.js require进来的。而在electron中是有优先级的。修改过的license.js放入到Typora\resources\node_modules中即可优先加载。

