吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 23292|回复: 315
收起左侧

[原创] [Linux/Windows]Typora 理论多版本兼容破解方案

    [复制链接]
hlrlqy 发表于 2022-11-9 19:01
本帖最后由 hlrlqy 于 2022-11-14 18:53 编辑

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 Cryptoelectron-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

破解验证脚本地址:https://github.com/DiamondHunters/NodeInject_Hook_example

使用方式:

  1. 下载自动注入工具,用破解脚本替换注入工具中的hooklog.log
  2. 构建自动注入工具,放在typora下运行
  3. 构建并运行破解验证脚本下的license_gen程序获得激活码
  4. 打开Typora,设置使用国内服务器(网络问题,非必须,不开启可能第一次激活失败后会弹出询问是否开启)后填写邮箱(任意)与生成的激活码
  5. 激活成功(windows/ubuntu最新版本测试成功)

如果在构建中遇到困难可以在验证脚本的Action中找到预先构建版本

仅供测试使用请支持正版软件,测试中产生的后果自行承担

免费评分

参与人数 146威望 +1 吾爱币 +153 热心值 +132 收起 理由
wdian + 1 + 1 谢谢@Thanks!
Math1cAiki + 1 + 1 鼓励转贴优秀软件安全工具和文档!
thinknow + 1 + 1 谢谢@Thanks!
叹城 + 1 + 1 谢谢@Thanks!
huan999555 + 1 + 1 我很赞同!
snowfox + 1 谢谢@Thanks!
Summer1003 + 1 + 1 1.7.5可用,懒得构建的可以去这里https://github.com/lxg2001/NodeInject_Ho.
yangjun0159753 + 1 + 1 很np!!大佬!
鱼儿飞 + 2 + 1 1.7.4 ubuntu20 可用
唯一之境 + 1 + 1 谢谢@Thanks!
valkyrja + 1 我很赞同!
ttt003 + 1 + 1 谢谢@Thanks!
yuyuan0316 + 1 + 1 谢谢@Thanks!
君临天下 + 1 谢谢@Thanks!
ldy2333 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
MortyS + 1 + 1 谢谢@Thanks!
EchoAria + 1 + 1 我很赞同!
breky + 1 + 1 谢谢@Thanks!
时光不再 + 1 + 1 最新版本1.6,成功激活
cx741041875 + 1 + 1 谢谢@Thanks!
chant520 + 1 + 1 谢谢@Thanks!
zozoz + 1 谢谢@Thanks!
jy03179163 + 1 + 1 热心回复!
andyshaw + 1 + 1 大佬牛牛牛
WhiteSoul + 1 + 1 我很赞同!
z-one + 1 + 1 热心回复!
wait_for_you + 1 + 1 谢谢@Thanks!
_Risky + 1 + 1 谢谢@Thanks!
yawn1030 + 1 + 1 谢谢@Thanks!
才不是弱受 + 1 + 1 20230617版本1.6.7成功激活
雾海漫游 + 1 + 1 用心讨论,共获提升!
木花夏 + 1 + 1 谢谢@Thanks!
疯丿子 + 1 + 1
XXQGhhxx + 1 + 1 我很赞同!
Stevenbest + 1 + 1 我很赞同!
m1y3ll0w + 1 + 1 还得是大佬,20230430 1.5.12 win64 √
lalicorne + 1 谢谢@Thanks!
he1a2s0 + 1 谢谢 @Thanks!
aotiyou + 1 + 1 我很赞同!
jptx + 1 + 1 谢谢@Thanks!
ljkgpxs + 1 + 1 谢谢@Thanks!
chenlun886 + 1 + 1 用心讨论,共获提升!
崔斯特 + 1 + 1 2023/4/11-1.5.12-windows可用
Frainbow + 1 + 1 我的天,不愧是大佬,叼炸天,佩服的五体投地!!!!最新版1.5.10 测试通.
三水之复制版 + 1 + 1 用心讨论,共获提升!
chenshuanglong + 1 + 1 5.10版本测试成功,更重要的是!!!直接去仓库NodeInject_Hook_example, .
TanL + 1 + 1 我很赞同!
silinocome + 1 谢谢@Thanks!
jaysun1015 + 1 + 1 我很赞同!
w4526423 + 2 + 1 谢谢@Thanks! 2023-03-22 16:11:47 测试win10 1.5.9可用
Allendale + 1 大佬nb
Eric214 + 1 + 1 用心讨论,共获提升!
punnpkin + 1 谢谢@Thanks!
吾来搬砖 + 1 + 1 大佬牛逼
ef4tless + 1 + 1 谢谢@Thanks!
hanxiao666 + 1 我很赞同!
万独孤 + 1 + 1 tql
Hiw123 + 1 谢谢@Thanks!
elegantxc + 1 + 1 我很赞同!
Reat + 1 + 1 谢谢@Thanks!
k913 + 1 + 1
liushuaijie123 + 1 + 1 我很赞同!
vayliu + 1 + 1 用心讨论,共获提升!
liboing + 1 + 1 谢谢@Thanks!
tiamo0001 + 1 + 1 我很赞同!
明月照我还 + 1 我很赞同!
AlltAWD + 1 + 1 用心讨论,共获提升!
Bohemian_Wong + 1 + 1 我很赞同!
Hmily + 1 + 20 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
wapj258 + 1 + 1 谢谢@Thanks!
dwz + 1 + 1 我很赞同!
mormas + 1 + 1 用心讨论,共获提升!
小公主々 + 1 + 1 用心讨论,共获提升!
shehuiwu + 1 + 1 谢谢@Thanks!
青春易逝 + 1 + 1 谢谢@Thanks!
_小白 + 1 + 1 我很赞同!
Autotwired + 1 谢谢@Thanks!
FKRiX + 1 谢谢@Thanks!
guoruihotel + 1 + 1 谢谢@Thanks!
rockontheroof + 1 + 1 热心回复!
三滑稽甲苯 + 2 + 1 用心讨论,共获提升!
a781768544 + 1 + 1 谢谢@Thanks!
whcynsc + 1 + 1 谢谢@Thanks!
shigc + 1 + 1 谢谢@Thanks!
rr19 + 1 + 1 热心回复!
atpjcom + 1 + 1 用心讨论,共获提升!
texsd123 + 1 热心回复!
v01d + 1 + 1 谢谢@Thanks!
HGYVIP + 1 + 1 我很赞同!
Jza1dom + 1 + 1 我很赞同!
wlb952 + 1 + 1
江樂樂 + 1 + 1 用心讨论,共获提升!
ralf9919 + 1 + 1 我很赞同!
haoera + 1 谢谢@Thanks!
composition + 1 + 1 我很赞同!
肖武章 + 1 + 1 用心讨论,共获提升!
nulla2011 + 1 谢谢@Thanks!
柯西 + 1 我很赞同!
tangerine122 + 1 + 1 我很赞同!
GetCap + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

