提高native代碼的安全性有什么好辦法嗎?答案是肯定的,今天我們就來介紹一種有效對抗native層代碼分析的方法——代碼混淆技術(shù)。
在windows 8中,提供了一個Windows Store apps。Skater .NET obfuscator專業(yè)保護Windows Store apps代碼。
為了保護軟件安全,進行源碼混淆,加殼和授權(quán)控制是行之有效的安全策略,而使用最多的保護手段就是使用代碼混淆器。本人簡單對比了常見的3款.NET源碼混淆器,希望使開發(fā)人員對這3款.NET源碼混淆器的選擇有初步的了解。
雖然目前很多開發(fā)工具都能進行簡單的混淆,不過實用性不大,只有采用專業(yè)的混淆控件對程序源碼才能起到有效的保護,并且,有些混淆控件還有更強大的優(yōu)化功能,在混淆的同時對程序進行優(yōu)化。然而,目前市場上的混淆器品種繁多,到底哪一款才真正適合您的需要呢?本文將介紹2款非常實用的代碼混淆器,供大家參考,希望對大家有幫助。
我們知道.NET程序集中有一個重要特性叫做MetaData(元數(shù)據(jù)),它是.NET的特性,它記錄了相關(guān)程序集的一切信息,正因為這樣的特性,.NET程序集才有了跨平臺的可能,才可以在網(wǎng)上傳送運行,才不會出現(xiàn)DLL HELL。但同時,由于它記錄了所有的信息,使得程序集中的信息可以完全還原至初始狀態(tài),使得編譯過后的程序集,依然擁有良好的“可讀性”。在某些特殊的情況下,這是一件很糟的事情。對此,我們該怎么做?正在這樣的需求之下,混淆器橫空出世。
軟件保護的關(guān)鍵是在軟件設計的關(guān)鍵幾個環(huán)節(jié),利用專業(yè)的控件進行保護,就可以保證軟件的安全。我們可以在軟件設計時和運行時對軟件代碼進行保護。在設計時的保護,主要的保護手段是,混淆源碼;在運行時的保護主要的手段是加殼和授權(quán)控制。下面我們分別對混淆、加殼、授權(quán)控制的方法和采用的控件做一一講解。