亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

VC++中利用磁盤序列號識別正版軟件

2019-11-17 05:11:35
字體:
來源:轉載
供稿:網友
摘要:本文講述了獲取磁盤序列號的方法,并利用所讀取的磁盤序列號來作為甄別正版軟件的一種手段。

  要害字:磁盤序列號、正版軟件、識別

  一、 引言

  作為程序員,不希望看到自己辛辛勞苦編制的軟件被盜版,雖然國家為了打擊盜版和保護知識產權出臺了一系列的相關法律法規,但仍有眾多的地下盜版商在利益的驅使下置國法于不顧,對眾多的軟件進行非法復制、傳播,所以身為程序員有必要加強自我保護意識、利用自身在編程方面的優勢對自己編寫的軟件進行保護,防止或盡量減少被盜版的可能性。本文就針對這個問題提出了一種簡便易行的對正版軟件進行甄別的方法。

  二、 設計思路與實現原理

  雖然可以用純軟件的方式通過對輸入的產品序列號進行判定的方式來驗證該軟件是否為正版,但由于序列號要由用戶手工輸入,位數較少的話達不到保護軟件的目的,太長又不便用戶輸入,而且盜版商可以用Soft-ICE等調試跟蹤軟件查找到需要輸入序列號的對話框被調用的地址,通過對該地址的修改,可以很輕松的跳過對產品序列號的驗證過程,使之發揮不了作用。相比之下,利用硬件或采用軟件兼有硬件的加密方式可以達到較好的保護效果,因為硬件究竟不象軟件那樣輕易被復制、分析、更改。而且采用這種方式一般不需要用戶做什么工作,判別工作都是由軟件在后臺自動完成的,使用起來比較方便。在此領域做的較好的北京江民公司的KV300系列殺毒軟件就是通過對正版殺毒盤人為對載體軟盤的某扇區的數據進行更改,使之具有非凡的標記,由于該扇區被人為設置為"壞扇區"所以不會隨數據拷貝到其他軟盤,而沒有該非凡扇區的磁盤是無法正常運行程序的,這種結合硬件來保護軟件的方法還是比較可靠的。

  雖然利用磁盤扇區對正版軟件進行標注的可靠性較高,但實現起來較煩瑣。本文采用一種通過對磁盤的序列號進行判別的方式簡單而又可靠地保護軟件不被非法傳播。在微軟的操作系統中,對每一個磁盤都在其格式化時設置有一個隨機的8字節長的序列號,雖然理論上有重復的可能,但實際上要找到兩個相同的磁盤序列號是很困難的,根據概率論的知識可以算出碰到兩個相同磁盤序列號的概率為0.00000000023283,即大約5億多張磁盤中才會碰到相同的序列號,對我們來說這已經足夠了 。而且磁盤序列號也不會隨著磁盤上的軟件內容的拷貝而拷貝,所以我們在此把磁盤序列號作為唯一識別碼應用于我們的軟件中,可以用API函數GetVolumeInformation來很方便的獲取磁盤的序列號,其原型聲明如下:

BOOL GetVolumeInformation( LPCTSTR lPRootPathName,
LPTSTR lpVolumeNameBuffer,
DWord nVolumeNameSize,
LPDWORD lpVolumeSerialNumber,
LPDWORD lpMaximumComponentLength,
LPDWORD lpFileSystemFlags,
LPTSTR lpFileSystemNameBuffer,
DWORD nFileSystemNameSize );

  在這里只需通過lpRootPathName來設置我們需要檢測的磁盤驅動器號,執行后結果保存在lpVolumeSerialNumber中,其他參數我們不關心,均設為空(NULL)。

VC++中利用磁盤序列號識別正版軟件(圖一)
  我們必須在程序開始執行時馬上進行檢測工作,驗證為正版的才可以繼續執行,否則就終止程序的運行使盜版無法使用,從而達到保護正版軟件的目的。我們答應將同一份正版軟件安裝到有限的多臺計算機中,將識別用的唯一標識符用軟盤的磁盤序列號來表示,這張軟盤就作為該套軟件的鑰匙盤,首先檢測在硬盤中是否有認證文件,假如沒有就把鑰匙盤插入到軟驅,在驗證序列號正確的前提下把C盤的序列號保存到認證文件中,下次運行程序就會檢測到認證文件,通過對認證文件內容和C盤序列號的動態比較來識別是否是正版,假如不能匹配,需要再插入鑰匙盤再做一個認證文件。所以整個驗證系統只需該套軟件在某臺計算機上首次運行程序時需要使用一次鑰匙盤,或是在認證文件發生損壞后需要使用鑰匙盤對其進行恢復,其余時間均由認證文件對正版進行保證。下面的流程圖展示了程序對正版的唯一標識符進行驗證的全部過程: 更多文章 更多內容請看常用軟件加密寶典  軟件插件  殺毒軟件專欄專題,或

  三、 程序的具體實現

  在程序正式編寫之前,需要預先獲取到作為鑰匙盤的軟盤的磁盤序列號,使之作為我們判定軟件是否為正版的依據??捎们懊嫣岬降腁PI函數GetVolumeInformation()來實現:

