• <sub id="h4knl"><ol id="h4knl"></ol></sub>
    <sup id="h4knl"></sup>
      <sub id="h4knl"></sub>

      <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
      1. <strong id="h4knl"></strong>

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

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

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

          應(yīng)用與安全

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

          關(guān)鍵詞:硬盤號,CPU序列號,注冊表

          1引言

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

          2硬盤號和CPU序列號

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

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

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

          3.1加密方法

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

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

          (1)CPU號的讀取

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

          MOVEAX.01H

          如果返回的EDX中,低18位為1,那么這個CPU就是支持序列號的。此時EAX就是序列號的高32位。這32位對同一型號的CPU是一樣的。

          再執(zhí)行:

          MOVEAX.03H

          此時的EDX:ECX就是序列號的第64位。

          (2)硬盤號的讀取

          硬盤號的讀取通過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ù)對打開的設(shè)備進(jìn)行通信,發(fā)送指定命令,根據(jù)返回的PSENDCMDOUTPARAMS結(jié)構(gòu),得到物理序列號和模型號,把物理序列號和模型號格式化為一定的格式輸出。

          (3)對注冊表的操作

          Delphi程序中可利用TRegistry對象來存取注冊表文件中的信息。

          ①創(chuàng)建和釋放TRegistry對象

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

          ②讀取注冊表中寫入信息

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

          ③向注冊表中寫入信息

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

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

          4結(jié)語

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

          參考文獻(xiàn):

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

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

        【基于硬盤號和CPU序列號的軟件加密技術(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

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码
      3. <sub id="h4knl"><ol id="h4knl"></ol></sub>
        <sup id="h4knl"></sup>
          <sub id="h4knl"></sub>

          <sub id="h4knl"><ol id="h4knl"><em id="h4knl"></em></ol></sub><s id="h4knl"></s>
          1. <strong id="h4knl"></strong>

          2. 在线观看欧美性爱 | 亚洲成在人线在线精品 | 亚洲欧美老师机在线AⅤ | 日本欧美一级二级三级不卡 | 中文字幕在线亚洲日韩6页 亚洲亚洲影院第一页 | 亚洲欧美日韩久久精品第一区 |