C#反編譯之御劍WEB目錄掃描優化版
前天晚上,看到朋友說御劍出新版本了,但是這次需要輸入啟用碼才能用。由於處於內測階段,可以直接找御劍作者要啟用碼。結果我發現這款軟體在我的虛擬機器中,獲取機器碼時會崩潰,這樣就沒法生成啟用碼了(ಥ_ಥ)。於是,我打算自己破解,直接將啟用相關程式碼刪除,最終得到一個不需要啟用碼即可執行的御劍( ̄▽ ̄)。
先用 PEID 查殼,發現沒加殼,且是 C# 語言編寫的,那麼反編譯就簡單多了。
首先,我們用 dnSpy 將 御劍WEB目錄掃描優化版.exe 反編譯,並儲存。
接著用 visual studio 2017 開啟剛剛反編譯的專案。主程式為 MyApplication.cs ,直接執行會報許多錯誤。
接下來主要就是修改編譯時出現的錯誤並將啟用碼功能去掉。第一次編譯會報 意外的字元“$” ,我們需要將整個專案中的 VB$AnonymousDelegate_0 替換成 AnonymousDelegate_0 ,並將 VB$AnonymousDelegate_0.cs 檔名改成 AnonymousDelegate_0.cs ,還有 御劍WEB目錄掃描優化版.csproj 檔案中的 VB$AnonymousDelegate_0 也替換成 AnonymousDelegate_0 。
再次編譯,就會遇到 CS0579 特性重複 錯誤,試了好多方法都沒解決,我就直接把它註釋了。
接著編譯,會遇到 使用了未賦值的區域性變數”enumerator” ,猜測應該是用來關閉某種資源或流的,例如檔案資源,這裡我直接將其註釋掉。
然後再將為初始變數 num、num3 都初始化為0,這兩個變數是用來儲存HTTP響應碼的。
最後,將 Form.cs 中的 CheckJH 函式中 Flag 設定成 true 並刪去校驗啟用碼相關程式碼。
這樣便繞過了啟用,功能也正常,最後放一張執行效果圖。