Sublime Text 4 破解笔记
Sublime Text 4 破解笔记
偶然看到Sublime已经更新到版本4了,多了许多很nice的新特性,例如:
- 船新 UI
- 感知上下文的自动补全
- 支持 TypeScript, JSX 和 TSX
- GPU 渲染
- ...
不得不说sublime是轻量化IDE性能王者,比vscode要快不少,不过vscode如今胜在生态。
于是第一时间下载体验,网上找了个补丁。不过用了一段时间后反弹了。又显示UNREGISTER未注册,而且保存文件弹注册窗口,可能是补丁作者没破解到位,对比了下破解的文件,发现破解者只是简单的单点爆破还有去除sublime服务器校验的域名而已。好久没玩win平台的crack,索性自己动手,拿来复习练手,下面正式开始!
首先x64dbg载入sublime_text.exe主程序,shift+F9跑起来

先找个最明显的点入手,例如点击帮助->关于

关于信息这里会有注册状态,未注册显示Unregistered,那首先想到字符串大法!直接sublime exe模块搜索字符串

双击进去来到

可以看到字符串上方有个jmp跳过它,那很明显jmp下面的move ecx,228就是关于界面未注册赋值的入口,ctrl+r找下引用

找到一处双击进去来到

可以看到下方是Registered to ... 注册给某某某,那很明显
cmp byte ptr ds:[rsi],0
je sublime_text_origin.13F7159BE
cmp为关键比较je为关键跳转,cmp处下断点运行,再次点击关于,断下来到断点处,FPU中RSI寄存器值指向了地址13FFD5ED8

我们RSI右键->在内存中转到,查看内存

很明显这地方为0的时候标识未注册,把值改为1,运行之验证下结果。


果不其然Registered to Unlimited User License...
经测试,此处的修改是全局的,应该就是某个管理类中的某个布尔值来控制。改完之后ctrl+s也不再弹出提示购买弹出,窗口标题也没有提示UNREGISTERED了。


不得不说越优秀正规大型的软件往往采用比较优秀的架构设计模式,严格的面向对象风格编写。我记得以前一位长期做QQ魔改hack的大神曾赞叹过,QQ是他见过的架构最好,结构最清晰巴拉巴拉...的软件。翻译成人话就是:“非常好猜测编写的思路,非常好破解!”,哈哈哈哈哈。
好,回归正题,先不着急修改。如果这里只对跳转做爆破的话,那只是打开关于界面显示已注册而已,其他功能限制或者有暗桩啥的都没有破解绕过。网上很多对sublime的破解往往是每个限制的点爆破一下,改改跳转,再加个域名屏蔽防止服务器校验。这样可能没破解完整导致某个条件下又反弹触发校验机制,或者导致功能缺陷。
那我们的思路是,既然找到全局控制的点,那我们只需要找到一个合适的时机,对这个点强制写入值1,实现破解!
那怎么找到这个时机点呢?很简单,我们对地址13FFD5ED8(重新运行后为xxxxD5ED8)下个硬件执行断点。经过测试,有一个比较好的时机点是:每次聚焦或者切换标签的时候都会触发更改窗口标题,我们知道,未注册的时候每次窗口标题变更后面都带有(UNREGISTERED)未注册的字样。所以每次聚焦或切换标题的时候都会触发校验。所以这里是个蛮不错的点。果真我切换标签的时候,硬件断点也命中,来到这里

cmp byte ptr ds:[rax],0
sete cl
这里rax指向的就是全局控制是否注册字段的内存地址。这里和0比较了一下之后设置了ZF标志位。那就很简单了,直接操作这两句强制赋值rax指向地址的值为1即可。

运气很好,大小一致,接着第二句改下标志位,这里我们找一个空的没用的寄存器比如RCX来做等价替换

改完是

改完之,运行之,没问题完美破解,帮助->删除注册信息 都没用哈哈。ctrl+p补丁之。最后用AT4RE撸个补丁。