DWORD dwSerialNum;
GetVolumeInformation("A://",NULL,NULL,&dwSerialNum,NULL,NULL,NULL,NULL);

  雙字型變量dwSerialNum內保存有鑰匙盤的序列號。并把該值在正式程序中用#define宏定義為一個常量,作為正版的標識。由于需要在程序正式運行前對程序的正版與否進行識別所以需要在程序的入口函數,應用程序類的InitInstance()函數中對其進行編程,并且應該在識別完畢之前用m_pMainWnd->ShowWindow(SW_HIDE);函數隱藏程序主界面,直至判定為正版之后方可改變其參數為"SW_SHOW"將主界面正常顯示。下面是對認證文件進行判別的主要代碼:

……
if(file.Open("Logo.ini",CFile::modeReadWrite)==FALSE)
{
  AfxMessageBox("請將正版鑰匙盤插入到軟驅!");
  MakeKey();
}
else
{
  file.Read(logo,20);
  file.Close();
  DWORD LogoNum=atol(logo);
  GetVolumeInformation("C://",NULL,NULL,&dwIDESerial,NULL,NULL,NULL,NULL);
  if(LogoNum!=dwIDESerial)
  {
   AfxMessageBox("請將正版鑰匙盤插入到軟驅!");
   MakeKey();
  }
  else
   m_bCanRun=true;
}
……
if(m_bCanRun==true)
{
  m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
  m_pMainWnd->UpdateWindow();
}
else
PostQuitMessage(0);

  跟據設計的流程圖,當沒有發現認證文件(首次運行程序)時或是認證文件內容與C盤的序列號不匹配(認證文件出錯)時就要利用鑰匙盤創建/恢復認證文件,下面是實現該功能的MakeKey函數的部分要害代碼: ……

