• <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設計版權所有者的合法權益;
    【 字體: 】【打印此頁】 【返回】【頂部】【關閉

    主站蜘蛛池模板: 在线小视频国产| 在线二区人妖系列| 久草香蕉视频在线观看| 男生和女生一起差差差很痛视频| 国产成人综合亚洲AV第一页| h片在线观看免费| 日本乱偷人妻中文字幕| 亚洲妇女水蜜桃av网网站| 糟蹋顶弄挣扎哀求np| 国产欧美一区二区精品久久久| chinese国产xxxx实拍| 无遮挡又黄又爽又色的动态图1000| 亚洲成a人片77777老司机| 精品久久久无码人妻中文字幕| 国产成人A亚洲精V品无码| 99re久久在热线播放最新地址| 拍拍拍无档又黄又爽视频| 亚洲AV色香蕉一区二区三区蜜桃| 特区爱奴在线观看| 啦啦啦手机完整免费高清观看| 另类视频区第一页| 国产香港明星裸体XXXX视频| 一区二区三区在线播放| 日本大片免a费观看在线| 亚洲乱人伦中文字幕无码| 爆乳美女脱内衣18禁裸露网站| 四只虎免费永久观看| 高潮毛片无遮挡高清免费| 国产精品小青蛙在线观看| a级毛片高清免费视频| 成人无码免费一区二区三区| 久久夜色精品国产亚洲AV动态图 | 国产精品美女免费视频观看| 一级伦理电线在2019| 日本h无羞动漫在线观看网站| 亚洲av本道一区二区三区四区| 欧美野外疯狂做受xxxx高潮| 免费大片黄在线观看| 美女羞羞动画网站视频| 国产亚洲精品自在久久| 999国产精品|