簡體   English   中英

ILSpy反編譯器的這行代碼是否有效?

[英]Is this line of code from ILSpy decompiler valid?

我使用ILSPy反編譯了一個發布程序集,我得到了如下代碼。 當我在VS 2013中打開反編譯項目時,每個語句都會出錯。

using #j;//this line shows up as an error in VS2013
using System;

錯誤是:

預處理程序指令必須顯示為一行中的第一個非空白字符

我也在下一行得到了類似的錯誤。

string path = #db.#ab(HttpUtility.UrlDecode(text));

問題 :使用#的含義是什么?如何更正這些錯誤?

我還注意到一些反編譯的類的名稱以#開頭,因此一些名稱空間和方法名稱也是如此。 我從來沒有使用過這樣的命名約定,所以'ILSpy`如何提出這樣的代碼是非常令人困惑的。

不,它不是有效的C#。 有可能它是反編譯的代碼,一開始就被混淆了,所以使用在IL中有效但在C#中沒有的標識符。

通常情況下,如果您正在反編譯混淆代碼,那么您正在做一些違反代碼原始作者意願的事情 - 所以我建議不要這樣做。 如果您認為有正當理由獲取某些內容的源代碼,請詢問作者。

能把它轉換成有效的C#嗎? 當然-只是采取一切# -prefixed標識,並將其映射(一致)到別的東西,如

using hashj;
...

string path = hashdb.hashab(HttpUtility.UrlDecode(text));

...最終你會遇到一個名為#db的類,然后你將它重命名為hashdb等。但混淆的重點是使這個過程變得很痛苦。

暫無
暫無

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

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