原創(chuàng)|使用教程|編輯:何躍|2021-08-23 14:04:15.900|閱讀 311 次
概述:CIL和其他元數(shù)據(jù)的存儲(chǔ)方式必須遵循一個(gè)特定的標(biāo)準(zhǔn)(ECMA-335)。這樣,像.NET Reflector或ILSpy這樣的工具就能夠讀取CIL指令,并將代碼翻譯回其源語言(C#、VB.NET...)
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
CIL和其他元數(shù)據(jù)的存儲(chǔ)方式必須遵循一個(gè)特定的標(biāo)準(zhǔn)(ECMA-335)。這樣,像.NET Reflector或ILSpy這樣的工具就能夠讀取CIL指令,并將代碼翻譯回其源語言(C#、VB.NET...)。
代碼虛擬化將CIL代碼轉(zhuǎn)換為一組隨機(jī)的指令,在運(yùn)行時(shí)由我們自己的虛擬機(jī)進(jìn)行解釋。由于沒有標(biāo)準(zhǔn)化的程序來正確解釋新的指令集,原始的CIL指令不能被重構(gòu)。因此,虛擬化的代碼不能被翻譯回其源語言。
由于虛擬化方法的性能明顯下降,代碼虛擬化應(yīng)該只應(yīng)用于選定的方法你可以在選定的方法中標(biāo)注以下屬性:
[System.Reflection.ObfuscationAttribute(Feature = "Virtualization", Exclude = false)]
實(shí)現(xiàn)虛擬化之后代碼如下:
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn