<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 基于硬盤號(hào)和CPU序列號(hào)的軟件加密技術(shù)

    時(shí)間:2024-10-31 03:49:46 硬件維護(hù) 我要投稿
    • 相關(guān)推薦

    基于硬盤號(hào)和CPU序列號(hào)的軟件加密技術(shù)

      應(yīng)用與安全

      摘要:本文提供了一種注冊(cè)碼與計(jì)算機(jī)硬件參數(shù)相關(guān)的一種加密方法,并通過具體的實(shí)例講述了如何對(duì)軟件加密的方法。

      關(guān)鍵詞:硬盤號(hào),CPU序列號(hào),注冊(cè)表

      1引言

      計(jì)算機(jī)軟件是一種特殊的產(chǎn)品,為了防止軟件的非法復(fù)制、盜版,保護(hù)軟件開發(fā)商的利益,就必須對(duì)軟件進(jìn)行加密保護(hù)。采用基于硬盤號(hào)和CPU序列號(hào)的軟件加密技術(shù),軟件會(huì)根據(jù)微機(jī)硬件參數(shù)給出該軟件的序列號(hào);用戶需要把這一序列號(hào)用E-mail、電話或郵寄等方法寄給軟件提供商或開發(fā)商,軟件開發(fā)商利用注冊(cè)機(jī)(軟件)產(chǎn)生該軟件的注冊(cè)號(hào)寄給用戶即可。它的注冊(cè)信息與機(jī)器的硬件信息有關(guān),不同于以前的序列號(hào)的注冊(cè)方法,提高了軟件的安全性。

      2硬盤號(hào)和CPU序列號(hào)

      (1)硬盤序列號(hào):英文名HardDiskSerialNumber,該號(hào)是出廠時(shí)生產(chǎn)廠家為區(qū)別產(chǎn)品而設(shè)置的,是唯一的,是只讀的,利用硬盤序列號(hào)的加密往往是利用其唯一和只讀的特性。在有的加密軟件中采用的是硬盤卷的序列號(hào):英文名VolumeSerialNumber,以指硬盤的邏輯盤,如:“C:”、“D:”等,是高級(jí)格式化時(shí)隨機(jī)產(chǎn)生的,是可以修改的,由于其可修改,所以利用其加密,對(duì)于安全而言就大打折扣了。硬盤的卷號(hào)通過WINAPI函數(shù),GetVolumeInformation即可獲得。就IDEHDD而言,對(duì)于沒有序列號(hào)或SCSIHDD硬盤則無能為力,這也是利用它進(jìn)行加密的局限性。

     。2)CPU序列號(hào)是一個(gè)建立在處理器內(nèi)部的、唯一的、不能被修改的編號(hào)。它由96位數(shù)字組成。高32位是CPUID,用來識(shí)別CPU類型。低64位每個(gè)處理器都不同,唯一地代表了該處理器。CPU號(hào)可以用來識(shí)別每一個(gè)處理器。為了適應(yīng)這一新特征,Intel在處理中增加了兩條指令(“讀取”和“禁止”)和一個(gè)寄存器位(模式指定寄存器位:ModelSpecificRegister-“MSR”)。讀取指令擴(kuò)展了CPUID讀取指令。當(dāng)執(zhí)行讀取指令時(shí)可以得到96位的處理器序列號(hào)。禁止指令可以禁止對(duì)處理器序列號(hào)的讀取。為了配合CPU序列號(hào)的讀取和禁止,設(shè)置了MSR位。當(dāng)MSR位為“0”時(shí)可以讀取CPU序列號(hào);當(dāng)“MSR”位為“1”時(shí)只能讀取高32位(即CPUID),而低64位全為零。

      3程序?qū)崿F(xiàn)

      3.1加密方法

      通過應(yīng)用程序取得機(jī)器硬盤號(hào)和CPU號(hào)通過機(jī)密程序形成一個(gè)注冊(cè)序列號(hào),用戶將這個(gè)注冊(cè)序列號(hào)發(fā)送到軟件注冊(cè)者,軟件注冊(cè)者按照預(yù)定的算法生成注冊(cè)碼,然后將其發(fā)給用戶,通過注冊(cè)形成合法用戶。軟件每次啟動(dòng)時(shí)都到注冊(cè)表或注冊(cè)文件的相應(yīng)位置讀取注冊(cè)碼并與軟件生產(chǎn)的注冊(cè)碼比較,一致則是合法用戶,否則是非法用戶。由于注冊(cè)碼與用戶計(jì)算機(jī)的硬盤號(hào)與CPU號(hào)相關(guān)聯(lián),故其是唯一的,非法用戶即使知道注冊(cè)序列號(hào)與注冊(cè)碼也無法使用。

      3.2實(shí)現(xiàn)過程

     。1)CPU號(hào)的讀取

      硬盤的序列號(hào)只能采用對(duì)硬盤控制器直接操作的方式進(jìn)行讀取,也就是說只能采用CPU的I/O指令操作硬盤控制器,對(duì)于CPU號(hào)的讀取采用了在DELPHI嵌入?yún)R編的方法讀取。其讀取方法如下:

      MOVEAX.01H

      如果返回的EDX中,低18位為1,那么這個(gè)CPU就是支持序列號(hào)的。此時(shí)EAX就是序列號(hào)的高32位。這32位對(duì)同一型號(hào)的CPU是一樣的。

      再執(zhí)行:

      MOVEAX.03H

      此時(shí)的EDX:ECX就是序列號(hào)的第64位。

     。2)硬盤號(hào)的讀取

      硬盤號(hào)的讀取通過CreateFile函數(shù),CreateFile可以打開物理設(shè)備和串口等,使用CreateFile(?.PHYSICALDRIVEI?,)打開硬盤,其中的I為0~255,其為需要讀取的硬盤。命令如下:

      hDevice:=CreateFile(?.PhysicalDrive0?,GENERIC_READORGENERIC_WRITE,FILE_SHARE_READORFILE_SHARE_WRITE,NIL,OPEN_EXISTING,0,0)

      使用DeviceIOControl函數(shù)對(duì)打開的設(shè)備進(jìn)行通信,發(fā)送指定命令,根據(jù)返回的PSENDCMDOUTPARAMS結(jié)構(gòu),得到物理序列號(hào)和模型號(hào),把物理序列號(hào)和模型號(hào)格式化為一定的格式輸出。

      (3)對(duì)注冊(cè)表的操作

      Delphi程序中可利用TRegistry對(duì)象來存取注冊(cè)表文件中的信息。

     、賱(chuàng)建和釋放TRegistry對(duì)象

      通過Create和Destroy來創(chuàng)建對(duì)象和釋放內(nèi)存。

     、谧x取注冊(cè)表中寫入信息

      對(duì)于注冊(cè)表數(shù)據(jù)的讀取可采用ReadString、ReadInteger、ReadBinaryData等函數(shù)來讀取字符串、數(shù)值、二進(jìn)制值。

      ③向注冊(cè)表中寫入信息

      Write系列方法將信息轉(zhuǎn)化為指定的類型,并寫入注冊(cè)表。

      對(duì)于注冊(cè)表數(shù)據(jù)的寫入可采用WriteString、WriteInteger、WriteBinaryData來寫入字符串、數(shù)值、二進(jìn)制值。

      4結(jié)語

      本文給出了一種軟件加密的方法,通過該方法產(chǎn)生的注冊(cè)碼與計(jì)算機(jī)的硬件相關(guān),對(duì)于讀取的硬盤號(hào)、CPU號(hào)可以通過MD5加密算法產(chǎn)生一個(gè)注冊(cè)號(hào),保證軟件加密的可靠性,可有效地防止非法用戶破解注冊(cè)碼,保護(hù)軟件的知識(shí)產(chǎn)權(quán)。

      參考文獻(xiàn):

      [1]Delphi程序開發(fā)范例寶典[M].人民郵電出版社,2006.7:127-129

      [2]Delphi從入門到精通[M].電子工業(yè)出版社,2006.4:373-376

    【基于硬盤號(hào)和CPU序列號(hào)的軟件加密技術(shù)】相關(guān)文章:

    硬盤和固態(tài)硬盤的區(qū)別08-04

    機(jī)械硬盤和固態(tài)硬盤的區(qū)別07-02

    串口硬盤和并口硬盤的區(qū)別11-13

    固態(tài)硬盤和普通硬盤的區(qū)別06-29

    固態(tài)硬盤和普通硬盤區(qū)別09-04

    ssd硬盤和固態(tài)硬盤區(qū)別11-02

    普通主硬盤和固態(tài)硬盤區(qū)別09-11

    CPU的處理技術(shù)有哪些10-23

    硬盤接口技術(shù)10-13

    電腦CPU的維護(hù)和保養(yǎng)10-21

    主站蜘蛛池模板: 精品视频在线观看你懂的一区| 亚洲国产精品一区二区第一页| 亚洲精品综合久久| 久久国产精品久久久| 久久er99热精品一区二区| 久久无码人妻精品一区二区三区| 亚洲综合国产精品| 国产精品欧美一区二区三区不卡| 欧美精品欧美人与动人物牲交| 无码精品人妻一区| 精品国产高清在线拍| 四虎国产精品永久地址51| 国产成人精品手机在线观看| 亚洲av无码乱码国产精品fc2| 日本精品一区二区三区在线视频| 国产精品免费久久| 91精品国产福利在线观看| 99久久这里只有精品| 精品久久久噜噜噜久久久| 亚洲av无码乱码国产精品| 夜夜精品无码一区二区三区 | 精品露脸国产偷人在视频| 思思99热在线观看精品| 国产在线不卡午夜精品2021 | 国产激情精品一区二区三区| 欧美精品一本久久男人的天堂| 91精品啪在线观看国产| 精品久久久久久无码专区不卡| 日韩精品少妇无码受不了| 亚洲精品一品区二品区三品区| 亚洲情侣偷拍精品| 中文字幕无码精品亚洲资源网久久| 亚洲精品专区| 热re99久久6国产精品免费| 无码久久精品国产亚洲Av影片| 午夜DY888国产精品影院| 少妇人妻偷人精品无码视频| 奇米精品视频一区二区三区| 国产亚洲精品a在线无码| 99久久99久久久精品齐齐| 国产精品免费观看|