|
網(wǎng)絡(luò)技術(shù)是從1990年代中期發(fā)展起來(lái)的新技術(shù),它把互聯(lián)網(wǎng)上分散的資源融為有機(jī)整體,實(shí)現(xiàn)資源的全面共享和有機(jī)協(xié)作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計(jì)算機(jī)、存儲(chǔ)資源、數(shù)據(jù)資源、信息資源、知識(shí)資源、專(zhuān)家資源、大型數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、傳感器等。 當(dāng)前的互聯(lián)網(wǎng)只限于信息共享,網(wǎng)絡(luò)則被認(rèn)為是互聯(lián)網(wǎng)發(fā)展的第三階段。 2、使用BITSHELL須知 請(qǐng)不要使用PKLITE,LZEXE或EXEPACK進(jìn)行壓縮商品程序。 建議高級(jí)語(yǔ)言程序設(shè)計(jì)者,如有可能將所用程序設(shè)計(jì)語(yǔ)言的啟動(dòng)代碼作修改,改變程序的入口點(diǎn),避免被截獲。在程序內(nèi)部識(shí)別BITSHELL的嵌入式模塊最好采用隨機(jī)調(diào)用。 加密時(shí)用環(huán)境變量指定參數(shù)。生產(chǎn)一批軟件,用同一種變形算法,萬(wàn)一軟件有漏洞,新版本的軟件可換一種變形算法。加密后的文件放在硬盤(pán)上,可提高加密速度。超大文件加密后,再用PKZIP等壓縮后,放入商品軟件盤(pán)上。 3、注意事項(xiàng) (1)運(yùn)行BITSHELL系統(tǒng),或運(yùn)行經(jīng)BITSHELL加密的程序系統(tǒng),如果安裝了駐留型的調(diào)試跟蹤器(如:Soft-ICE,GameBuster等),請(qǐng)先拆除之,否則程序?qū)⒕芙^運(yùn)行,因?yàn)檫@樣有跟蹤解密的嫌疑。 (2)使用BITSHELL加密商品軟件的開(kāi)發(fā)者,不要將BITSHELL系統(tǒng)盤(pán)上的任何文件和信息,以任何方式提供給最終用戶(hù)。不要將自己所用的BITSHELL的版本,序列號(hào)和變形算法透漏出去。 五、系統(tǒng)提供的可鏈接函數(shù) 函數(shù)BL-ComeIn(BLOBJ.OBJ).........................[1] C語(yǔ)言說(shuō)明: extern unsigned long BL_ComeIn(void); 說(shuō)明: 利用這個(gè)函數(shù)可判斷是否運(yùn)行過(guò)反跟蹤程序,同時(shí)還返回程序的PSP段地址和機(jī)器的ROM檢查和,供用戶(hù)程序進(jìn)一步檢查。這是一個(gè)與加密外殼相關(guān)的函數(shù),這樣可使用戶(hù)程序與加密軟件融為一體。對(duì)PSP段地址和ROM檢查和的判斷不要隔的太近。 入口參數(shù):無(wú) 出口參數(shù):如果出錯(cuò),返回 0FFFFFFFFH ; (DX:AX=0FFFFFFFFH) 如果成功,返回一個(gè)無(wú)符號(hào)的長(zhǎng)字。 其中: 低字節(jié)是ROM檢查和,高字是PSP段地址。 (AL=ROM檢查和,DX=PSP段地址) 注意:ROM檢查和計(jì)算方法: 累加ROM(0xF000:0xE000)處開(kāi)始字節(jié),長(zhǎng)度為0x100。 獲取PSP段地址方法: MOV AH,62H INT 21H BX就是該程序的PSP段地址。 調(diào)用建議: 不要每次運(yùn)行都去檢查該函數(shù),用適當(dāng)頻率、在關(guān)鍵的地方調(diào)用這個(gè)函數(shù)。 C Usage Example: /* * function:BL_ComeIn */ extern unsigend long far BL_ComeIn(void); /* Error return 0xFFFFFFFF,Success Return * Lo Byte is checksum,Hi Word is PSP segment */ void My_BL_ComeIn() { unsigned long ComeIn; unsigned short int ROM_CheckSum; unsigned int PSPsegment; ComeIn=BL_ComeIn(); if (ComeIn==0xffffffff) { printf("\nERROR:not loaded from BITSHELL shell ! \n"); { else { ROM_CheckSum=ComeIn&0xff; PSPsegment =ComeIn>>16; printf("nBITSHELL On Entry:\N"); printf("ROM checksum is %x\nh",ROM_CheckSum); printf("PSP segment is %xh\n",PSPsegment); inregs.h.ah=0x62; intdos(&inregs,$outregs); printf("n This program PSP segment is %xh\n",outregs.x.bx); { { 五、一個(gè)簡(jiǎn)單的例子
這里我們一起看一下經(jīng)BITSHELL加密后的程序的情況。 采用一個(gè)極簡(jiǎn)單的例子,用DEBUG生成一個(gè) TEST.COM文件: C:\>DEBUG -A 876B:0100 MOV AL,0 876B:1012 MOV DX,260 876B:0105 OUT DX,AL 876B:0106 INT 20 8760:0108 -RCX CX 0000 :8 -N TEST.COM -W Writing 00008 bytes -Q 用BITSHELL對(duì)TEST.COM進(jìn)行加密: C:\>BITSHELL TEST.COM BITSHELL(tm)Version 2.01 Copyrighe(c) 1989-1995 by Yellow Rose SoftWare Workgroup Scheme 6 (CodeKey shift repeated) 9K Total encryption size is 9K Encryption completed successfully. 再用DEBUG來(lái)看一下加密后的TEST.COM: C:\DEBUT TEST.COM -R AX=0000 BX=0000 CX=4CBC DX=0000 SP=00C0 BP=0000 SI=0000 DI=0000 DS=877C ES=877C SS=878C CS=878C IP=021C NV UP EI PL NZ NA PO NC 878C:021C FA CLI -U 878C:021C FA CLI 878C:021D 8CCC MOV SP,CS 878C:021F 8ED4 MOV SS,SP 878C:0221 BC4D25 MOV SP,254D 878C:0224 9C PUSHF 878C:0225 51 PUSH CX 878C:0226 52 PUSH DX 878C:0227 56 PUSH SI 878C:0228 57 PUSH DI 878C:0229 55 PUSH BP 878C:022A 0E PUSH CS 878C:022B 1F POP DS 878C:022C 2E CS: 878C:022D 8C061000 MOV[0010],ES 878C:0231 2E CS: 878C:0232 C606480080 MOV BYTE PTR [0048],80 878C:0237 0E PUSH CS 878C:0238 07 POP ES 878C:0239 BEAD24 MOV SI,24AD -U
...... ......
-Q
可以看到經(jīng)加密后TEST.COM文件變長(zhǎng)了很多,這是因?yàn)樵诔绦蛲饷婕恿艘粚油鈿。同時(shí),您也發(fā)現(xiàn)了加密后的程序沒(méi)法反編譯;如果您再跟蹤一下,您又會(huì)發(fā)現(xiàn)加密后的程序已經(jīng)無(wú)法跟蹤了。如果您手頭有Turbo Debugger或Soft-ICE等等,它們也是無(wú)效的。 看起來(lái),這是一個(gè)比較好的加密工具,尤其是它提供的函數(shù)可以嵌入源代碼中,跟軟件狗配合起來(lái),達(dá)到內(nèi)外結(jié)合的加密效果,大家不妨一試。
網(wǎng)絡(luò)的神奇作用吸引著越來(lái)越多的用戶(hù)加入其中,正因如此,網(wǎng)絡(luò)的承受能力也面臨著越來(lái)越嚴(yán)峻的考驗(yàn)―從硬件上、軟件上、所用標(biāo)準(zhǔn)上......,各項(xiàng)技術(shù)都需要適時(shí)應(yīng)勢(shì),對(duì)應(yīng)發(fā)展,這正是網(wǎng)絡(luò)迅速走向進(jìn)步的催化劑。
|