Java 開發(fā)語(yǔ)言以其安全性高较曼、代碼優(yōu)化、跨平臺(tái)等特性动分,迅速取代了很多傳統(tǒng)高級(jí)語(yǔ)言毅糟,占據(jù)了企業(yè)級(jí)網(wǎng)絡(luò)應(yīng)用開發(fā)等諸多領(lǐng)域的霸主地位。特別是近年來大數(shù)據(jù)澜公、互聯(lián)網(wǎng)+姆另、云計(jì)算技術(shù)的不斷發(fā)展,Java 開發(fā)語(yǔ)言更具有不可替代的地位坟乾。
不過迹辐,Java 最突出的跨平臺(tái)優(yōu)勢(shì)使其要以中間代碼的形式運(yùn)行在虛擬機(jī)環(huán)境中,因此 Java 代碼反編譯要比其他開發(fā)語(yǔ)言更容易實(shí)現(xiàn)甚侣,并且反編譯的代碼經(jīng)過優(yōu)化后幾乎可與源代碼相媲美明吩。為了避免出這種情況,保護(hù)軟件知識(shí)產(chǎn)權(quán)殷费,有一種叫做 Java 混淆器的工具被開發(fā)出來印荔。
但 Java 混淆器的作用是對(duì)編譯好的代碼進(jìn)行混淆,使得反編譯后的代碼混亂難懂详羡,真正起的作用只是增加了逆向工程的難度仍律,最終結(jié)果也是治標(biāo)不治本,對(duì)于一些掌握工具的人來說幾乎還是透明的实柠。另外由于 Java 程序中會(huì)有多重映射關(guān)系染苛,因此大多數(shù)混淆工具的兼容性會(huì)很差。
推薦一種加殼工具保護(hù)jar包的方式—Virbox Protector
目前有兩個(gè)版本可選擇。
第一個(gè)是帶許可版本茶行,加殼時(shí)與許可綁定,加密后的軟件需要有許可授權(quán)才能打開使用登钥。
第二個(gè)是獨(dú)立版加殼畔师,只做加殼的處理,加密后的軟件直接可交付使用牧牢。
下面是獨(dú)立版Virbox Protector加殼工具對(duì)jar包的加密流程看锉。
1、部署項(xiàng)目并啟動(dòng)服務(wù)
項(xiàng)目放在 webapps 目錄下,先啟動(dòng) tomcat 服務(wù)確認(rèn)能正常啟動(dòng)塔鳍,啟動(dòng)過后該 War 包會(huì)自動(dòng)解壓出一個(gè)同名的文件夾
啟動(dòng) tomcat 服務(wù)
找到依賴的解釋器
服務(wù)啟動(dòng)成功后,進(jìn)入任務(wù)管理器-服務(wù)-找到目前運(yùn)行項(xiàng)目所依賴的 jdk , 進(jìn)入目錄找到對(duì)應(yīng)程序 進(jìn)行加密伯铣。 如下圖
2、對(duì).jar或者.class文件進(jìn)行加密
①首先對(duì)安裝環(huán)境 jdk 路徑下的 java.exe 進(jìn)行加密,將 java.exe 拖入到加殼工具Virbox Protector Standalone中轮纫。
②在加密選項(xiàng)頁(yè)面將插件的ds按鈕打開腔寡。
③點(diǎn)擊“立即加殼”,加殼后會(huì)額外生成圖示兩個(gè)文件掌唾。
java.exe.ssp 是配置文件放前,在后面對(duì) .class/.jar加密時(shí)會(huì)用到;java.ssp.exe 是加殼后的 java.exe 文件糯彬,將 java.exe 剪切到其他文件夾備份凭语,java.ssp.exe 名字改為java.exe 即可。
④打開“DSProtector.exe”對(duì) .class/.jar進(jìn)行保護(hù)撩扒。
添加上一步加密 java.exe 生成的 java.exe.ssp 文件似扔。
添加要加密的.class/.jar文件。
點(diǎn)擊“保護(hù)它”搓谆,加密成功炒辉。
如需試用Virbox Protector Standalone:http://shell.virbox.com
授權(quán)許可版本加殼工具可訪問:https://lm.virbox.com