您好,登錄后才能下訂單哦!
背景:
在推廣產品時經常需要搭建演示環境,而每次都需要經過繁瑣的序列號申請過程,很是麻煩。尤其是在著急確認某功能時,越是著急越容易出問題,經常需要發送好幾遍序列號。我實在受不了這種折騰,就想弄個產品演示版本,遠離繁雜耗時的lic申請。
目的:
破解產品序列號限制,不影響產品正常使用。
條件:
無產品源代碼;已知產品使用.Net 4.0開發;已知正常序列號為一加密文件;
工具:
.Net Refletor、UE、IDA.Pro.Advanced.v6.1、MSIL微軟中間語言
推薦一篇文章
http://www.topzs.com/tech-box/you_qian_ru_shen_ren_shi_cil_de_ji_ben_gou_cheng_cil_cao_zuo_ma_su_ji_biao_cil_cao_zuo_ma_da_quan_su 由淺入深認識CIL的基本構成+CIL操作碼速記表+CIL操作碼大全速查(二)
方法步驟:
首先,通過reflector找到與序列號相關的程序代碼,這個比較好達到,明顯的標志licenseValidate類;
第二,分析license驗證機制,尋找突破口。驗證流程為讀取加密lic文件,解密文件,通過RSA算法進行序列號校驗,根據校驗結果返回驗證結果。這個校驗還是比較糙的,我們可以直接對校驗結果的返回值進行patch,也就是不管驗證結果是否正確,都返回true,這樣就繞開序列號限制了。
第三,使用IDA打開待破解的文件,按照在reflector看到的方法名進行定位,IDA中提供圖形化界面及對應的16進制聯動功能,可以很方便的幫我們定位到需要修改的16進制地址。IDA中顯示的是IL文件格式,我們通過走讀可以找到最終校驗返回的代碼位置,就是將返回false的地方修改為返回true。這個地方需要使用《CIL操作碼速記表+CIL操作碼大全速查》,以便于我們理解程序。
第四,使用UE打開待修改文件,定位到我們要修改的位置,可以按照每行的16進制地址號定位,我們需要返回false對應的中間語言部分ldc.i4.0修改為ldc.i4.1,對應到hex模式下就是將ldc.i4.0對應的操作碼為16,修改為ldc.i4.1對應的操作碼為17。
第四,修改完成后直接保存,測試程序是否可正常運行。
感悟:
對于.net代碼需要在編譯時進行混淆或加殼防護,對序列號的校驗應該增強校驗方式。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。