[原创]Typora mac版破解
2022-6-24 11:35 12046
请勿使用盗版,支持正版授权。
文中内容仅作学习和讨论,请不要从事任何非法行为。
由此产生的任何问题都将读者/用户(您)承担。
先说结论:破解点很简单,只改了js代码的一个判断条件(不看分析可以直接看第四点),这里分享我的分析流程。
本帖使用目前最新版typora:1.3.7 (6424)
一开始想尝试查看typora的运行日志,看看日志有无license的验证过程,然而发现我找不到;
运行typora,打开活动监视器,查看typora操作了哪些文件
疑似的两个日志文件:
实际分析发现不是我们想要的。
进一步在系统目录尝试了寻找有无typora相关的文件:find /Library -name Typora
仍然没有,既然找不到记录日志,就换个思路。
之前分析过windows的terminus、typora,猜测很有可能license在js代码里验证,所以直接在Typora.app 全局搜索license字段试试:
显示包内容 -> 目录Contents/Resources/TypeMark -> 拖进vscode搜索:
(稍微熟悉点app的包结构的话,应该知道js代码应该在资源目录下,然后分析一下会发现TypeMark是一个可疑地目录)
发现找到139个文件,也没法一个一个看,还得换个思路。
进入typora,弹出购买窗口,点击购买,获取购买链接字符串:
尝试全局搜索购买链接的字符串https://store.typora.io/
,发现还真有:
一看文件名license,大概率是这个文件。
vscode打开该文件:
需要先安装插件格式化js,这个不赘述了,格式化后如下:
接下来分析下js代码(我大多数时候看直觉):
链接字符串上下文代码大致是用来创建html元素,好像没什么用,只是知道购买弹窗确实是这一部分代码:
再往下看几行代码发现可疑地一些函数:useState
函数可能是用户的使用状态;hasActivated
变量可能是是否被激活;
那么就去看一下 hasActivated
的定义,发现如下:
=
赋值语句==
判断语句,判断值是否相等
尝试修改:e.hasActivated = "true" == "true"
成功。
只需要将文件Typora.app/Contents/Resources/TypeMark/page-dist/static/js/LicenseIndex.180dd4c7.5dc16d09.chunk.js
这一行代码e.hasActivated = "true" == e.hasActivated
改为e.hasActivated = "true" == "true"
保存即可。
字符串加密还是很有用的。
[2022冬季班]《安卓高级研修班(网课)》月薪三万班招生中~
最后于 2022-6-24 11:40 被SUNYQ编辑 ,原因: 错别字