2015-12-15 92 views

回答

1

Wikipedia;

甲CIL組件和指令由任一個編譯器生成的或實用稱爲IL彙編程序(ILASM)隨執行環境

使用IL反彙編程序(ILDASM),也可以將組裝的CIL重新拆分成代碼。還有其他工具,例如.NET反射器,可以將CIL反編譯爲高級語言(例如C#或Visual Basic)。這使得CIL成爲逆向工程的一個非常簡單的目標。該特徵與Java字節碼共享。但是,有些工具可能會混淆代碼,並且會執行代碼,以致代碼不易讀取但仍可運行。

+0

好信息。 OP的問題是C#編譯器是否是.NET CLR的一部分? – niksofteng

1

下面是一個快速流程圖(未遵循標記),將闡明大部分內容。

enter image description here

C#或VB編譯器只是工具你的代碼(託管)轉換爲IL這CLR理解。這些工具在使用Visual Studio進行編譯時工作。 JIT(JIT編譯)是CLR的特性之一,它在運行時將IL代碼轉換爲最終執行的機器代碼。這就是爲什麼有時候,在高層次,我們說CLR會進行IL到機器碼的轉換。