首页
论坛
课程
招聘
[原创]Typora 授权解密与剖析
2021-11-30 22:31 25444

[原创]Typora 授权解密与剖析

2021-11-30 22:31
25444

11月23日,Typora 正式发布 1.0 版本,进入了收费时代。

 

1.0 版本是一次性付费而非订阅的,只要支付人民币 89 元,可以在 3 台设备里使用。

Typora之于我

如你所见,这一篇文章就是使用Typora所写。自搭建个人博客起,Typora就成为了我主要的写作平台。

 

用惯了Markdown,WordPress的古腾堡编辑器没法满足我的需求,于是开始寻找替代品,最终的结果便是typora。

 

当然,多数人使用的原因不外乎以下

  • 轻盈、干净

  • 所见即所得

  • 图床
  • 主题、生态
  • (beta)免费
  • ……

如今,typora进入收费阶段,不乏使用者被迫迁移至其他写作工具上。

 

(不扯了官方话了)下面,我们来一探究竟。

敬告

请勿使用盗版,支持正版授权。

 

文中内容仅作学习和讨论,请不要从事任何非法行为。

 

由此产生的任何问题都将读者/用户(您)承担。

寻踪觅源

通过火绒剑监测行为日志

 

程序加载的一些模块

 

image-20211130184106692

 

在Windows下,typora会记录日志至{UsersRoot}\AppData\Roaming\Typora\typora.log

 

能看到可疑的注册表操作记录

 

image-20211130183426635

 

正版激活的注册项内容

 

image-20211130183559343

 

尝试修改SLicense

 

image-20211130184239487

 

重新运行软件后,从错误日志中发现调用栈暴露。

 

image-20211130184326918

渐入佳境

这里关注到了app.asar

 

通过搜索引擎,尝试解包

1
2
npm install -g asar
asar extract {installRoot}/Typora/resources/app.asar workstation/outs

发现文件被加密

 

image-20211130184736342

 

JavaScript不管是字节码还是明文脚本都会在运行时加载,结合模块列表寻找加载点

 

关注到解包得到的main.node

 

image-20211130185130235

 

IDA寻找字符串特征

 

image-20211130185218763

 

image-20211130185352718

 

通过交叉引用定位

 

看到一些导入函数

 

image-20211130185459749

 

由字符串联想到对加密文件进行的base64解码

 

导入表查找到 napi Node-API | Node.js API 文档 (nodejs.cn)

 

简单分析伪代码后,其实就是运行

1
Buffer.from(e,"base64")

刻舟求剑

尝试Findcrypt寻找算法,找到AES的Sbox和InvBox

 

通过交叉引用定位到可疑函数点 main.node+E440

 

IDA动态调试,模块加载断点

 

image-20211130190419570

 

跑起来,直至加载main.node

 

image-20211130191229401

 

分析模块后,定位base+offset下断,运行

 

看到

 

image-20211130191526130

 

正好与我们的文件对应偏移16

 

image-20211130191722678

 

继续调试能看到 分组加密的形式

 

image-20211130191832333

 

同时能够找到前16字节

 

image-20211130193509339

 

正是作为iv进行异或

 

image-20211130193604968

柳暗花明

分析调用函数,最终能够确定其函数功能

 

image-20211130192900341

 

通过偏移EF19,能够确定AES轮数为13轮,对应为AES 256

 

偏移B510处的函数,能够得到AESKey

 

image-20211130193202349

落叶归根

解密得到明文脚本,授权主逻辑在Lisence.js中

 

授权逻辑如下图

 

image-20211130205410796

 

本地验证->获取用户特征->网络验证授权->返回密文->RSA公钥解密->设备指纹对比

 

破解的思路,不多做阐述。

 

修改完成后,只需要按相同格式加密并打包为app.asar即可实现补丁Patch

typoraCracker

typoraCracker是一个Typora解包解密程序,也是一个打包加密程序。你可以轻松的打造独属于你的补丁,但请注意法律上的可行性。

测试

总有一种人,喜欢享受“正版”激活的感觉。而我就是……

 

我采用 Patch+KeyGen

 

补丁去除网络授权,KeyGen用于本地验证,测试成功

 

img

尾声

typora针对electron下的源码加固仍是一片空白。

 

简单思考后,传统代码混淆的方式对关键逻辑的保护依然有较大的提升空间,不失为一个恰当的加固方向。

 

期待typora越做越好。
——来自一个正版使用者


恭喜ID[飞翔的猫咪]获看雪安卓应用安全能力认证高级安全工程师!!

最后于 2021-12-2 02:36 被sunfishi编辑 ,原因:
收藏
点赞15
打赏
分享
最新回复 (15)
雪    币: 1595
活跃值: 活跃值 (1850)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
はつゆき 活跃值 2021-12-1 00:43
2
1
好快の破
雪    币: 365
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
MrSean 活跃值 2021-12-1 01:37
3
0
Mason大佬太强了
雪    币: 6080
活跃值: 活跃值 (1110)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
TopC 活跃值 2021-12-1 09:56
4
0
目前1.0版本还没看到让我有付费冲动的功能,还在持币观望中
雪    币: 1396
活跃值: 活跃值 (338)
能力值: ( LV3,RANK:23 )
在线值:
发帖
回帖
粉丝
Black貓①呺 活跃值 2021-12-1 11:11
5
4
像我就比较简单,直接 app.asar 修改版本为 "version": "0.9.9" ,然后关闭自动检测更新
雪    币: 1174
活跃值: 活跃值 (14754)
能力值: ( LV9,RANK:221 )
在线值:
发帖
回帖
粉丝
0x指纹 活跃值 4 2021-12-1 11:23
6
0
太快了太快了
雪    币: 663
活跃值: 活跃值 (179)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
SevenZang 活跃值 2021-12-1 12:51
7
0
好快好快 真是一点面子不给
雪    币: 1045
活跃值: 活跃值 (484)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
累累的 活跃值 2021-12-1 15:55
8
0
好狠,芜湖
雪    币: 6282
活跃值: 活跃值 (564)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
二娃 活跃值 2021-12-1 16:52
9
0
支持
雪    币: 4255
活跃值: 活跃值 (485)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
广州李寻欢 活跃值 2021-12-1 17:07
10
0
太强了
雪    币: 179
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_hgrbqfun 活跃值 2021-12-1 17:23
11
0
好文。
但我只用vscode写markdown。
雪    币: 200
活跃值: 活跃值 (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Xusually 活跃值 2021-12-1 17:30
12
0
刚出没几天,真的快啊
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
mb_ldxgwspg 活跃值 2021-12-1 19:31
13
0
Mason好强(✪▽✪)
雪    币: 2554
活跃值: 活跃值 (1256)
能力值: ( LV7,RANK:145 )
在线值:
发帖
回帖
粉丝
xi@0ji233 活跃值 2 2021-12-1 20:13
14
0
Mason爷爷tql
雪    币: 1530
活跃值: 活跃值 (672)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
duanDbg 活跃值 2022-1-17 00:18
15
0
厉害,支持下。
雪    币: 6033
活跃值: 活跃值 (2178)
能力值: ( LV6,RANK:96 )
在线值:
发帖
回帖
粉丝
Imyang 活跃值 1 2022-1-18 10:50
16
2

mac 删除 目录~/Library/Application\ Support/abnerworks.Typora的一个隐藏文件,就可以无限试用.

最后于 2022-1-18 10:52 被Imyang编辑 ,原因:
游客
登录 | 注册 方可回帖
返回