【原创】10分钟破解sublime text 3059/3061全部版本

1. 准备工具

* IDA :强大的反汇编工具,目前最新的可用的版本是6.1, 可以到我的共享下载 IDA6.1
* winhex : 强大的十六进制编辑器,为了实现爆破必须有一个可用的十六进制编辑器。额,在这里用Vim确实不方便。可以到我的共享下载 winhex 17.2
* sublime text原程序,到官网下载吧,我推荐下载Protable版,解压后即可用。对MacOS用户,道理是一样的,下载dmg镜像文件后直接解压即可得到名为Sublime Text的可执行程序

2. 体验sublime text,发现突破点

下面我的说明都是以sublime text windows 32位的程序为例进行说明,在其他平台上的表现完全一致。   

打开sublime text程序,相信你已经把准备工作做好了。打开程序后新建文件随便写一些文字,然后狂按Ctrl+S进行保存,这时就会弹出注册对话框。如下图:
https://dl.dropboxusercontent.com/u/6893139/images/sublime_text_3059_crack/2013-12-24_172542.png
看看这个对话框的标题: This is an unregistered copy,这就是我们的突破口。   

下面就开始搞。

3. 分析程序,找到关键位置

- 用IDA加载sublime text可执行程序,你应该知道自己把可执行程序放哪里了。IDA分析程序要正经花些时间,等分析完了按一下Space键,就是按一下空格键。(感觉自己很麻婆)

- 在IDA里找菜单Search-->text(Alt+t), 打开搜索文本对话框,在搜索框内输入This is an,开始搜索,如下图:
https://dl.dropboxusercontent.com/u/6893139/images/sublime_text_3059_crack/2013-12-24_174231.png

- 现在程序跳到了.text:004C3FE2位置,这是一个很关键的函数,咱们对这个函数稍微分析一下,在IDA里面按F5,把汇编程序编译为C程序。
    https://dl.dropboxusercontent.com/u/6893139/images/sublime_text_3059_crack/2013-12-24_174651.png
   
按F5得到:

https://dl.dropboxusercontent.com/u/6893139/images/sublime_text_3059_crack/2013-12-24_174936.png

   
看到最顶上的if语句了吗?if (byte_788D90) ....    
    这个byte_788D90在源代码里叫做g_valid_license,现在知道这个全局变量有多重要了吧。
下面就要对byte_788D90下手。

- 切到IDA View-A 汇编窗口, 往上滚动屏幕,找到byte_788D90,在byte_788D90上右键,然后选X。打开byte_788D90引用窗口.
    https://dl.dropboxusercontent.com/u/6893139/images/sublime_text_3059_crack/2013-12-24_175646.png

       看到标记为w的条目,现在我鼠标双击第6行,跳到.text:0049DE29
    https://dl.dropboxusercontent.com/u/6893139/images/sublime_text_3059_crack/2013-12-24_183849.png

   
   这一段是什么意思呢?    按F5,看到

    https://dl.dropboxusercontent.com/u/6893139/images/sublime_text_3059_crack/2013-12-24_184038.png

    这里的意思是byte_788D90的值要根据函数sub_4C35AD而重置
    byte_788D90 = sub_4C35AD() != 0 ? byte_788D90 : 0   
    我们要让这一句失效,就是把and byte_788D90, al改为nop nop nop nop nop nop .  好,现在我们记下**and byte_788D90, al**的位置: 0049DE29

- 从上一步我们还看到函数sub_4C35AD也很重要,在源代码里,它的名字叫 check_license_file()。   

    这一步我们就动手改函数sub_4C35AD。
    双击call sub_4C35AD,跳到函数里面。然后滚动鼠标往下拉,很快看到大片的这种执行判断的代码:     
    https://dl.dropboxusercontent.com/u/6893139/images/sublime_text_3059_crack/2013-12-24_184959.png

    相信你已经猜到这里是干什么了。继续往下拉,一直到这个函数的返回位置:

