2012-07-09 140 views
0

要開始了,而我的答案摸索,我發現這些:逆向工程C#解決方案生成獲得源代碼

Reverse Engineering a C# Solution

Are there good tools for C# reverse engineering?

上述網址看起來像一個可能重複。我沒有在網上找到與我的問題有關的任何答案,所以我在這裏問。我想問的是,我可以採用由Visual Studio 2008 Professional版本生成的C#解決方案版本,並生成源代碼

我不關心UML圖,就像上面發佈在這些url中的問題,我想要獲取源代碼。

我的應用程序是在ASP.NET中,但我只有一個解決方案構建它,我需要我沒有的源代碼。

+1

這個問題有什麼不同? – 2012-07-09 12:15:03

+2

[dotPeek](http://www.jetbrains.com/decompiler/)是一個免費的反編譯器。 – Batuu 2012-07-09 12:15:40

+0

@MihalisBagos這兩個問題都需要UML圖表,我特別列出了我不想要的UML圖表。 – Bulvak 2012-07-09 12:18:15

回答

7

www.reflector.net非常適合這個。

例如,這裏是一些C#代碼:

using System; 

namespace HW 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("Foo Bar"); 
     } 
    } 
} 

在編譯時,Visual Studio中生成以下文件:

VS

反射反編譯的代碼是這樣的:

Reflector

像TomTom說的那樣,它不是相同的代碼,但是這仍然有助於發現程序的工作方式。

希望這會有幫助

+0

感謝您使用此工具! – Bulvak 2012-07-09 12:44:54

6

我可以採取由Visual Studio 2008 Professional版本生成的C#解決方案構建和 生成源代碼嗎?

號你可以得到一個.NET的DLL(沒有人關心它是如何產生的),並有一個反編譯器生成一些代碼,如果沒有被加密,但它不會是源代碼。

像內部變量命名的東西可能會有所不同。結果將會丟失。編譯器優化出來的東西可能會不同

例如,字節/ 1024/1024將是字節/ 1048576,因爲常量表達式不會將其放入DLL中。