吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 14916|回复: 132
收起左侧

[原创] [Windows]Sublime Text 4143注册分析

    [复制链接]
xqyqx 发表于 2022-12-24 17:46
本帖最后由 xqyqx 于 2022-12-24 19:04 编辑

看到论坛里已经有很多朋友分析过如何爆破它了,但好像还没有分析注册过程的
分析对象是x64的版本4143:
https://download.sublimetext.com/sublime_text_build_4143_x64_setup.exe
使用工具:

  • x64dbg
  • winhex
  • openssl

寻找注册过程函数

我们可以从关于对话框中的Unregistered入手
win1.png
打开x64dbg,载入sublime_text.exe,运行,搜索=>当前模块=>字符串,过滤Unresgistered
win2.png
双击来到代码段,向上查找,发现有一个跳转跳过Registered to,前面比较了[rsi+5]的值
那么我们在此处下断点,找到[rsi+5]的地址,在此处下写入断点
win3.png
win4.png
随便在网上找一组没被软件本身屏蔽的注册码(可以被服务器屏蔽),然后断开网络,将注册码输入,点击注册,断下来了,可以发现框出来的函数决定了是否将标志位设置为1
win5.png

分析注册过程

进入刚才那个函数,下断点,断开网络,输入假码注册:

----- BEGIN LICENSE -----
52pojie
Unlimited User License
EA7E-8888
88888888888888888888888888888888
88888888888888888888888888888888
88888888888888888888888888888888
88888888888888888888888888888888
88888888888888888888888888888888
88888888888888888888888888888888
88888888888888888888888888888888
88888888888888888888888888888888
------ END LICENSE ------

断下来了,我们可以发现函数最开始对[7FF6A2AC8670]往后0xA0个字节的每个字节异或FD,然后拼接出了一个der格式的rsa公钥
win6.png
key.png
继续往后,可以发现这个函数前传递了我们输入的假码和公钥,很有可能是注册的关键函数,进去看看
win7.png
函数中一共只有两个跳转,图中第一个被设置断点的函数前传递了EA7E,猜测可能是校验输入的产品编号是否正确
而下面框出来的函数,很有可能是注册验证的函数,前面传递了rsa公钥、假码的前三行(注册信息)、以及假码的剩余部分(注册码),并且下面将eax的值传入esi,而下面有一个jmp跳过了一段不可能运行的代码xor esi,esi,说明程序是不希望esi的值为0的,此时我们观察寄存器,运行完“注册函数”后,eax的值为0,那么esi的值也将为0,此时我们将eax的值改为1试试,结果注册成功了,更加验证了那个函数是注册函数
win8.png
进入注册函数,下断点,断开网络,再次输入假码

可以看见函数最开始准备进行一个sha1运算
win9.png
下面的一个决定函数返回值关键跳转前的函数,被传入了0x80,假码的剩余部分(注册码),以及一段16进制数据,我们尝试将假码的前三行(注册信息)进行sha1运算,恰好就是这段16进制数据,这个函数很有可能就在进行rsa验签
win10.png
综上,可以逆推出注册码的生成过程:

注册信息=>sha1哈希运算=>rsa私钥签名

网验去除

回到刚才设置[rcx+5]的地方,可以发现上面有一个判断会跳过本地注册验证,进入框出的函数内
win11.png
发现了"/license_notification",“?n=”等字符串,应该就是网验了,把他们干掉就行
win12.png
同时发现使用假码注册后一段时间会重新变成未注册,怀疑也是网验,搜索字符串“?n=”,果然还有一个"/check/",干掉就行
win13.png

修改方法

1.直接爆破(sublime merge与之类似)

首先去掉网验
直接将刚刚签名函数的返回值强制设为1即可
即将函数的开头修补为:

mov eax,1
retn

然后输入任意符合格式的注册码即可

2.替换公钥,制作注册机

首先去掉网验
用openssl生成一对der格式的公私钥(为了保证大小一致,e尽量也选17),用winhex将公钥全部异或FD,写入sublime_text.exe,然后还要注意程序由一处校验了rsa公钥的sha256的几位,将这些改成自己的公钥的sha256相应的几位即可
sha256.png
然后写个程序,将注册信息进行一个sha1的rsa签名即可(不能用中文用户名)
keygen.png

补个成功图(我看其他破解都不能显示username,以上两种方法均能显示username):
success.png

免费评分

