[英]Decompiled с# code shows errors
我已經反編譯了 C# dll,現在無法編譯它。 它顯示奇怪的錯誤,例如在某些 switch 塊中,某些 case 塊沒有 break 語句,或者顯示諸如“無法將 int 轉換為 bool”之類的錯誤。 但是這個大小的dll錯誤量並不是很大,所以我認為不是反編譯器的問題。
編譯器是否有一些指令(例如,生命不安全)可以解決這個問題? 或者為什么會出現這種奇怪的錯誤?
PS dll 沒有損壞 - 應用程序現在正在使用它。 我正在使用 dotPeek 進行反編譯,並使用 Visual Studio 15 來編譯結果代碼。
對於這樣的錯誤:
"Can not cast int to bool"
絕對沒有任何編譯器指令,讓你的編譯器繼續前進,我認為你的反編譯搞砸了反編譯的東西......你可以簡單地與其他反編譯嘗試,看看你得到另一個結果,有效的替代品: ILSpy , JustDecompile和點網IL編輯器。
請注意,一些商業 DLL 被混淆只是為了試圖讓反編譯器和反編譯器變得困難......
小心避免破壞某些版權。
將 IL 反編譯為 C# 非常困難,而且反編譯器可能做錯了什么。 根據我的經驗,反編譯和編譯代碼的行為也可能與原始程序集不同,因此請注意。 而這樣的編譯錯誤可能是 dotPeek 不確定的指示,所以想想它應該做什么或在 IL 中查找。
如果您願意對程序集進行非常小的編輯(注入方法調用,公開某些內容),直接在ildasm
獲得的 IL 中進行可能更安全。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.