Java代碼混淆技術(shù)研究
阜寧高等師范學(xué)校 王學(xué)軍 2013/10/7 14:23:44
(接上頁)符替換后,攻擊者很難從中讀出該名字所代表的意義,這便使得攻擊者在反編譯是造成了困難。
當程序中一個實體被重命名后,所有與其相關(guān)的內(nèi)容必須更新,否則會引起運行出錯。但是有一些是不能被重命名的。這便有了代碼混淆范圍的提出。以下三種標示符是不在范圍內(nèi)的:⑴子類中一個超類或接口中抽象方法的實體方法;⑵超類中繼承方法的重寫;⑶特殊屬性明確規(guī)定不可進行替換。
標示符重名名算法可以分為四種:靜態(tài)方法重寫、替換非法提示符、無關(guān)聯(lián)方法重載、部分標識符濫用。
4.算法分析
衡量一個混淆算法性能好壞的重要指標是對程序執(zhí)行開銷的影響。內(nèi)部數(shù)據(jù)混淆和控制命令混淆都增加了程序的二外執(zhí)行開銷從而影響了程序的運行效率。重命名混淆只是將名字替換,很多時候都會將名字縮短,使文件變得更小,不會造成執(zhí)行效率的下降,同時也使攻擊者將花費更長的時間來理解和反編譯程序。
5.總結(jié)
代碼混淆技術(shù)是時下最常用的,同時也是最有效的保護Java軟件的方法,新型的混淆算法一定會隨著技術(shù)的發(fā)展而被發(fā)現(xiàn)。雖然代碼混淆技術(shù)在一定程度上保護了軟件的安全以及開發(fā)者的權(quán)益,但只有我們杜絕使用盜版軟件同時不去侵犯他人的知識產(chǎn)權(quán)才能切實的保護好開發(fā)者的權(quán)益。
【參考文獻】
[1] 魏會生.基于JAVA類文件保護的探討[J].工會博覽•理論研究,2011, (3):25-26.
[2] 魏衍君,王應(yīng)戰(zhàn).Java語言混淆器模型研究[J].科技信息,2012, (4):61-62.
|