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