2010-01-24 45 views

回答

15

除非您控制目標硬件,否則理論上不可能達到100%的保護。如果CPU能夠執行它,給予足夠的時間和知識,人類也可以閱讀它。這甚至不限於C#(儘管在託管語言中它通常更容易)。您可以使用像Dotfuscator或XenoCode這樣的混淆器來更難理解反編譯的代碼。如果你真的擔心,你應該轉向基於服務器的應用程序。

+0

在某種程度上,基於服務器的應用程序是反向工程的(如果甚至是單詞)。如果有足夠的時間,您可以研究其行爲並查看每個可能輸入的每個可能的答案,並最終可以創建另一個具有相同**可觀察**行爲的服務器端應用程序。 – 2010-01-25 01:52:06

0

它是軟件;一切皆有可能。您可以對二進制文件進行加密,然後在運行時將全部或部分文件解密到您的應用程序中。這不是萬無一失的,但是你要決定你想成爲多麼嚴厲。

2

您可以使用obfuscator tool,這將有助於但逆向工程將仍然是很有可能的。

你的用戶的計算機需要知道它需要做的,所以你要告訴它。計算機的主人可以完全控制它,因此可以知道自己告訴計算機做什麼,他可以告訴它做別的事情。

0

有隱藏數據的方法,其所謂steganography。在CodeProject上有一篇文章的作者,他爲此寫了一個框架。這些文章的標題是從一到十二個系列的「隱寫術」,我認爲。這是與作者有關​​的website

還有一個名爲'鳳凰保護'的混淆器,發現here,它可以混淆.NET代碼,個人而言,我還沒有嘗試過,但聽起來不錯。

希望這會有所幫助, 最好的問候, 湯姆。

0

最起碼,你應該混淆你的DLL來防止黑客觀看,使你的代碼感&競爭對手。迷惑不是100%萬無一失的,但它在他們的道路上呈現出足夠大的障礙。

一些混淆器如Crypto Obfuscator具有在主exe文件中嵌入所有dll的功能,因此您的dll不會在磁盤上顯式可見並可用於在反向工程工具(例如Reflector)中打開。

相關問題