聲明
- My Eclipse 2015 程序版權為Genuitec, L.L.C所有.
- My Eclipse 2015 的注冊碼、激活碼等授權為Genuitec, L.L.C及其付費用戶所有.
- 本文只從逆向工程的興趣出發,研究軟件保護機制.
- 不會釋出完整源代碼和破解補丁.
- 會直接推測出授權信息的地方打碼處理
- 本文針對My Eclipse 2015 Stable 2.0或CL版本
背景
在上篇博文中,我們針對My Eclipse 2015,熟悉了其軟件運行特點,並完成了以下幾件事:
- 搭建了靜態分析環境。利用全文搜索,方便按路徑、符號等方式搜索java文件
- 搭建了動態調試環境。將我們靜態分析得到的關鍵代碼,抽出來,修復依賴,搭建一個很小的運行時環境。
- 破除了My Eclipse 2015 的軟件完整性保護機制。
- finder用來進行字節級搜索
- patch用來進行文件補丁
參見:【MyEclipse 2015】 逆向破解實錄系列【1】(純研究)
本篇,我們將針對My Eclipse 2015的注冊和激活保護機制進行研究,並破除其限制。
本篇將進行暴力破解,意即不考察軟件的注冊、激活算法,而是去除其驗證部分。
后話:實際上,針對My Eclipse 2015這款軟件,暴破比推出注冊、激活算法還復雜,暈一個先!
最后再吐槽下,ME 2015實在太卡了 : [
調試中,死機N次是再正常不過的事!有個心理准備吧。
先看暴破后的成果,繞過了注冊碼的驗證機制、激活驗證機制:
分析注冊驗證機制
由於有了上篇的環境,我們可以“任意”的玩小范圍內的調試。
其實不是任意,因為My Eclipse 2015同時采用了數字簽名技術,不過這個可以繞過或者...你懂的.
看看動態調試能夠給我們帶來什么?以及為什么我們要先去除其軟件完整性驗證:
這里,混淆神馬的都是浮雲,^^。
這次,我們依然利用如下的調用棧推測:
main
-> start
-> ..
-> dialogLicenseInfo("騷年,你的注冊碼不對喲!")
然后利用我們的檢索環境,進行檢索,定位到關鍵代碼段,抽出這部分代碼,做進我們的動態調試環境中,接着回溯和查找周圍信息吧。
至於具體的分析過程,不是重點,關鍵是方法: ]有興趣的同學可以自行分析。
看看關鍵驗證部分之一:
關鍵驗證部分之二:
好了,天機不可泄露
,就說這么多: ]
務必十分熟悉軟件的驗證保護后,再做代碼補丁,否則,各種遺漏會讓你的逆向過程成本大增。
同時,對你的補丁代碼要多做測試哦!
去除注冊驗證##
好了,到這里,各種分析結果在手,要做的事情,不用我再細說了吧?
呵呵,趕緊寫好patch,打上補丁,測試下效果吧。
貼一些patch的圖:
ViperCore:
ProductRegistar
:
GSDCController:
你看到了,這里只列出一部分注冊驗證的代碼,搞到這里,你就明白為啥前文說對My Eclipse 2015進行暴力破解,比推出注冊算法還復雜了。
類多不愛啊!!!!!!!!!!!!!!!
**分析激活驗證機制 **
ME 2015在輸入注冊碼后,還有個激活的過程。
我們來看看激活的部分:
- Connection
- Manual Activation(手動激活)
- Need Activation (是否需要激活呢)
好了,這一步和上面分析注冊驗證部分類似,耐心分析、多調試、多記錄,確保已經理解激活驗證的步驟,全面掌握了激活驗證的點。
**去除激活驗證及聯網驗證 **
了解了激活驗證和聯網驗證的機制后,我們開始去除,這一步和注冊驗證去除的步驟一致,不再贅述。
補丁:
- Activator
- Licence Expired(注冊碼是否過期)
打補丁:
- 配置:
- 執行:
- 輸出:
結語
本篇,我們對MyEclipse 2015的注冊機制和激活機制進行了分析,並且采用暴力方式去除其限制,效果如下:
你在文中也看到,這樣的方式,侵入感太強,而且ME的驗證幾乎遍地開花,稍不注意就會遺漏,導致破解失敗,那么如何實現相對簡單、優雅的破解呢?
在下篇,我們對以下兩個問題進行研究,
- 注冊碼算法
- 激活碼算法
以期在不修改其驗證機制的前提下,成為ME 2015的"合法"授權用戶。
撰文不易,若覺得本文對你有益,留個言,點個推薦吧 : ]