軟件狗[Dongles]的加密與解密技術(shù)(3)
來源:龍人計(jì)算機(jī)研究所 作者:站長 時(shí)間:2006-11-04 11:30:50
軟件狗[Dongles]的加密與解密技術(shù)(3) |
|
三、操作指南
1、BITSHELL參數(shù)的詳細(xì)說明 BITSHELL可以用KEY環(huán)境變量來設(shè)定一些參數(shù),這樣可以簡化使用過程。設(shè)置方法如下: SET KEY=[SCHEMExx,][STAY,][CHECKOVL] BITSHELL各項(xiàng)參數(shù)的意義如下: (1)參數(shù)SCHEMExx,若給出則依用戶的要求使用指定的變形算法,否則將隨機(jī)抽取一種加密算法。BITSHELL2.0共有20種算法可選。 每一種算法都有自己的特點(diǎn),有的加密難度大但解碼時(shí)間長,這種算法適合加密重要的代碼不是特別大的軟件,如算法三和十二;還有的加密難度適中但解碼速度快,如算法一,適合加密大型軟件。 每個(gè)用戶可以根據(jù)自己的特點(diǎn)選擇,如加密不同的版本用不同的算法,加密不同的程序用不同的算法。如選算法十五可給出SCHEME15,選算法十九可給出SCHMEM19等,依次類推。 (2)參數(shù)STAY用來選擇在加密程序執(zhí)行完畢后,是否駐留監(jiān)控程序。默認(rèn)值為不駐留監(jiān)控。 如果加密FoxPro編譯的程序,必須加參數(shù)SET KEY=STAY,以監(jiān)控覆蓋模塊。 (3)參數(shù)CHECKVOL如果被加密的程序中有覆蓋模塊,此參數(shù)是用來選擇是否檢查覆蓋模塊。對(duì)于用CLIPPER編譯出來的軟件,加密時(shí)設(shè)置該參數(shù)非常有必要。默認(rèn)值不檢查覆蓋模塊。 BITSHELL參數(shù)都是可選的,如果不設(shè)置,都有相應(yīng)的默認(rèn)值。默認(rèn)的設(shè)置為: (1)SCHEME為隨機(jī)挑選算法 2、使用BITSHELL BITSHELL的商品盤是加密的,用戶可以將其安裝在NOVELL網(wǎng)絡(luò)服務(wù)器上使用,源盤不能復(fù)制。如果只是臨時(shí)使用一次也可不用安裝,將BITSHELL源盤放入軟驅(qū)中直接使用。方法: BITSHELL<源程序>[<目標(biāo)程序>] 如果不設(shè)置目標(biāo)程序,加密的結(jié)果直接覆蓋在源程序上。加密所用算法可用環(huán)境變量KEY來設(shè)置。 例如:①BITSHELL C:TEST.EXE 其中<源程序>是需要加密的程序路徑名。源文件必須是可執(zhí)行文件以COM或EXE為后綴。如果缺省<目標(biāo)程序>則直接在<源程序>上加密。如果還想保留未加密的程序,就不要缺省<目標(biāo)程序>,并且保證源程序名與目標(biāo)程序名不同。 [說明] 四、BITSHELL高級(jí)技巧 1、源程序嵌入式保護(hù)措施 軟件開發(fā)者在其軟件開發(fā)完成以后,再在關(guān)鍵地方鏈入以下函數(shù)。當(dāng)鏈接成功后,用BITSHELL.EXE將用戶軟件加密。這套被加密的軟件運(yùn)行時(shí),就可以檢測該程序是否被解密修改,以采取響應(yīng)的反擊措施,如拒絕執(zhí)行等等。 用戶可參考以下流程加密: (1)將自己的軟件(SAMPLE.C)編好,調(diào)試通過。 SAMPLE.C (2)在SAMPLE.C重要的地方調(diào)用加密函數(shù)。 SAMPLE.C (3)編譯SAMPLE.C成為SAMPLE.OBJ后,再將SAMPLE.OBJ和BLOBJ.OBJ鏈接成SAMPLE.EXE。 (4)用BITSHELL加密,鍵入命令執(zhí)行: 2、使用BITSHELL須知 加密時(shí)用環(huán)境變量指定參數(shù)。生產(chǎn)一批軟件,用同一種變形算法,萬一軟件有漏洞,新版本的軟件可換一種變形算法。加密后的文件放在硬盤上,可提高加密速度。超大文件加密后,再用PKZIP等壓縮后,放入商品軟件盤上。 3、注意事項(xiàng) (1)運(yùn)行BITSHELL系統(tǒng),或運(yùn)行經(jīng)BITSHELL加密的程序系統(tǒng),如果安裝了駐留型的調(diào)試跟蹤器(如:Soft-ICE,GameBuster等),請先拆除之,否則程序?qū)⒕芙^運(yùn)行,因?yàn)檫@樣有跟蹤解密的嫌疑。 (2)使用BITSHELL加密商品軟件的開發(fā)者,不要將BITSHELL系統(tǒng)盤上的任何文件和信息,以任何方式提供給最終用戶。不要將自己所用的BITSHELL的版本,序列號(hào)和變形算法透漏出去。 五、系統(tǒng)提供的可鏈接函數(shù) 函數(shù)BL-ComeIn(BLOBJ.OBJ).........................[1] C Usage Example: extern unsigend long far BL_ComeIn(void); void My_BL_ComeIn() inregs.h.ah=0x62; |