m1y3ll0w 发表于 2023-6-5 23:49
ccmax 发表于 2023-6-5 13:30
请问node_inject.exe在哪,好像没看到

在这个项目库:
https://github.com/DiamondHunters/NodeInject_Hook_example

1. 要登录 GitHub(科学上网)
2. 在 Actions -> build(有多个,优先选最上面的)点进去
3. 滑到最下面,有一个 NodeInject-windows 的压缩包,下载,里面就有 exe
4. 把 NodeInject-windows 压缩包中的两个 exe 解压到 typora 的安装目录,比如 D:\Program Files\Typora
5. 运行 cmd 跳转到安装目录,输入 node_inject.exe 回车即可自动破解,然后输入 license-gen.exe 回车可得到激活码

为什么不直接提供 NodeInject-windows 压缩包?
我也很想直接甩个网盘链接,但论坛的总版规貌似不允许!环境形势限制,游戏规则还是得遵守。【第6条   禁止抄袭及剽窃他人作品,禁止发布任何可能存在商业侵权的内容,包括但不限于影视程序、原创或者转载商业软件的破解成品、破解补丁、注册机等。】

其次,这个压缩包也不是什么绝版文件,GitHub 能下载到!真正的阻碍在于科学上网,网上了解一下修改 host 访问 GitHub,或者尝试手机访问GitHub,还是有办法下载到文件!

免费评分

参与人数 11吾爱币 +10 热心值 +11 收起 理由
WuYule + 1 + 1 谢谢@Thanks!
SOOX + 1 + 1 谢谢@Thanks!
yijiu2330 + 1 加个k就行了
composition + 1 + 1 谢谢@Thanks!
eonun + 1 + 1 谢谢@Thanks!
ailang + 1 + 1 谢谢@Thanks!
江湖客偏锋 + 1 + 1 我很赞同!
RemindGrateful + 1 + 1 谢谢@Thanks!
jiafan + 1 + 1 谢谢@Thanks!
WM715 + 1 + 1 谢谢@Thanks!
cshoney + 1 + 1 非常厉害!

