Typora 破解思路

互联网上公开的破解手段中,大多数都是采用对 Typora 加密的核心JS进行修改或Patch二进制实现绕过授权的,但这无疑会出现以下几种问题

  • 针对单个版本,无法做到通用补丁
  • 由于AES代码在 main.node 中,无法通用的hook密匙,需要手动获取AES密匙解密文件
  • 侵入性大,由于核心js长度硬编码在main.node中,调试与修改需要操作二进制程序

针对以上几个痛点整理出以下几个需求

  • 尽量实现全版本兼容,且无需修改二进制程序以保证多平台可用
  • 能够优雅的处理激活过程,最好像正版一样使用
  • 无需修改入口及使用补丁,保证更新版本只需要 one click 激活

俗话说,打蛇打七寸,去跟作者防护的JS做对抗如同撞豆腐也要找块冻豆腐,如何能四两拨千斤的点破罩门呢?

针对传统软件的破解,我们常采用抓包/山寨服务器的方式修改验证包实现,但在逆向过程中发现Typora使用了非对称算法解密数据,导致不修改核心js就无法做到山寨数据,那么这条路就行不通了。

真的行不通吗?

在分析的过程中注意到Typora使用nodejs自带的crypto.publicDecrypt()

是否可以hook nodejs 相关实现来修改数据呢?

当然是可以的,Nodejs 本身是开源的,查看源码了解到算法最终实现是C++语言,分析二进制程序就能找到对应的实现位置进行hook,但这明显的违背了我们的“二进制无关”需求

有没有什么其他办法对该函数进行hook呢

进一步的来说,Nodejs 运行的 ECMAScript 本身就存在 hook 能力,若使用js对typora使用的API进行hook便可以满足二进制无关的需求,以此来以点破面。

那么如何使用JS进行hook呢?首先需要一个能够让我们注入JS的方式,大有如下两种思路

  • 针对Nodejs的运行环境,注入并调用Node执行JS的函数插入我们的JS
  • 针对未加密的node_modules,将代码插入库的明文代码中

显然就目前来讲第二种方式是比较省心的,但向node_modules的库中插入hook代码需要考虑几个问题

  • 被插入库的加载时机,加载晚于核心JS无法hook
  • HOOK方式

经过对核心JS的分析,发现raven这个库会在较早的时机被加载,所以可以将代码插入到该库的index.js

而HOOK方式经过尝试采用了对Modules原型重写,拦截require的方式HOOK Typora使用的库对象并进行修改

明确以上两点后编写hook代码即可完成破解工作。

Typora 理论多版本多平台兼容破解方案

image-20221109183115299.png

Typora require Cryptoelectron-fetch 库的时候返回经过修改的对象

修改后的electron-fetch对象根据请求链接返回mock的有效License结果

Typora 理论多版本多平台兼容破解方案

image-20221109183322462.png

修改后的crypto对象判断解密内容是否为mock内容来返回mock的解密license数据

Typora 理论多版本多平台兼容破解方案

image-20221109183344767.png

至此通过JS hook的方式实现了对验证流程的劫持,只要在输入激活码的地方输入能够满足typora本地判断的激活码即可进入网络验证流程并被hook代码返回正确的验证数据。

插入hook js后重打包asar即可完成破解,使用代码生成的激活码进行激活。

该方式只要验证逻辑不修改并存在注入点便持续可用,理论多版本兼容。

代码地址:https://github.com/DiamondHunters/NodeInject

标签:
Typora 理论多版本多平台兼容破解方案

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
无争山庄资源网 Copyright www.whwtcm.com

评论“Typora 理论多版本多平台兼容破解方案”

暂无“Typora 理论多版本多平台兼容破解方案”评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。