ubiqua 號稱是zigbee協(xié)議分析的領導者,可惜不是免費的版本,而且價格不夠親民。
ubiqua 2.0 最新版的license采用了服務器獲取的方式,然后本地進行校驗,和早期的版本本地固定license不同,該版本首先彈出窗口提示用戶登錄,用戶登錄以后,會有一個選擇license的界面,用戶從界面列表里面選擇相應的license以后,軟件會從服務器獲取相關協(xié)議的壓縮文件,這樣的機制有助于獲取最新的協(xié)議棧解析格式,而不是軟件安裝固定的協(xié)議。
下面討一下license以及crack破解的初步思路。
1、首先繞過登錄窗
?一般軟件都是先彈出一個登錄框,等待用戶輸入,用戶名密碼校驗成功以后,窗口返回true,程序才繼續(xù)往下走,否則程序就結束或者一直停留在登錄界面,所以第一步可以考慮直接讓窗口返回true模擬登錄成功,這樣就可以無需用戶名和密碼繞過登錄窗口,直接進入軟件界面。
2、繞過各種license問題
所有軟件里面的加密校驗,一定是有一個固定的集合,也就是有一個類或者模塊,是專門負責加密和解密的,其他所有需要的位置,調用這個類的相關方法和成員,實現(xiàn)license的校驗,不可能是很多地方都實現(xiàn)各自的license校驗,這樣也不符合團隊開發(fā)的機制。
由于ubiqua需要連接網(wǎng)絡獲取相關license信息,通過逆向分析整個程序工作機制,基本可以確定,登錄后在用戶注冊表和相關目錄下創(chuàng)建子鍵和相關文件。
比如就會在C:UsersAdministratorAppDataRoamingUbilogixUbiqua目錄創(chuàng)建Ubiqua.License.cert文件,只是文件內容不以明文顯示,里面包含了當前序列號的生成時間,以及對應的電腦機器序列號,還有各個功能模塊的metadata信息等等,都是需要校驗的。
還有同一個目錄下,登錄成功后會生成一個加密的Ubiqua.Resources.xxxx.zip文件,這個zip壓縮套壓縮,使用的是Aes256加密算法,壓縮了兩遍,里面有很多用于協(xié)議棧數(shù)據(jù)幀解碼的xml文件,這個文件用于ubiqua菜單里面的options,主要是用于network key以及TC link key等,不然加密的數(shù)據(jù)包是沒辦法解密的,就無法知道設備之間的狀態(tài)。
所以如果能夠找到這個類所在的位置,加以分析和逆向IL指令,就可以讓軟件運行在已license的狀態(tài)。
首先和所有的C#開發(fā)的.net程序一樣,都需要防止反編譯,ubiqua也不例外,也進行了各種手段的混淆,這樣會增加軟件逆向的難度,迫使他人無法破解軟件,zigbee協(xié)議分析軟件,筆者開始以為就應該是芯片廠商免費提供給開發(fā)人員的,為何要讓一個第三方去開發(fā)?而且還是收費版本。
作為IC廠商,為自家芯片提供開發(fā)測試工具義不容辭,反觀TI,為自家的芯片提供的zigbee抓包分析軟件別的功能都有,獨獨沒有解密數(shù)據(jù)包的功能, PACKET-SNIFFER就是個雞肋,加上一個解密數(shù)據(jù)包的功能,對于TI的開發(fā)人員用MFC開發(fā)的Packet Sniffer來說,想必并不費吹灰之力,為何不加,肯定是有意而為之,不然誰還會去用ubiqua的軟件?
基于對社會主義核心價值觀“富強、民主、文明、和諧, 自由、平等、公正、法治、 愛國、敬業(yè)、誠信、友善”的尊重,和某些在網(wǎng)上賣ubiqua 1.4破解版的人不同,筆者暫時并不愿意公開相關的破解軟件。
無license限制:
ubiqua 2.0 完美運行:
???????