人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統 > 網絡技術教程 > 詳細頁面

軟件狗[Dongles]的加密與解密技術(5)

軟件狗[Dongles]的加密與解密技術(5)

更新時間:2021-04-26 文章作者:未知 信息來源:網絡 閱讀次數:

網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。

   2、使用BITSHELL須知
    請不要使用PKLITE,LZEXE或EXEPACK進行壓縮商品程序。
    建議高級語言程序設計者,如有可能將所用程序設計語言的啟動代碼作修改,改變程序的入口點,避免被截獲。在程序內部識別BITSHELL的嵌入式模塊最好采用隨機調用。

    加密時用環境變量指定參數。生產一批軟件,用同一種變形算法,萬一軟件有漏洞,新版本的軟件可換一種變形算法。加密后的文件放在硬盤上,可提高加密速度。超大文件加密后,再用PKZIP等壓縮后,放入商品軟件盤上。

    3、注意事項

   (1)運行BITSHELL系統,或運行經BITSHELL加密的程序系統,如果安裝了駐留型的調試跟蹤器(如:Soft-ICE,GameBuster等),請先拆除之,否則程序將拒絕運行,因為這樣有跟蹤解密的嫌疑。

   (2)使用BITSHELL加密商品軟件的開發者,不要將BITSHELL系統盤上的任何文件和信息,以任何方式提供給最終用戶。不要將自己所用的BITSHELL的版本,序列號和變形算法透漏出去。

    五、系統提供的可鏈接函數

    函數BL-ComeIn(BLOBJ.OBJ).........................[1]
    C語言說明:
    extern unsigned long BL_ComeIn(void);
    說明:
    利用這個函數可判斷是否運行過反跟蹤程序,同時還返回程序的PSP段地址和機器的ROM檢查和,供用戶程序進一步檢查。這是一個與加密外殼相關的函數,這樣可使用戶程序與加密軟件融為一體。對PSP段地址和ROM檢查和的判斷不要隔的太近。
    入口參數:無
    出口參數:如果出錯,返回 0FFFFFFFFH ;
                       (DX:AX=0FFFFFFFFH)
              如果成功,返回一個無符號的長字。
              其中:
              低字節是ROM檢查和,高字是PSP段地址。
                 (AL=ROM檢查和,DX=PSP段地址)
    注意:ROM檢查和計算方法:
          累加ROM(0xF000:0xE000)處開始字節,長度為0x100。
          獲取PSP段地址方法:
          MOV AH,62H
          INT 21H
          BX就是該程序的PSP段地址。
    調用建議:
        不要每次運行都去檢查該函數,用適當頻率、在關鍵的地方調用這個函數。

    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);
    {
 {


    五、一個簡單的例子

    這里我們一起看一下經BITSHELL加密后的程序的情況。
    采用一個極簡單的例子,用DEBUG生成一個 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對TEST.COM進行加密:

    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來看一下加密后的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

    可以看到經加密后TEST.COM文件變長了很多,這是因為在程序外面加了一層外殼。同時,您也發現了加密后的程序沒法反編譯;如果您再跟蹤一下,您又會發現加密后的程序已經無法跟蹤了。如果您手頭有Turbo Debugger或Soft-ICE等等,它們也是無效的。

    看起來,這是一個比較好的加密工具,尤其是它提供的函數可以嵌入源代碼中,跟軟件狗配合起來,達到內外結合的加密效果,大家不妨一試。



網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發展,這正是網絡迅速走向進步的催化劑。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 旌德县| 鄂州市| 乐安县| 溧阳市| 六安市| 潜江市| 天水市| 阿拉尔市| 四子王旗| 洛浦县| 井陉县| 镶黄旗| 化隆| 康马县| 太白县| 沈阳市| 长丰县| 建瓯市| 盐亭县| 吉首市| 张家界市| 韩城市| 九龙县| 福清市| 湟中县| 新龙县| 深水埗区| 资溪县| 佛学| 平武县| 德令哈市| 靖江市| 礼泉县| 新乡县| 堆龙德庆县| 三原县| 涿州市| 威海市| 滨州市| 晋江市| 冷水江市|