2012-03-27 105 views
6

我正在構建一些應用程序,並決定是時候通過混淆器運行我的代碼。我下載並使用了Eazfuscator.NET,然後在安裝應用程序之後,我下載了Ispy以查看過程如何工作。.Net混淆器問題

我發現的是,我仍然可以很容易地看到很多代碼,例如我的例程中的大部分邏輯都存在於我的後臺工作人員的某些部分。是的,字符串被改變了,但是我認爲相當重要的一些空格是可見的。

例如,當我構建應用程序身份驗證密鑰時,在運行我的加密之前,我將某些項添加到密鑰。這些項目在我使用Ispy查看程序集時可見。我的加密庫的密碼被隱藏起來了,但是我覺得這比我希望某人能夠看到的更多信息。

我的問題是 - 使用混淆器時這是正常行爲嗎?或者我應該嘗試其他的?以下爲Eazfuscator.NET以獲得更好的效果設置

+0

我會嘗試其他的。我使用了dotfuscator,除了匿名類型外,它的功能非常好。 VS2010也有混淆我相信 – Brian 2012-03-27 12:55:08

+2

歡迎來到Stack Overflow!我使用了Eazfuscator,並且我得到了非常密集的硬核輸出。確保你使用的是最新版本。嘗試調整一些設置。 – ashes999 2012-03-27 13:34:51

+0

我看到很少的設置。你在說什麼呢? – 2012-03-27 13:54:43

回答

3

使用方法:在你的程序集信息

[assembly: Obfuscation(Feature = "code control flow obfuscation", Exclude = false)] 
[assembly: Obfuscation(Feature = "PEVerify", Exclude = false)] 
[assembly: Obfuscation(Feature = "encrypt symbol names with password mypassword", Exclude = false)] 
[assembly: Obfuscation(Feature = "encrypt resources [compress]", Exclude = false)] 

文件

+0

您列出的這些設置對輸出輸出的.exe文件非常有用。然而,與它一起構建的類庫在程序集文件中具有相同的設置,但我仍然可以看到它的很多部分,例如函數參數。我需要爲班級圖書館做些特別的事情嗎? – 2012-04-02 20:47:31

+0

方法或屬性是公共的嗎?默認情況下,庫中的public不會被混淆,因爲它們對於附加該庫的任何人都是公開的。 – Marcin 2012-04-03 07:40:24

+0

是的方法是公開的,因爲我在各種不同的應用程序中使用相同的庫。我在這裏錯過了些什麼,我還有什麼可以寫一個可以重複使用的庫,但它可以被混淆? – 2012-04-03 13:17:31

0

嘗試Crypto Obfuscator - 它有很多的迷惑技術,包括字符串加密,控制流混淆,方法呼叫隱藏,資源保護等,這導致很難閱讀和理解代碼。

聲明:我LogicNP軟件,加密混淆器的開發工作。

0

用於混淆 程序集的高級混淆功能,因此混淆的.NET代碼更難以理解或無法反編譯。 我們可以通過代碼保護來保護.NET應用程序和DLL,並且包含方法級代碼加密,反向反向工程,反調試,反篡改和 以防止未經授權訪問和修改組件。

我正在使用FxProtect - .Net混淆器。這真的很好。

,您可以嘗試...... .Net Obfuscator