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代码即可完成破解工作。
image-20221109183115299.png
在Typora
require Crypto
及electron-fetch
库的时候返回经过修改的对象
修改后的electron-fetch
对象根据请求链接返回mock的有效License结果
image-20221109183322462.png
修改后的crypto
对象判断解密内容是否为mock内容来返回mock的解密license数据
image-20221109183344767.png
至此通过JS hook的方式实现了对验证流程的劫持,只要在输入激活码的地方输入能够满足typora本地判断的激活码即可进入网络验证流程并被hook代码返回正确的验证数据。
插入hook js后重打包asar即可完成破解,使用代码生成的激活码进行激活。
该方式只要验证逻辑不修改并存在注入点便持续可用,理论多版本兼容。
代码地址:https://github.com/DiamondHunters/NodeInject
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 刘德华《劲歌集》24K金碟港版[WAV+CUE][1.2G]
- Faker五冠王什么意思 世界赛五冠王Faker选手介绍
- faker塞拉斯s14决赛什么出装 faker塞拉斯s14决赛出装介绍
- LOLtoc9魔法口令在哪可以找到 2024云顶之弈toc观赛魔法口令兑换码
- 黑鸭子2008《影视经典·珍藏版》试音碟[WAV+CUE]
- 碧娜《温柔吻语2》[WAV+CUE]
- Stravinsky-Symphonies,Volume1-OrquestaSinfonicadeGalicia,DimaSlobodeniouk(2024)[24-
- 外媒评Switch2:向下兼容是关键 但挑战依然存在
- 任天堂提醒:宠物的尿或唾液或会让NS故障 把它放好!
- 《博德3》再创新高 Steam掌机总游玩时长近2000年
- 张玮伽《想你的夜DSD》东升 [WAV+CUE][1G]
- 姚璎格《 粤 24KGOLD》正版低速原抓[WAV+CUE][1G]
- 杨千嬅《如果大家都拥有海》寰亚 [WAV+CUE][998M]
- 孟庭苇.1994-1990-1994钻石精选集2CD(2022环球XRCD限量版)【上华】【WAV+CUE】
- 群星.1998-华纳好情歌精选17首【华纳】【WAV+CUE】