找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 223|回复: 1

Typora 授权解密与剖析

[复制链接]

2万

主题

162

回帖

18万

积分

管理员

积分
184649
发表于 2021-12-2 11:22:41 | 显示全部楼层 |阅读模式 IP:山东省青岛市 移动

登录后更精彩...O(∩_∩)O...

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 mind 于 2021-12-2 11:23 编辑

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

1.0 版本是一次性付费而非订阅的,只要支付人民币 89 元,可以在 3 台设备里使用。
Typora之于我
如你所见,这一篇文章就是使用Typora所写。自搭建个人博客起,Typora就成为了我主要的写作平台。

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

当然,多数人使用的原因不外乎以下
  • 轻盈、干净
  • 所见即所得
  • 图床
  • 主题、生态
  • (beta)免费
  • ……
如今,typora进入收费阶段,不乏使用者被迫迁移至其他写作工具上。

(不扯了官方话了)下面,我们来一探究竟。
敬告
请勿使用盗版,支持正版授权。

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

由此产生的任何问题都将读者/用户(您)承担。
寻踪觅源
通过火绒剑监测行为日志

程序加载的一些模块

1.png

在Windows下,typora会记录日志至

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

2.png

正版激活的注册项内容

3.png

尝试修改SLicense

4.png

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

5.png
渐入佳境
这里关注到了app.asar

通过搜索引擎,尝试解包
1
2
npm install -g asar
asar extract {installRoot}/Typora/resources/app.asar workstation/outs

发现文件被加密

6.png

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

关注到解包得到的main.node

7.png

IDA寻找字符串特征

8.png

9.png

通过交叉引用定位

看到一些导入函数

10.png

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


简单分析伪代码后,其实就是运行
1
Buffer.from(e,"base64")

刻舟求剑
尝试Findcrypt寻找算法,找到AES的Sbox和InvBox

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

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

11.png

跑起来,直至加载main.node

12.png

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

看到

13.png

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

14.png

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

15.png

同时能够找到前16字节

16.png

正是作为iv进行异或

18.png
柳暗花明
分析调用函数,最终能够确定其函数功能

19.png

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

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

20.png
落叶归根
解密得到明文脚本,授权主逻辑在Lisence.js中

授权逻辑如下图

21.png

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

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

修改完成后,只需要按相同格式加密并打包为app.asar即可实现补丁Patch
typoraCracker
typoraCracker是一个Typora解包解密程序,也是一个打包加密程序。你可以轻松的打造独属于你的补丁,但请注意法律上的可行性。
测试
总有一种人,喜欢享受“正版”激活的感觉。而我就是……

我采用 Patch+KeyGen

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

22.png
尾声
typora针对electron下的源码加固仍是一片空白。

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

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

(摘自:https://bbs.pediy.com/thread-270534.htm
回复

使用道具 举报

2万

主题

162

回帖

18万

积分

管理员

积分
184649
 楼主| 发表于 2021-12-3 22:59:19 | 显示全部楼层 IP:山东省青岛市 移动
1.png
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|哩布大模型|Civitai大模型|IP定位|图反推|站长素材|deepseek|即梦视频|阿狗工具|花瓣网|pinterest|php手册|宝塔文档|CyberChef|猫捉鱼铃|手机版|小黑屋|下载狗|IPS|在线工具|分享屋 ( 鲁ICP备2021028754号 )

GMT+8, 2025-5-2 02:53

Powered by 分享屋 X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表