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 (4107) Patcher.zip_百度網盤下載 提取碼: htda
Sublime Text 4 (4113) Patcher.zip_百度網盤下載 提取碼: sj1h
Sublime Text 4 (4121) Patcher.zip_百度網盤下載 提取碼: rnll
**如果覺得本文或補丁對你有幫助,可以幫忙點下下方“推薦”按鈕