在計(jì)算機(jī)領(lǐng)域,程序加殼是指在原始程序運(yùn)行前,先執(zhí)行一段“殼”程序,然后再把程序交還給原始程序。這樣做的好處是,通過常規(guī)破解手段,無法輕易找到可執(zhí)行程序的真正入口點(diǎn)(OEP),可有效防止破解源程序,保護(hù)重要信息數(shù)據(jù)。
殼加密
殼加密又分為偽裝殼、壓縮殼等多種類型,雖然加殼方法的實(shí)現(xiàn)細(xì)節(jié)有所不同,但其核心加密原理都是不變,即在原始程序外建立一個(gè)單獨(dú)的防護(hù)機(jī)制,因此他對于源程序不管做了壓縮、加密還是地址打亂等操作,完整的源代碼還是要被還原出來,這樣才能正常運(yùn)行。這就是殼加密的一個(gè)安全風(fēng)險(xiǎn),因?yàn)闅ぜ用苁强梢员槐姸嗝摎ぼ浖@過或剝離的。現(xiàn)在網(wǎng)絡(luò)上有很多免費(fèi)的脫殼軟件,都可以輕松實(shí)現(xiàn)去殼操作,這樣一來,通過加殼保護(hù)源程序就不明智了。
殼加密還有另外一個(gè)小缺點(diǎn),就是兼容性問題。因?yàn)椴煌到y(tǒng)平臺下可執(zhí)行文件的差異導(dǎo)致對于加殼有不同的要求。比如:DOS下的可執(zhí)行文件事宜.COM結(jié)尾的文件,且無文件頭,缺省程序執(zhí)行地址是0x100;win32平臺的PE文件,不支持自裝載,需要程序使用自己的方法來管理數(shù)據(jù),所以標(biāo)準(zhǔn)很不統(tǒng)一就導(dǎo)致了殼加密的兼容性難題不易解決。
算法移植方案
除了殼加密之外,現(xiàn)在市場比較流行的PC軟件加密還有一種算法移植方案。基本原理是把可執(zhí)行文件中的一部分代碼功能移植到另一個(gè)安全硬件平臺運(yùn)行,保證原有程序代碼不完整,這樣做的好處是必須把現(xiàn)有程序和移植走的程序一同破解才能實(shí)現(xiàn)真正的破解。對這種加密方案來說,PC之外的安全硬件平臺非常重要,最常見的就是算法移植加密狗,一般選用安全級別非常高的嵌入式安全芯片來完成移植代碼的運(yùn)行工作。因?yàn)榘踩酒哂斜姸喾榔平鈾C(jī)制,所以其內(nèi)部運(yùn)行的代碼不能非法讀出,只要移植的代碼選取合理,能夠很大限度的提升可執(zhí)行軟件的安全。
但這種軟件加密方案也是有缺點(diǎn)的,它要求開發(fā)人員具備一定嵌入式編程能力,研發(fā)需要投入的時(shí)間也會(huì)較多。
上述兩種加密方案,都有各自的優(yōu)缺點(diǎn),用戶還需結(jié)合自己的實(shí)際需求和應(yīng)用場景,選擇合適的加密方案,如果用戶更注重安全,那么算法移植方案的加密狗會(huì)更適合。
-
PC
+關(guān)注
關(guān)注
9文章
2089瀏覽量
154334 -
軟件
+關(guān)注
關(guān)注
69文章
4968瀏覽量
87701 -
加密
+關(guān)注
關(guān)注
0文章
304瀏覽量
23943
原文標(biāo)題:【博文連載】PC軟件加密方案
文章出處:【微信號:ChinaAET,微信公眾號:電子技術(shù)應(yīng)用ChinaAET】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論