• <rt id="imqiw"></rt>
  • <rt id="imqiw"><acronym id="imqiw"></acronym></rt>
    
    
  • 經典案例

    聯系方式

    公司名稱:昆山華航電子有限公司
    公司電話:0512-50139595
    公司郵箱:eric@kshuahang.com
    公司地址:江蘇省昆山市善浦西路

    您當前的位置:首頁 > 技術資源 > 芯片解密

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

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

    三、操作指南

    1、BITSHELL參數的詳細說明

    BITSHELL可以用KEY環境變量來設定一些參數,這樣可以簡化使用過程。設置方法如下:

    SET KEY=[SCHEMExx,][STAY,][CHECKOVL]

    BITSHELL各項參數的意義如下:

    (1)參數SCHEMExx,若給出則依用戶的要求使用指定的變形算法,否則將隨機抽取一種加密算法。BITSHELL2.0共有20種算法可選。

    每一種算法都有自己的特點,有的加密難度大但解碼時間長,這種算法適合加密重要的代碼不是特別大的軟件,如算法三和十二;還有的加密難度適中但解碼速度快,如算法一,適合加密大型軟件。

    每個用戶可以根據自己的特點選擇,如加密不同的版本用不同的算法,加密不同的程序用不同的算法。如選算法十五可給出SCHEME15,選算法十九可給出SCHMEM19等,依次類推。

    (2)參數STAY用來選擇在加密程序執行完畢后,是否駐留監控程序。默認值為不駐留監控。

    如果加密FoxPro編譯的程序,必須加參數SET KEY=STAY,以監控覆蓋模塊。

    (3)參數CHECKVOL如果被加密的程序中有覆蓋模塊,此參數是用來選擇是否檢查覆蓋模塊。對于用CLIPPER編譯出來的軟件,加密時設置該參數非常有必要。默認值不檢查覆蓋模塊。

    BITSHELL參數都是可選的,如果不設置,都有相應的默認值。默認的設置為:

    (1)SCHEME為隨機挑選算法
    (2)不駐留檢測程序(加密FoxPro編譯的軟件,設定為駐留檢測)
    (3)不檢查覆蓋模塊

    2、使用BITSHELL

    BITSHELL的商品盤是加密的,用戶可以將其安裝在NOVELL網絡服務器上使用,源盤不能復制。如果只是臨時使用一次也可不用安裝,將BITSHELL源盤放入軟驅中直接使用。方法:

    BITSHELL<源程序>[<目標程序>]

    如果不設置目標程序,加密的結果直接覆蓋在源程序上。加密所用算法可用環境變量KEY來設置。

    例如:①BITSHELL C:TEST.EXE
    ②BITSHELL TEST.EXE SAMPLE.EXE
    ③A:BITSHELL D:TEST.EXE C:TEST.EXE

    其中<源程序>是需要加密的程序路徑名。源文件必須是可執行文件以COM或EXE為后綴。如果缺省<目標程序>則直接在<源程序>上加密。如果還想保留未加密的程序,就不要缺省<目標程序>,并且保證源程序名與目標程序名不同。

    [說明]
    (1)BITSHELL系統本身是加密的,不能復制。
    (2)經BITSHELL加密的軟件,可以拷貝,散發,任意運行,除非被加密的程序有自己的反拷貝介質。
    (3)經BITSHELL加密的軟件不能還原為未加密狀態。
    (4)經BITSHELL加密的軟件無法跟蹤,無法反匯編。

    四、BITSHELL高級技巧

    1、源程序嵌入式保護措施

    軟件開發者在其軟件開發完成以后,再在關鍵地方鏈入以下函數。當鏈接成功后,用BITSHELL.EXE將用戶軟件加密。這套被加密的軟件運行時,就可以檢測該程序是否被解密修改,以采取響應的反擊措施,如拒絕執行等等。

    用戶可參考以下流程加密:

    (1)將自己的軟件(SAMPLE.C)編好,調試通過。

    SAMPLE.C
    #include<stdio.h>
    main()
    {
    printf("This is my sample program! /n");
    }

    (2)在SAMPLE.C重要的地方調用加密函數。

    SAMPLE.C
    #include<stdio.h>
    main()
    {
    /* Insert BITSHELL function call */
    id (BL_ComeIn()==0)
    {
    printf("Error! /n")
    return(255);

    printf("Thin is my sample program! /n");}

    (3)編譯SAMPLE.C成為SAMPLE.OBJ后,再將SAMPLE.OBJ和BLOBJ.OBJ鏈接成SAMPLE.EXE。
    QCL /AL SAMPLE.C BLOBJ.OBJ

    (4)用BITSHELL加密,鍵入命令執行:
    BITSHELL SAMPLE.EXE SALE.EXE
    軟件加密過程完成了!
    如果被加密的程序SALE.EXE被解密或修改,就會提示錯誤,然后退出。

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


    上一篇:軟件狗[Dongles]的加密與解密技術(2)
    下一篇軟件狗[Dongles]的加密與解密技術(4)
    溫馨提示:
    凡在本公司進行電路板克隆業務的客戶,必須有合法的PCB設計版權來源聲明,以保護原創PCB設計版權所有者的合法權益;
    【 字體: 】【打印此頁】 【返回】【頂部】【關閉

    主站蜘蛛池模板: 久久国产成人精品国产成人亚洲 | 极品videossex日本妇| 在线观看噜噜噜私人影院| 午夜影院在线视频| 中国国语毛片免费观看视频| 蜜芽亚洲欧美一区二区电影| 日本在线不卡视频| 国产亚洲人成无码网在线观看| 久久亚洲美女精品国产精品| 超清中文乱码字幕在线观看 | 美妇又紧又嫩又多水好爽| 日本三级中文字幕| 国产在线高清精品二区| 久久国产高潮流白浆免费观看| 麻麻张开腿让我爽了一夜黄文| 日韩在线a视频免费播放| 国产成人 亚洲欧洲| 久久亚洲色一区二区三区| 蜜臀精品国产高清在线观看| 手机看片在线精品观看| 又爽又刺激的视频| v11av18| 波多野结衣的av一区二区三区| 国语第一次处破女| 亚洲另类自拍丝袜第五页| 欧美视频亚洲色图| 日本视频www色| 啊灬啊灬别停啊灬用力啊免费| 一级看片免费视频囗交| 男人桶女人j的视频在线观看| 国精品午夜福利视频不卡757 | 妈妈的朋友在8完整有限中字5| 免费人成视网站在线观看不卡| 99久久精品免费看国产一区二区三区| 污污视频在线免费观看| 国产精品久久久久无码av| 久久综合狠狠色综合伊人| 色婷婷亚洲综合| 好男人好影视在线播放| 亚洲男人第一av网站| 亚洲欧美日韩国产一区图片|