中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

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

      時間:2024-10-31 03:49:46 硬件維護 我要投稿
      • 相關推薦

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

        應用與安全

        摘要:本文提供了一種注冊碼與計算機硬件參數相關的一種加密方法,并通過具體的實例講述了如何對軟件加密的方法。

        關鍵詞:硬盤號,CPU序列號,注冊表

        1引言

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

        2硬盤號和CPU序列號

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

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

        3程序實現

        3.1加密方法

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

        3.2實現過程

        (1)CPU號的讀取

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

        MOVEAX.01H

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

        再執行:

        MOVEAX.03H

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

        (2)硬盤號的讀取

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

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

        使用DeviceIOControl函數對打開的設備進行通信,發送指定命令,根據返回的PSENDCMDOUTPARAMS結構,得到物理序列號和模型號,把物理序列號和模型號格式化為一定的格式輸出。

        (3)對注冊表的操作

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

        ①創建和釋放TRegistry對象

        通過Create和Destroy來創建對象和釋放內存。

        ②讀取注冊表中寫入信息

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

        ③向注冊表中寫入信息

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

        對于注冊表數據的寫入可采用WriteString、WriteInteger、WriteBinaryData來寫入字符串、數值、二進制值。

        4結語

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

        參考文獻:

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

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

      【基于硬盤號和CPU序列號的軟件加密技術】相關文章:

      硬盤和固態硬盤的區別08-04

      機械硬盤和固態硬盤的區別07-02

      串口硬盤和并口硬盤的區別11-13

      固態硬盤和普通硬盤的區別06-29

      固態硬盤和普通硬盤區別09-04

      ssd硬盤和固態硬盤區別11-02

      普通主硬盤和固態硬盤區別09-11

      CPU的處理技術有哪些10-23

      硬盤接口技術10-13

      電腦CPU的維護和保養10-21

      主站蜘蛛池模板: 亚洲黄色性生活一级片| 亚洲av影片在线观看| 久久国产香蕉一区精品天美| 日本口爆吞精在线视频| 男女视频在线观看一区二区三区| 久久中精品中文字幕入口| 一区二区三区不卡免费av| 九龙城区| 福利一区二区三区视频在线| 中文字幕精品永久在线| 国产精品不卡无码AV在线播放| 国产精品va在线观看一| 国产区二区三区在线观看| 龙南县| 玉门市| 尉犁县| 一区二区三区国产精品| 亚洲日韩国产精品不卡一区在线| 午夜无码片在线观看影院y | 在线亚洲精品国产成人二区| 麻豆国产成人AV网| 国产精品成人无码a 无码| 日韩狼人精品在线观看| 91久久精品美女高潮不断| 中文日产幕无限码一区| 91蜜桃臀免费在线观看| 亚洲又黄又大又爽毛片| 久久精品国产亚洲av高清四虎| 中国老太老肥熟女视频| 一区二区高清视频在线观看| 日本韩国一区二区精品| 少妇精品一区二区三区免费| 国内精品少妇高潮在线看男男| 色综合久久久久综合一本到桃花网 | 家居| 久久久久久久久国内精品影视| 综合图区亚洲另类偷窥| 日韩av一区二区三区在线播放| 91亚洲国产成人久久精品| 国产欧美日韩专区毛茸茸| 天堂岛国精品在线观看一区二区|