Typora 授权解密与剖析

admin 2021年12月31日09:59:50程序逆向评论138 views1832字阅读6分6秒阅读模式

Typora 授权解密与剖析

本文为看雪论坛优秀文章

看雪论坛作者ID:sunfishi


11月23日,Typora 正式发布 1.0 版本,进入了收费时代。
 
1.0 版本是一次性付费而非订阅的,只要支付人民币 89 元,可以在 3 台设备里使用。


1


Typora之于我


如你所见,这一篇文章就是使用Typora所写。自搭建个人博客起,Typora就成为了我主要的写作平台。
 
用惯了Markdown,WordPress的古腾堡编辑器没法满足我的需求,于是开始寻找替代品,最终的结果便是typora。
 
当然,多数人使用的原因不外乎以下
  • 轻盈、干净

  • 所见即所得

  • 图床

  • 主题、生态

  • (beta)免费

  • ……


如今,typora进入收费阶段,不乏使用者被迫迁移至其他写作工具上。下面,我们来一探究竟。


2


敬告


请勿使用盗版,支持正版授权,文中内容仅作学习和讨论,请不要从事任何非法行为。由此产生的任何问题都将读者/用户(您)承担。



3


寻踪觅源


通过火绒剑监测行为日志,程序加载的一些模块。
Typora 授权解密与剖析
在Windows下,typora会记录日志至{UsersRoot}AppDataRoamingTyporatypora.log,能看到可疑的注册表操作记录。

Typora 授权解密与剖析正版激活的注册项内容:

Typora 授权解密与剖析
尝试修改SLicense:
Typora 授权解密与剖析
重新运行软件后,从错误日志中发现调用栈暴露。

Typora 授权解密与剖析


4


渐入佳境


这里关注到了app.asar,通过搜索引擎,尝试解包。
npm install -g asarasar extract {installRoot}/Typora/resources/app.asar workstation/outs

发现文件被加密:
 
Typora 授权解密与剖析
 
JavaScript不管是字节码还是明文脚本都会在运行时加载,结合模块列表寻找加载点。
 
关注到解包得到的main.node:
 
Typora 授权解密与剖析
 
IDA寻找字符串特征:
 
Typora 授权解密与剖析
 
Typora 授权解密与剖析
 
通过交叉引用定位,看到一些导入函数。
 
Typora 授权解密与剖析
 
由字符串联想到对加密文件进行的base64解码,导入表查找到 napi Node-API | Node.js API 文档 (nodejs.cn)。
 
简单分析伪代码后,其实就是运行。
Buffer.from(e,"base64")


5


刻舟求剑


尝试Findcrypt寻找算法,找到AES的Sbox和InvBox,通过交叉引用定位到可疑函数点 main.node+E440
 
IDA动态调试,模块加载断点:

Typora 授权解密与剖析
 
跑起来,直至加载main.node:
 

Typora 授权解密与剖析

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

Typora 授权解密与剖析


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

Typora 授权解密与剖析

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

Typora 授权解密与剖析

同时能够找到前16字节:

Typora 授权解密与剖析

正是作为iv进行异或:

Typora 授权解密与剖析



6


柳暗花明


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

Typora 授权解密与剖析

通过偏移EF19,能够确定AES轮数为13轮,对应为AES 256,偏移B510处的函数,能够得到AESKey。

Typora 授权解密与剖析



7


落叶归根


解密得到明文脚本,授权主逻辑在Lisence.js中。
 
授权逻辑如下图:

Typora 授权解密与剖析

本地验证->获取用户特征->网络验证授权->返回密文->RSA公钥解密->设备指纹对比
 
破解的思路,不多做阐述。
 
修改完成后,只需要按相同格式加密并打包为app.asar即可实现补丁Patch



8


typoraCracker


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


9


测试


总有一种人,喜欢享受“正版”激活的感觉。而我就是……
 
我采用 Patch+KeyGen,补丁去除网络授权,KeyGen用于本地验证,测试成功。

Typora 授权解密与剖析

typora针对electron下的源码加固仍是一片空白。
 
简单思考后,传统代码混淆的方式对关键逻辑的保护依然有较大的提升空间,不失为一个恰当的加固方向。
 
期待typora越做越好。——来自一个正版使用者



Typora 授权解密与剖析

看雪ID:sunfishi

https://bbs.pediy.com/user-home-883754.htm

*本文由看雪论坛 sunfishi 原创,转载请注明来自看雪社区



Typora 授权解密与剖析


# 往期推荐

1.内核漏洞学习-HEVD-StackOverflowGS

2.人人都可以拯救正版硬件受害者(Jlink提示Clone)

3.frida内存检索svc指令查找sendto和recvfrom进行hook抓包

4.从0开始实现一个简易的主动调用框架

5.Kernel从0开始

6.通过PsSetLoadImageNotifyRoutine学习模块监控与反模块监控



Typora 授权解密与剖析



Typora 授权解密与剖析

球分享

Typora 授权解密与剖析

球点赞

Typora 授权解密与剖析

球在看



Typora 授权解密与剖析

点击“阅读原文”,了解更多!

原文始发于微信公众号(看雪学苑):Typora 授权解密与剖析

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月31日09:59:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  Typora 授权解密与剖析 http://cn-sec.com/archives/707349.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: