簡體   English   中英

反編譯的 с# 代碼顯示錯誤

[英]Decompiled с# code shows errors

我已經反編譯了 C# dll,現在無法編譯它。 它顯示奇怪的錯誤,例如在某些 switch 塊中,某些 case 塊沒有 break 語句,或者顯示諸如“無法將 int 轉換為 bool”之類的錯誤。 但是這個大小的dll錯誤量並不是很大,所以我認為不是反編譯器的問題。

編譯器是否有一些指令(例如,生命不安全)可以解決這個問題? 或者為什么會出現這種奇怪的錯誤?

PS dll 沒有損壞 - 應用程序現在正在使用它。 我正在使用 dotPeek 進行反編譯,並使用 Visual Studio 15 來編譯結果代碼。

對於這樣的錯誤:

"Can not cast int to bool"

絕對沒有任何編譯器指令,讓你的編譯器繼續前進,我認為你的反編譯搞砸了反編譯的東西......你可以簡單地與其他反編譯嘗試,看看你得到另一個結果,有效的替代品: ILSpyJustDecompile點網IL編輯器

請注意,一些商業 DLL 被混淆只是為了試圖讓反編譯器和反編譯器變得困難......

小心避免破壞某些版權。

將 IL 反編譯為 C# 非常困難,而且反編譯器可能做錯了什么。 根據我的經驗,反編譯和編譯代碼的行為也可能與原始程序集不同,因此請注意。 而這樣的編譯錯誤可能是 dotPeek 不確定的指示,所以想想它應該做什么或在 IL 中查找。

如果您願意對程序集進行非常小的編輯(注入方法調用,公開某些內容),直接在ildasm獲得的 IL 中進行可能更安全。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM