Sublime Text 破解
引言
放假三天,呆家里把win7换成了win8.1,接着玩起了hyperv,试着装了个windows xp虚拟机,体验很不错
。不过对linux系统的支持不怎么样,装了个ubuntu,体验相当差!闲着无聊,在虚拟机里用od调试Sublime Text,探索了一下它的注册流程,于是有了这篇博文,与大家一起分享一些逆向思路,共同学习。
初探——运行环境和初步分析
windows xp(32位)系统 + ollydbg + sublime text(32位)。三个工具请自行去官网下载
。首先尝试在Sublime Text(下面以ST替代)注册界面随意输入字符,结果如下:


将ST拖入OD调试运行,以“That license key”作为线索,搜索字符串:

点击后,在出现的窗口里继续右键,选择查找文本:

双击该行,跳转到指令处并按f2下断点:

我们可以再尝试注册一下ST,观察其是否在这断下。尝试过程我在这略去,可以证实,其验证过程确实会经过这。我们用鼠标往上一行一行代码点击一下,可以看到代码的流程:


可以看到,通过004c43E0处 TEST EAX,EAX,来判断, 当EAX不为0时,跳转至下面的代码处。我们来验证一下流程是否真的是这样。将其跳转指令改一下,由JNZ改为JZ,然后再去注册,看看弹出什么:


哈哈,注册成功。太简单了吧,只是改了一下跳转,随意输入字符就可以通过注册了。但是,不知道大家注意到没,ST主窗口上依然显示的UNREGISTERED……看起来、、、似乎、、、好像、、、改个跳转的作用仅仅是欺骗下我们自己。。。。。
进一步分析——关键是EAX寄存器的值
从上面的分析可以看到,它是根据EAX的值来决定跳转的,我们可以尝试从此处向上跟一下EAX的值在哪处改变了。一般来说,call都是用eax来返回值的,那么eax的值是否是上面004C43CF那个call的返回值呢?我们双击该行:


如上图,我们猜测EAX是在这里被赋值的。那么将此处代码改一下,让EAX为0,再注册试试:


点击注册,可以看到,弹窗直接消失了,然后主窗口处的“UNEEGISTERED”字样也不见了。这次,看起来我们真的破解了ST。我们右键保存该修改,并覆盖当前的Sublime Text.exe(如果怕恢复不了,可以先弄一份副本),如下所示:


直接全部覆盖掉即可。然后我们再双击打开ST,蛋疼的一幕出现了:

不过,我们可以点击注册试试。可以看到,只要随意输入字符注册,那个”UNREGISTERED”字符便会去掉,我们再看看”About Sublime Text“:

可以看到,只要我们每次打开ST,然后注册,ST便认为我们已注册。
但是,这样我们能满足吗?作为一个追求完美的程序员,每次打开软件,还要再点击注册!!!这你能忍吗?如果不能忍,请以留言或者点击右下角赞的形式告知我
。
注:以上所有内容,仅是为了交流,请大家支持正版。
如果有对后续感兴趣的同学,请点击这里,我在这里分享了后面的分析内容。
Sublime Text 破解的更多相关文章
- Sublime Text 3 最新可用注册码(免破解)
12年的时候分享过Sublime Text 2的注册码和破解方法.4年后容我更新一下Sublime Text 3的注册码.. 最好还是购买正版主持版权.:D. 以下两枚注册码用最新的Sublime T ...
- sublime Text 的安装、破解、汉化、使用
Sublime Text 3安装与使用 本文是Sublime Text 全程指引 by Lucida (http://www.cnblogs.com/figure9/p/sublime-text- ...
- Mac OS X下Sublime Text (V2.0.1)破解
转自:http://blog.sina.com.cn/s/blog_559d66460101cab0.html 1. 在http://www.sublimetext.com/上根据操作系统选择对应版本 ...
- 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安装汉化破解.插件包安装教程_百度经验 http://jingyan.baidu.com/article/ff4116259b057c12e48237b8.ht ...
- Sublime Text 3 中文汉化绿色破解特别版下载
Sublime Text是一款代码编辑器,几乎支持所有语言的编写.sublime给人们的印象不外乎小巧.速度快.并且快捷键丰富而强大.不知繁多的插件. sublime一般被应用到前端的开发.Subli ...
- Sublime Text 3 Build 3047 32bit/64bit 简体中文安装破解版
Sublime Text 3 Build 3047 32bit/64bit 简体中文安装破解版 Sublime Text 3 Build 3047 32bit 简体中文安装破解版下载:http://y ...
- 【工具篇】Sublime Text 2 安装汉化破解、插件包安装教程详解
Sublime Text概述: Sublime Text是一个代码编辑器,也是HTML和散文先进的文本编辑器. 漂亮的用户界面和非凡的功能,例如:迷你地图,多选择,Python插件,代码段等等. 完全 ...
随机推荐
- C# Func<>托付
曾经我们为了可以调用一个方法.必须比照这种方法定义一个对应的delegate. 原先我们定义delegate // 托付声明 -- 定义一个签名: delegate double MathAction ...
- HDU 4293 Groups (线性dp)
OJ题目:click here~~ 题目分析:n个人分为若干组 , 每一个人描写叙述其所在的组前面的人数和后面的人数.求这n个描写叙述中,最多正确的个数. 设dp[ i ] 为前i个人的描写叙述中最多 ...
- js获取网络图片的宽和高
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- [Angular 2] @Input & @Output Event with ref
The application is simple, to build a color picker: When click the rect box, it will check the color ...
- iOS开发——图形与动画篇OC篇&图层基本上动画
图层的一些基本动画效果 #define kRadianToDegrees (radian) (radian * 180.0) / (M_PI) //闪烁 [self.testView.layer ad ...
- codeigniter分页类传多个参数(转)
http://example.com/index.php/控制器/方法名/页面的偏移值 页面的偏移值必须是方法名后第一个参数,否者分页类不能判断当前是哪一页,而用ci的分页类进行页面跳转时他是把偏移值 ...
- laraval框架model注意事项
今天创建了一个model,名字叫做Role_Users.php,结果运行的时候死活不识别,后来发现去掉名字中的下划线就可以识别了,虽然解决了,但还是不明白原理,若有大神看到但求解答
- IOS应用程序多语言本地化解决方案
最近要对一款游戏进行多语言本地化,在网上找了一些方案,加上自己的一点点想法整理出一套方案和大家分享! 多语言在应用程序中一般有两种做法:一.程序中提供给用户自己选择的机会:二.根据当前用户当前移动设备 ...
- font拓展字体
最近接触了一个将字体拓展的方法,感觉很不错,所以积累一下. 最近接触的项目一直再用antd,它本身已经提供了很多图标,但是依然不够用,所以需要我们拓展出来一些. 当我们下载到本地之后,就会有几个文件, ...
- spring mvc 使用Optional
return Optional.ofNullable(brokerRepository.findOne(id)) .map(broker -> new ResponseEntity<> ...