Typora的破解过程
only无茗
2021年11月30日 11:36

主界面

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&#​34;).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中即可优先加载。