2010-07-19 67 views
3

我在vb.net 2008(使用.net 3.5)中編寫了一個程序。這是一個體面的大小程序。該程序的一部分是訪問在線數據庫並加密/解密文件。要訪問數據庫我使用硬編碼的密碼。爲了加密/解密文件,我使用了硬編碼密鑰。無論我做什麼,我都需要至少硬編碼這兩件事中的一件。例如:即使我將數據庫密碼存儲在加密文件中,我也需要對密鑰進行硬編碼才能將其解密。或相反亦然。幫我選擇.net混淆器程序?

因此,經過一番思考後,我想我需要混淆我的代碼,以便至少這些硬編碼的元素/值不會很容易看到。爲了測試,我使用了一個程序來反彙編我的程序。令我驚訝的是,它向我展示了程序中的每一行代碼。我覺得我的整個代碼都粘貼在我的exe文件中。

因此,我需要混淆我的代碼。看到我不需要太高級的設置。我的程序不是最受歡迎的共享軟件程序,也不是我需要非常高安全性的超級流行程序。但我需要足夠的安全性,以便我的基本代碼,變量和敏感信息(密碼等)不可見。

請幫我選一個好的混淆器來完成這項工作。它不應該使用太乏味,應該足夠我。另外它應該是值得信賴和安全的。我的意思是我不希望我的應用程序在混淆後崩潰或不穩定。

我已經從Ezriz下載了.net reactor的試用版,它似乎很好。你們有什麼建議?我不能超過200美元。那麼這個產品是值得的。你們知道得更好。

感謝您的支持。

乾杯, SAURABH

+0

重複:http://stackoverflow.com/questions/337134/what-is-the-best-net-obfuscator-on-the-market。 – greenoldman 2010-09-03 20:03:48

回答

18

混淆解決不了這個問題。攻擊者可以更改其hosts文件以將域名重定向到他控制的數據庫。當你登錄時,他會得到用戶名/密碼。

另一種攻擊是使用像ollydbg這樣的調試器來獲取內存中的用戶名/密碼。用戶名/密碼在使用前必須使用明文形式,攻擊者才能找到它。

Security Through Obscurity將永遠不會工作。你將永遠無法控制客戶端。

更好的方法是設置一個SOAP(WCF)服務器來抽象您的數據庫操作。構建查詢的邏輯必須是服務器端。假設攻擊者可以完全訪問通過SOAP公開的任何函數。

+0

我剛剛說完全一樣的東西。使用WCF數據服務設置這個過程相對比較快速和容易,您應該查看它。 – 2010-07-19 06:49:10

+0

很好的建議。混淆並不是最終的解決方案(儘管它可以在最後增加一層額外的保護。) – Noldorin 2010-07-19 08:01:50

+0

同上。混淆只是對最常見的攻擊提供保護。 – 2010-07-19 14:59:58

0

我用Eazfuscator:http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.aspx

它功能強大,它是免費的。精彩的工具使用起來非常簡單。

+0

謝謝你們。但是看到我不在乎攻擊者是否全程進入。我想要基本中間安全。如果有人真的想破解它,無論如何他都會做。 關於我應該去的混淆器程序? 皮埃爾我會嘗試Eazfuscator。它只是那個免費的一個足夠好比其他像.net反應器等 – Saurabh 2010-07-19 11:17:10

+0

我使用Xenocode多年,和其他商業產品。當我發現Eazfuscator時,我無法相信這是免費的。我現在使用它2年,並且永遠不會回到Xenocode。 – 2010-07-19 12:12:20

+1

@Saurabh混淆意味着幫助保護知識產權免受競爭對手的侵害。它從來不是爲了保護客戶端安全問題。我不知道是誰告訴你這會有所幫助,但他們錯了。 – rook 2010-07-19 15:14:30

0

我使用Eziriz .NET反應堆一段時間了,它對我很好。我之前使用過Eazfuscator,但它並不是很強大。

.Net Reactor具有真棒功能,如Anti ILDASM和Native Exe文件生成。它也適合你的預算。您可以在購買之前使用Trial,並測試它是否適用於您的方案。

+1

我認爲.net reactor會完成這項工作。但我發郵件給他們(一般查詢)並沒有得到他們的回覆。這令人失望。 – Saurabh 2010-07-21 12:09:11

+0

我從來沒有試圖與他們溝通,但我看到很多抱怨。 – Qorbani 2010-07-21 16:05:49

+0

我希望如果我買我得到鑰匙或任何即時解鎖。我想要的最後一件事是被卡住,沒有人回覆我會陷入混亂。 – Saurabh 2010-07-21 16:52:57

1

你應該強烈地考慮Babel .net混淆器。在我看來,即使它是一個控制檯應用程序,它對於價格,授權(不鎖定到一臺計算機)和功能來說是最好的。