Sublime Text 4 破解筆記


Sublime Text 4 破解筆記

偶然看到Sublime已經更新到版本4了,多了許多很nice的新特性,例如:

  1.   船新 UI
  2.   感知上下文的自動補全
  3.   支持 TypeScript, JSX 和 TSX
  4.   GPU 渲染
  5.   ...

不得不說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

**如果覺得本文或補丁對你有幫助,可以幫忙點下下方“推薦”按鈕


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM