C# 反編譯破解軟件方法


我們有時在使用一些小工具軟件時,會提示購買License(注冊碼之類的東東)后才能正常使用。在這里我們來嘗試直接繞過License驗證直接使用軟件,實現簡單的軟件破解。

主要實現方式:

  1. 通過反編譯工具,反編譯出軟件源碼。
  2. 分析源碼,找到License驗證位置。
  3. 修改反編譯代碼。
  4. 重現編譯生成修改后軟件源碼。

編寫License驗證demo代碼:

Demo程序主要邏輯:登陸界面(Lgoin.cs)驗證License信息。如果驗證成功顯示主窗體(MainWIndow.cs)功能界面,正常使用其軟件功能。

破解Demo程序

根據demo程序邏輯分析,只需把License驗證代碼刪除或修改即可。

方法1:IL DASM

具體使用方法參考之前編寫博客《C# IL DASM 使用》
缺點:
通過ildasm.exe反編譯出的代碼為IL 中間語言,想讀懂和修改需對IL 中間語言有一定基礎。

方法2:Reflector

.NET Reflector 工具本身不帶修改 dll 和 exe 功能,需下載插件:Reflexil (Reflexil.Reflector.AIO.dll)。

Reflexil 插件安裝方法:
Tools-->Add-Ins…--> +
點擊“+”,選擇下載好的Reflexil 插件路徑。點擊“Close”關閉窗體。

使用.NET Reflector 工具打開需反編譯代碼,分析需要修改代碼位置。

只需刪除“ if (!this.License(kay, text))” 判斷代碼。

開啟 Reflexil 插件:tools -->“Reflexil **”

Reflexil  插件會將你選擇的方法(Mothed) 生成IL 中間語言。對分析需要刪除的代碼找到對應IL 中間語言所在位置,進行刪除。

 

最后保存修改后的EXE進行重新運行。 ^-^ … 簡單的破解工作已完成…^-^

從 Reflexil 插件菜單上可以看出,他還有很多功能,比如:注入類,注入接口,注入枚舉..等。還是很強大的一款插件。

缺點:
Reflector 工具需收費。

方法3:ILSpy

ILSyp 工具只用四個字形容:簡單,粗暴。比較實用。
直接使用ILSyp 工具打開需反編譯exe或dll,然后“Save Code“保存為VS能直接打開的項目。
修改代碼后重新編譯生成exe或dll 進行運行。

通過Save Code 保存的項目,使用VS可直接編譯修改代碼。

缺點:
如果源代碼加殼混淆后Save Code 保存的項目VS不能正常編碼通過。


免責聲明!

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



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