GetVolumeInformation("A://",NULL,NULL,&dwSerialNum,NULL,NULL,NULL,NULL);
if(dwSerialNum==SerialNum)//SerialNum就是我們預先獲取的作為正版標識的序列號
{
  GetVolumeInformation("C://",NULL,NULL,&dwIDESerial,NULL,NULL,NULL,NULL);
  ltoa(dwIDESerial,logo,10);
  while(logo[i]!=’/0’)
   i++;
  ……
  file.Open("Logo.ini",CFile::modeCreate CFile::modeReadWrite);
  file.Write(logo,i);
  file.Close();
  AfxMessageBox("已通過認證,下次使用時不必再插入鑰匙軟盤!");
  m_bCanRun=true;
}
else
{
  AfxMessageBox("請插入正版鑰匙軟盤再執行本程序!");
  m_bCanRun=false;
}

  四、 小結

  本文介紹的只是此類軟件中的一種實現方法,在理解本文編程思想的基礎下也可以采用其他類似的方法對軟件進行保護,比如也可以用網卡的標識號作為認證的標識等等。而且也可以用類似的方式發布共享軟件,以用戶反饋回的硬件參數作為輸入來產生注冊碼等等??傊?,具體如何應用仍要根據實際的需求而靈活的作出決定。本程序在windows 2000 Professional下,由Microsoft Visual C++ 6.0編譯調試通過。 更多文章 更多內容請看常用軟件加密寶典  軟件插件  殺毒軟件專欄專題,或

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国内偷自视频区视频综合| 欧美成人剧情片在线观看| 欧美日韩在线视频观看| 一区二区三区在线播放欧美| 国产精品色午夜在线观看| 红桃av永久久久| 欧美激情在线观看| 最近2019中文免费高清视频观看www99| 久久精品中文字幕电影| 久久精品人人做人人爽| 午夜精品一区二区三区在线视| 国产欧美日韩视频| 国产在线精品一区免费香蕉| 国产精品自产拍在线观| 91青草视频久久| 亚洲国产成人精品久久| 麻豆国产va免费精品高清在线| 国内精品一区二区三区| 亚洲综合日韩在线| 成人免费激情视频| 欧美日韩免费区域视频在线观看| 国产亚洲人成a一在线v站| 亚洲国产欧美一区二区三区久久| 久久露脸国产精品| 欧美一区亚洲一区| 久久中文久久字幕| 人九九综合九九宗合| 中文字幕欧美国内| 欧美理论电影在线观看| 777国产偷窥盗摄精品视频| 国产成人精品网站| 国产91色在线|免| 国产偷国产偷亚洲清高网站| 日韩电影中文字幕一区| 国产精品嫩草影院久久久| 欧美日韩一区二区免费在线观看| 久久视频免费在线播放| 国产精品综合不卡av| 久久电影一区二区| 国产精品白嫩美女在线观看| 国产精品黄视频| 亚洲跨种族黑人xxx| 欧美国产日韩一区二区在线观看| 色婷婷综合成人av| 亚洲午夜精品久久久久久性色| 91精品视频观看| yw.139尤物在线精品视频| 欧美在线亚洲一区| 亚洲福利视频免费观看| 国产不卡精品视男人的天堂| 精品中文字幕视频| 日韩中文字幕视频在线观看| 成人免费在线网址| 在线观看91久久久久久| 国产成人精品久久久| 亚洲欧美日韩另类| 北条麻妃99精品青青久久| 欧美黄色小视频| 欧美一级免费视频| 蜜月aⅴ免费一区二区三区| 成人久久精品视频| 国产日韩在线看| 日韩大片在线观看视频| 精品一区精品二区| 久久久久久噜噜噜久久久精品| 中文字幕日韩欧美在线视频| 欧美与黑人午夜性猛交久久久| 日本一区二区在线播放| 日韩av在线网站| 亚洲人成77777在线观看网| 色综合亚洲精品激情狠狠| 久久久久久免费精品| 午夜精品在线视频| 久久久天堂国产精品女人| 亚洲视频在线看| 国产精品第2页| 26uuu另类亚洲欧美日本一| 欧美人与性动交| 91精品国产综合久久香蕉的用户体验| 亚洲曰本av电影| 成人免费视频网| 欧美性少妇18aaaa视频| 国产成人精品久久久| 久久69精品久久久久久久电影好| 欧美理论电影在线播放| 日韩av在线资源| 日韩高清免费在线| 国产一级揄自揄精品视频| 亚洲国产精品人久久电影| 亚洲一级黄色av| 国产剧情日韩欧美| 欧美精品在线免费观看| 欧美日韩黄色大片| 色悠悠国产精品| 欧洲中文字幕国产精品| 一区二区三区回区在观看免费视频| 91嫩草在线视频| 久久久久久999| 91亚洲国产成人久久精品网站| 色午夜这里只有精品| 日韩美女主播视频| 日韩电影在线观看永久视频免费网站| 日韩欧美在线观看视频| 亚洲人成在线观看网站高清| 一区二区在线视频播放| 欧美美女操人视频| 97色伦亚洲国产| 97在线观看免费高清| 亚洲人成电影网站| 欧洲一区二区视频| 日韩高清电影免费观看完整版| 久久久成人av| 亚洲第一级黄色片| xxav国产精品美女主播| 亚洲欧美日韩成人| 亚洲自拍偷拍视频| 成人久久一区二区三区| 亚洲二区中文字幕| 麻豆成人在线看| 日韩免费观看高清| 久久精品在线视频| 日韩av电影在线播放| 日本sm极度另类视频| 成人性生交大片免费看小说| 久久久www成人免费精品| 亚洲美女精品成人在线视频| 亚洲v日韩v综合v精品v| 国产精品第七影院| 国产日韩视频在线观看| 亚洲另类激情图| 中文字幕欧美日韩va免费视频| 国产精品av在线| 亚洲人午夜精品| 久热精品视频在线| 国产一区二区动漫| 久久艹在线视频| 欧美精品www| 亚洲无限乱码一二三四麻| 中文字幕亚洲欧美日韩高清| 精品一区精品二区| 国产视频一区在线| 欧美超级免费视 在线| 成人黄色大片在线免费观看| 亚洲男人天堂九九视频| 亚洲国产成人精品一区二区| 日韩一区二区欧美| 96sao精品视频在线观看| 欧美日韩xxxxx| 国产精品尤物福利片在线观看| 日韩欧美在线网址| 国产精品福利无圣光在线一区| 国产精品盗摄久久久| 日韩精品极品在线观看播放免费视频| 日韩色av导航| 日韩精品在线观看网站| 亚洲国产成人精品久久| 久久久999精品视频| 国产精品精品一区二区三区午夜版| 日韩欧美国产成人| 91在线色戒在线| 欧洲成人午夜免费大片| 欧美电影在线观看网站| 亚洲一区二区三区在线免费观看| 欧美激情亚洲综合一区|