补丁就不放了,因为杀软会警告。也蛮简单的,可以自己动手破一个。
Sublime Text 4 破解笔记的更多相关文章
- Sublime Text 3设置笔记
Sublime Text 3设置笔记 Sublime Text 3设置指南 1. 安装package control 下载package control源码安装包,并解压: http://yun.ba ...
- Sublime Text 3 破解版 + 注册机 + 汉化包 + 教程
SublimeText 是一个代码编辑器,也是HTML和散文先进的文本编辑器. SublimeText 是由程序员 Jon Skinner 于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展 ...
- Sublime Text 3 破解+ 汉化包
破解: 第一步:打开主文件搜索十六进制F7D81AC02005 修改1AC0为B001 第二步:搜索 F3FF8BC7E895 修改其中的8BC7为33C0 第三步:过阻拦未注册提示 搜索 0F859 ...
- sublime text 2 破解
本文是介绍sublime text 2.0.2 build 2221 64位 的破解 在你使用sublime时可能经常出现下图: 这是在提醒你注册 在工具栏上点击help->Enter Lice ...
- 【编辑器】【Sublime Text】使用笔记
1.安装 官网下载即可 2.插件 sublime-text - Sublime Text 怎么高亮 Markdown 的文件语法 设置Sublime为VIM模式 如何在sublime 里面设置 ver ...
- Sublime Text 2 使用笔记(大全呀,菜鸟必看)
下载和安装 Sublime Text2是一款开源的软件,不需要注册即可使用(虽然没有注册会有弹窗,但是基本不影响使用). 下载地址:http://www.sublimetext.com ,请自行根据系 ...
- Sublime Text 3083破解/汉化
破解码:—– BEGIN LICENSE —– Andrew Weber Single User License EA7E-855605 813A03DD 5E4AD9E6 6C0EEB94 BC99 ...
- Sublime Text ——3200破解补丁
声明 该资源来源于网络,只为学习交流使用,侵权联系删除.长期使用和觉得sublime text 不错的话,还望购买授权码,多多支持正版!!! 重要的事情说三遍 请支持正版!!! 请支持正版!!! 请支 ...
- Sublime Text 2 破解 on Mac
用Sublime Text 2自己打开自己的二进制文件:Sublime Text 2/Contents/MacOS/Sublime Text 2 搜索所有3342 3032 都替换成3242 3032 ...
随机推荐
- 按照自己的思路研究Spring AOP源码【2】
目录 问题的提出 哪一步导致了顺序的改变 AbstractAdvisorAutoProxyCreator.sortAdvisors()方法 总结 问题的提出 上面这篇文章介绍了Spring AOP源码 ...
- SE_Work1_阅读构建之法&项目管理实践
项目 内容 课程:北航-2020-春-软件工程 博客园班级博客 要求:阅读<构建之法>并回答问题 个人博客作业 我在这个课程的目标是 提升团队管理及合作能力,开发一项满意的工程项目 这个作 ...
- 1.HTML入门
1.1 初识HTML 1.1.1 概述 网络世界已经跟我们息息相关,当我们打开一个网站,首先映入眼帘的就是一个个华丽多彩的网页.这些网页,不仅呈现着基本的内容,还具备优雅的布局和丰富的动态效果,这一切 ...
- 分布式日志传输系统Databus(一)--系统介绍
Databus系统是微博DIP团队开源的分布式日志传输系统.它是一个分布式.高可用的,用于采集和移动大量日志数据的服务.它基于流式数据的简单而灵活的架构,具备健壮性和容错性,具有故障转移与恢复机制.它 ...
- Jinja2模板概述
例子一 循环语句 [root@m01 ~]# cat upstream.conf upstream web { {% for i in range(1,11) %} server 172.16.1.{ ...
- Oracle中Table函数简单应用实例
说明 表函数可接受查询语句或游标作为输入参数,并可输出多行数据. 该函数可以平行执行,并可持续输出数据流,被称作管道式输出. 应用表函数可将数据转换分阶段处理,并省去中间结果的存储和缓冲表. 优势 1 ...
- 危险!水很深,让叔来 —— 谈谈命令查询权责分离模式(CQRS)
多年以前,那时我正年轻,做技术如鱼得水,甚至一度希望自己能当一辈子的一线程序员. 但是我又有两个小愿望想要达成:一个是想多挣点钱:另一个就是对项目的技术栈和架构选型能多有点主动权. 多挣点钱是因为当时 ...
- 面试侃集合 | SynchronousQueue公平模式篇
面试官:呦,小伙子来的挺早啊! Hydra:那是,不能让您等太久了啊(别废话了快开始吧,还赶着去下一场呢). 面试官:前面两轮表现还不错,那我们今天继续说说队列中的SynchronousQueue吧. ...
- 转载 | Scala 如何避免使用 Null
在 Java 里,null 是一个关键字,不是一个对象,所以对它调用任何方法都是非法的. Scala 的 Option类型 Scala在变量和函数返回值可能不会引用任何值的时候使用 Option 类型 ...
- JVM学习心得—JVM内存模型(个人整理,请勿转载)
一.运行时数据区域 线程私有的:程序计数器+虚拟机栈+本地方法栈 线程共享的:堆+方法区(运行时常量池)+直接内存(非运行时数据区的一部分) *JDK1.8后将方法区废除,新增元空间. 1.1 程序计 ...