查看全部评分

smilencetion 发表于 2022-11-10 10:18
本帖最后由 smilencetion 于 2022-11-17 10:28 编辑

sspg62 发表于 2022-11-10 10:08
升完级后 发现不会用, 有没江湖救急的! 有CP最好,没有出个详细点的,小白看起来真的很懵逼

你电脑上有rust编译环境吗?有的话去楼主那两个开源仓库clone下来,项目上有详细说明,编译就行了

免费评分

参与人数 3吾爱币 +4 热心值 +3 收起 理由
snjfeng + 1 + 1 谢谢@Thanks!
末初 + 2 + 1 谢谢@Thanks!
sspg62 + 1 + 1 谢谢@Thanks!

查看全部评分

7武文斌 发表于 2023-9-21 17:50
一步到位:
https://wwsj.lanzout.com/b0fhjolfc
密码:hnlm

免费评分

参与人数 2吾爱币 +3 热心值 +2 收起 理由
moon3414 + 1 + 1 热心回复!
紫苏i + 2 + 1 谢谢@Thanks!

查看全部评分

m1y3ll0w 发表于 2023-4-30 19:53
大佬一出手,就知肯定有!目前最新 1.5.12-win64 get
主要是开源的,修改代码自己可查看!!不比全网在用的 winmm.dll 安全??(没有辣菜的意思

NodeInject_Hook_example build 下载 node_inject.exe,放在 typora 安装目录下,cmd直接输入node_inject.exe运行即可;输入license-gen.exe运行可得到激活码

有经济实力的,支持正版肯定最香!再次感谢大佬造福学生等群体!
xyz349925756 发表于 2022-11-11 08:29
还是不能太说明白了,不然会被DMCA,而且也不是很贵,有能力的还是支持下作者.
lemoncake 发表于 2023-4-14 09:32
ldmyfittinglife 发表于 2023-4-12 11:13
1.5.12版本显示序列号不正确

我一开始也是显示序列号不正确,后面解决了。你试试把node文件夹整个删除,重新运行node_inject.exe
qq54441384 发表于 2024-2-18 14:43
dazhuang 发表于 2024-2-11 17:16
从1.76更新到1.89激活就无效了,然后在此运行两个程序激活失败

把目录下的node 删除 重新运行注册机生成激活码

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
laoliu001 + 1 + 1 谢谢@Thanks!

查看全部评分

smilencetion 发表于 2023-11-1 15:02
yunzimo 发表于 2023-10-28 20:06
同1.7.6版本,不知道如何破解,也成功编译了这两个文件了,找到解决方法踢我

因为激活部分的代码被删了,换回删之前的就可以了
huan999555 发表于 2023-10-8 10:42
本帖最后由 huan999555 于 2023-10-8 10:44 编辑

win10 1.7.5 可以
微信截图_20231008104402.png
pedoc 发表于 2023-9-5 08:56
1.7.3 not working
十一七 发表于 2022-11-9 19:16
温馨提示:Mac端Typora采用Webkit开发
参见:https://theme.typora.io/doc/Write-Custom-Theme/

> Typora is created upon Webkit (on macOS) or Chromium (on Windows/Linux), so please use css properties supported by Chrome or Safari (aka Webkit).
 楼主| hlrlqy 发表于 2022-11-9 19:24
十一七 发表于 2022-11-9 19:16
温馨提示:Mac端Typora采用Webkit开发
参见:https://theme.typora.io/doc/Write-Custom-Theme/

好的。受限于设备支持,没有看过mac版,我下一个mac包看一看
se34218 发表于 2022-11-9 19:44
这个可以哦,可以用高版本了
Wesen 发表于 2022-11-9 19:50
真是一山更比一山高,楼主思路针不错
侃遍天下无二人 发表于 2022-11-9 20:11
居然是暴走漫画的头像,他们已经凉了好久了
 楼主| hlrlqy 发表于 2022-11-9 20:22
侃遍天下无二人 发表于 2022-11-9 20:11
居然是暴走漫画的头像,他们已经凉了好久了

哈哈注册的时候使用的,没有更换过
RAIPing 发表于 2022-11-9 20:22
牛,不过不知道怎么用
 楼主| hlrlqy 发表于 2022-11-9 20:23
RAIPing 发表于 2022-11-9 20:22
牛,不过不知道怎么用

代码地址有说明,在代码地址的Action里面也有构建好的二进制程序
kutwsswhere 发表于 2022-11-9 20:44
又是一个思路诶,赞
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-21 21:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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