目录
什么是Sublime Text
Sublime Text 是一款功能强大的跨平台文本编辑器,适用于代码、标记和散文。它支持多种编程语言和标记语言,用户可以使用主题进行定制,并通过插件扩展其功能。
我自己比较习惯使用Sublime text作为我日常使用的文本编辑器,原因如下:
- 跨平台:我常常在Windows与Arch两个系统中切换使用。我不怎么爱用vim,nano这些编辑器。因为我不想重装完系统后有重新配置vim,而Sublime的话可以基本开箱即用(虽说有dotfiles这种方便的东西,但我太懒了并没有想学的想法)
- 轻量:我就是看Electron应用不顺眼
- Package Manager生态:有不错的color scheme,我挺喜欢;还有Markdown插件,让我少了个用VSC的理由(苦笑)
…
为什么要自己破解
sublime的付费版相较于免费版在功能上没有区别,就少了个会随时提醒你赞助的弹窗。听起来好像无伤大雅,但当你进入工作环境后需要疯狂按 Ctrl+S 时它真的很烦人!!!
我曾在52上寻找过破解版,它们都些让我劝退的原因:
- 无法使用Package Manager:没有Package Manager的sublime是十分难用的,不装插件它甚至不支持 UTF-8
- 触发防破解机制
最后被逼得穷途末路只好自己破解
进入正题
我有两年没搞破解了,很多破解知识已经忘干净了,所以有低级错误请见谅😥
分析
首先我们要明确我们的目的—干掉这个弹窗。
那么有这些办法可行:
- 寻找判断是否为捐赠用户的jump,破解联网验证并拔除所有暗桩
- 寻找控制弹窗弹出的函数,使之在任何条件下都不弹出
显然从可操作性和时间复杂性上说2方案更无脑且更简单,所以我选择2方案
前置操作
先用PEID查壳…没查到。那再试试万能脱壳机…也不行。
好吧,尝试自己脱壳,反正可以用ESP大法1嘛…等下,我好像没破解过64位程序唉😫
(省略查资料的事件)
没脱壳应该没什么关系吧(不要学我)
进入x64dbg
- 先
F9进入程序主界面 - 搜索字符串"This is an unregistered copy"

- 进入函数,我们很快就看出了弹窗函数的一部分

- 函数顶部有个jmp,这阻挠了我们分析这个子函数是哪个函数调用而来。我们对之、子函数顶部进行
查找引用操作,得知就在上面标注处(下图 00007FF6AB750D81 )
|
|
- 我们进行一下简单的推理:要使窗口弹出,则必须要运行到
进入加载字符串函数这个注释处,而要到这一环节着要从上方的jge或是jne跳转过来。那么我们是不是不让这两个jump执行就可以了?只能说有可能,毕竟你不清楚在两个是在子函数内的还是外面的,会不会跳过之后触发防破解代码…
- 我们继续向上分析,挺幸运的是我们看到了
GetTickCount这个系统函数,我们在 MSDN 查找它的作用。
GetTickCount 函数 (sysinfoapi.h)2
作用:检索自系统启动以来已用过的毫秒数
返回值:自系统启动以来经过的毫秒数。
好的,那我们基本上可以猜出这个函数了:

- 那么我们就有两种改法了
- 修改GetTickCount函数上下两个判断
- 更改jge,jne两个跳转
- 这里我选择第一种,因为第二种可能会触发一些暗桩。(具体有无我也没分析)。 这两种改法任选一个即可。
- 将jne改为jmp
- 将jl改成jmp
尾声
目前没遇到什么问题。