在c世界,對代碼進行加密,主要通過加殼的方式。所謂加殼,就是先將程序代碼加密,然后用特定的程序加載器,將代碼解密后加載進內存,這樣可以在防止代碼的反編譯,當然,有加殼工具,也有解殼工具,雖然不能100%防止crack,但仍然給代碼增加一層有力的保護。
然而在java世界,保護代碼是件很困難的事情,因為class文件非常規范,極易反編譯,且反編譯后的代碼清晰可讀。常見的保護辦法是使用混淆器,打亂class和function以及變量的名字,可以干擾反編譯后的代碼的可讀性。雖然簡單提高了代碼的安全性,但還僅僅相當于未加殼的c程序。