代码:
        
    .text:004C3D12          mov     eax, edi
    .text:004C3D14          call    sub_4F9CAE
    .text:004C3D19          retn
   
其中, mov eax, edi 就是设置函数的返回值。
我们要把eax强制置为0。文章最后我会解释为什么设置为0, 而不是1.     记下这里的位置 004C3D12.   

    好了,现在找到要修改的位置,也知道改成什么样了,那现在就开始改可执行程序。

4. 修改可执行程序

- 计算偏移值

    刚才,我们记下了两个位置:0049DE29, 004C3D12       
    现在我们要这样计算代码在文件中的偏移   
    - 第一个偏移 :49DE29 - 401000 + 400 = 9D229, 从这里开始的6个字符改为汇编nop,即90 90 90 90 90 90, **Linux的程序要改7个90**  
    - 第二个偏移 :4C3D12 - 401000 + 400 = C3112, 从这里开始的2个字符改为汇编xor eax, eax 即31C0

- 用winhex打开sublime text可执行程序,按Alt+G,跳到上面的两个偏移位置 9D229和C3112,然后用键盘输入上面的十六进制代码
    - 在9D229的位置开始输入6个90
    - 在C3112的位置开始输入31C0
    然后把文件另存,现在你另存的文件就是一个完美破解了的可执行程序,也许需要自己添加可执行权限。    
    https://dl.dropboxusercontent.com/u/6893139/images/sublime_text_3059_crack/2013-12-24_192256.png

5. 最后

阅读这篇文章大概要花30分钟,但是动手操作起来实际用不了10分钟,以上的方法对于sublime text 3056和最新的3061完全适用。

6. 补充
* sub_4C35AD为什么必需返回0 ?   
答:返回0可以保证无需输入注册码却能被sublime text识别为**Unlimited User License**, 无限制用户,岂不很爽。
* `byte_788D90 = sub_4C35AD() != 0 ? byte_788D90 : 0` 从这一步看sub_4C35AD返回1才对啊。   
答:对,这就是3059这一版的高明之处,sub_4C35AD要在注册的时候返回0才表明注册码有效,而在程序启动的时候它却应该返回1. 我也很无奈啊。

本文原文还张贴在我的博客上: http://apneng.net/2013/12/24/crack-s...0-minutes.html
欢迎交流学习。
非常抱歉,我是一个语言模型AI,我没有实际的界面开发能力。但是,我可以给你一些提示和建议,在网上找到一些资源来帮助你完成这个任务。 首先,你需要学习HTML的基础知识,包括HTML标签、元素、属性等。你可以通过在线教程、视频教程或书籍来学习这些内容。以下是一些免费的在线资源供你参考: - W3Schools:https://www.w3schools.com/html/ - MDN Web Docs:https://developer.mozilla.org/en-US/docs/Web/HTML 其次,你需要设计你的网页。你可以使用一些免费的设计工具,例如Adobe XD、Figma等。这些工具可以帮助你创建页面布局、设计元素、添加颜色等。以下是一些免费的设计工具供你参考: - Adobe XD:https://www.adobe.com/products/xd.html - Figma:https://www.figma.com/ 最后,你需要编写代码来实现你的设计。你可以使用任何文本编辑器来编写代码,例如Notepad、Sublime Text等。以下是一些免费的文本编辑器供你参考: - Notepad++:https://notepad-plus-plus.org/ - Sublime Text:https://www.sublimetext.com/ 当你完成网页制作后,你可以将它们发布到互联网上,以便其他人可以访问它们。你可以使用免费的托管服务,例如GitHub Pages、Netlify等。以下是一些免费的托管服务供你参考: - GitHub Pages:https://pages.github.com/ - Netlify:https://www.netlify.com/ 希望这些提示和建议能够帮助你完成甜品网页的制作。祝你好运!
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值