参与人数 48吾爱币 +49 热心值 +46 收起 理由
破解爱好者。 + 1 + 1 热心回复!
wlwolf56 + 1 + 1 谢谢@Thanks!
ozpmian + 1 用心讨论,共获提升!
kn0sky + 1 + 1 我很赞同!
Dust_Evc + 1 + 1 太好了,有空学习学习,精品!
wuaipojieVim + 1 + 1 鼓励转贴优秀软件安全工具和文档!
FireEgg + 1 + 1 我很赞同!
sanstuby + 1 + 1 谢谢@Thanks!
Sh4d0w + 1 + 1 用心讨论,共获提升!
onlywey + 1 + 1 我很赞同!
Nanxing + 1 + 1 我很赞同!
T0T20230313 + 1 热心回复!
听雨长风 + 1 + 1 我很赞同!
d3solate + 1 + 1 用心讨论,共获提升!
darkdog + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
小怪兽01 + 1 + 1 热心回复!
CIsseAway + 1 谢谢@Thanks!
wangab + 1 + 1 我很赞同!
fengbolee + 2 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
Quincy379 + 1 + 1 谢谢@Thanks!
max0960 + 1 + 1 谢谢@Thanks!
cnhuym + 1 + 1 谢谢@Thanks!
qly + 1 + 1 热心回复!
初七的果子狸 + 2 + 1 谢谢@Thanks!
gaosld + 1 + 1 谢谢@Thanks!
i67 + 1 + 1 用心讨论,共获提升!
yanecc + 1 + 1 我很赞同!
wangtian666 + 1 我很赞同!
贼将休走 + 1 + 1 用心讨论,共获提升!专业的分析
dodjjdjd + 1 + 1 热心回复!
zwyphoenix + 1 鼓励转贴优秀软件安全工具和文档!
Barnes + 1 + 1 用心讨论,共获提升!
lingyun011 + 1 + 1 热心回复!
hanbangze + 1 + 1 谢谢@Thanks!
ysy2001 + 1 + 1 谢谢@Thanks!
RainH + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
抱薪风雪雾 + 1 + 1 谢谢@Thanks!
孙天琪 + 1 + 1 用心讨论,共获提升!
kuaile365 + 1 + 1 用心讨论,共获提升!
JackLSQ + 1 + 1 用心讨论,共获提升!
YFxbxb888 + 1 用心讨论,共获提升!
5omggx + 1 + 1 用心讨论,共获提升!
朱朱你堕落了 + 3 + 1 楼主的那个C++代码怎么写的?
18685157041 + 1 + 1 用心讨论,共获提升!
wkxq + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
jiangzhikuan + 1 + 1 谢谢@Thanks!
kwan8888 + 1 + 1 谢谢@Thanks!
olhoscn + 1 + 1 用心讨论,共获提升!

查看全部评分

本帖被以下淘专辑推荐:

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

 楼主| xqyqx 发表于 2022-12-24 23:12
涛之雨 发表于 2022-12-24 23:07
我选择patch时直接改,话说为什么没见到dll劫持通杀的

其实文章里爆破那个思路我就拿大白做了个dll劫持,这个特征码同时支持text和merge,输入任意假码即可注册成功
patch.png
patch2.png

免费评分

参与人数 2吾爱币 +5 热心值 +2 收起 理由
guhuishou + 1 + 1 谢谢@Thanks!
涛之雨 + 4 + 1 我很赞同!

查看全部评分

 楼主| xqyqx 发表于 2022-12-28 18:59
江男 发表于 2022-12-28 17:02
跟着一步一步走,也没能走下来,哎~
第一处,去除网验是把跳转nop掉?为什么我没关闭网络的情况下也没执行 ...

要去除网验的话其实直接把那个url字符串改成空就行了
要修改返回值的注册函数是这个:7FF6A29F678D,也就是将esi的值置为1
win8.png
shengchiqie 发表于 2022-12-24 18:16
jiangzhikuan 发表于 2022-12-24 19:23
感谢分享~
wkxq 发表于 2022-12-24 19:23
分析的很详细!
wgz001 发表于 2022-12-24 19:48
学习了
666
忆江南 发表于 2022-12-24 19:51
非常感谢楼主的分享!周末快乐!
Toast 发表于 2022-12-24 19:55
感谢楼主的分享!周末快乐!
MagicalYu 发表于 2022-12-24 20:18

谢谢分享,学习了
androllen 发表于 2022-12-24 21:47
学习了,很教程完整
pizazzboy 发表于 2022-12-24 22:14

非常感谢楼主的分享,周末快乐!!!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-14 14:46

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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