2014-04-01 21 views
0

我用C#做了一個程序。這是一個Windows應用程序。然後我使用了.NET Reflector並將它反編譯,但是我得到了另一個程序,它不能反編譯它,因爲它不是.NET模塊,所以我怎麼讓我的工具像我不想讓任何人反編譯我的工具。有沒有辦法做到這一點?如何使工具不.NET模塊

+2

您無法阻止某人對您的應用程序進行反向工程。你只能讓它變得更加困難。就你而言,你已經回答了你自己的問題;如果你不想讓某人用Reflector反彙編你的應用程序,那麼使用.NET以外的其他應用程序來編寫你的應用程序。 –

回答

0

並編譯它,它僅僅是僞編譯。這比我可以在這裏寫的更復雜,但它是坐在中間語言。

當計算機運行.NET程序時,它會將其轉換爲機器語言,在運行時需要在計算機上運行

其他語言如C++被編譯爲非常接近機器語言。這使得該程序的便攜性降低。但是與C#/ .NET相比,很難扭轉工程師C++程序。

現在,如果你正在編寫一個.NET程序,你不想進行反向工程,你最好的選擇是obfuscator,這使得閱讀代碼變得非常困難 - 但對於某人來說,代碼出來。它只是需要更多的工作。例如,一個名爲openWindow的函數將被重命名爲a

無論如何。這是一個相當大的話題,但重要的是,由於.NET只是部分編譯的,因此將編譯後的代碼重新轉換回C#(或VB.net) - 甚至可能是混淆代碼可以不做。

所以,要直接回答你的問題,你不能把一個編譯後的.NET程序編譯並進一步編譯它,這樣它就達到了C++程序的水平。