  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		Watermelon
 
 
  註冊時間: 2005-01-22 文章: 204
 
  第 1 樓
  | 
		
			
				 發表於: 星期四 十月 20, 2005 11:28 pm    文章主題: 硬碟序號相同 | 
				     | 
			 
			
				
  | 
			 
			
				我用前輩提供如下的程式會在不同電腦抓到相同的硬碟序號,為何會這樣?有解決之道嗎?
 
*!* Get HD Serials 
 
*-- 定義 DLL 函數 
 
PUBLIC lnserialno 
 
DECLARE SHORT GetVolumeInformation IN Win32API; 
 
STRING @lpRootPathName, STRING @lpVolumeNameBuffer,; 
 
INTEGER nVolumeNameSize, INTEGER @lpVolumeSerialNumber,; 
 
INTEGER @lpMaximumComponentLength, INTEGER @lpFileSystemFlags,; 
 
STRING @lpFileSystemNameBuffer, INTEGER nFileSystemNameSize 
 
*-- 要讀取的驅動器的啟始目錄 
 
lcroot = "C:\" 
 
*-- 初始化變數 
 
STORE 0 TO lnserialno, lncomplen, lnsysflags 
 
STORE SPACE(260) TO lcvolname, lcsysname 
 
STORE LEN(lcvolname) TO lnvolsize, lnnamesize 
 
*-- 調用 GetVolumeInformation 讀取磁片資訊 
 
llresult = (GetVolumeInformation(@lcroot, @lcvolname, ; 
 
lnvolsize, @lnserialno, @lncomplen, @lnsysflags, ; 
 
@lcsysname, lnnamesize) # 0) 
 
IF lnserialno < 0 
 
lnserialno = lnserialno * (-1) 
 
ENDIF 
 
IF llresult 
 
*-- 成功 
 
lnserialno = lnserialno 
 
ELSE 
 
*-- 失敗 
 
lnserialno = nMMTT 
 
ENDIF 
 
*!* Get HD Serials End | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 2 樓
  | 
		
			
				 發表於: 星期五 十月 21, 2005 8:42 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				這是 我改自 msdn 的版本
 
 	  | 代碼: | 	 		  
 
FUNCTION    GetVolNO
 
   LPARAMETERS m.rootpath
 
 
   DECLARE GetVolumeInformation IN win32api STRING, STRING @, ;
 
       INTEGER, INTEGER @, INTEGER @, INTEGER @, STRING @, INTEGER
 
 
   m.volname = SPACE(255)
 
   m.volnamelen = LEN(m.volname)
 
   m.volumeserialnumber = 0
 
   m.maxfilenamelen = 0
 
   m.filesystemflags = 0
 
   m.filesystemname = SPACE(255)
 
   m.fsnamelen = LEN(m.filesystemname)
 
 
   =GetVolumeInformation(m.rootpath, @m.volname, m.volnamelen, ;
 
       @m.volumeserialnumber, @m.maxfilenamelen, ;
 
       @m.filesystemflags, @m.filesystemname, m.fsnamelen)
 
       
 
RETURN  m.volumeserialnumber 
 
 | 	  
 
 
 
iHDD_VOLUMN_SN = GetVolNo("c:\")  && type(iHDD_VOLUMN_SN) = "N"
 
 
基本上都是呼叫 win32api 的 GetVolumeInformation(),
 
 
對本機電腦上的磁碟機有效,
 
我記得好像不能查網路磁碟機的樣子(不保證正確),
 
 
所以你應該說明你怎麼用的,傳回值是多少,而不是只是說"有問題"這樣. _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		css
 
 
  註冊時間: 2004-12-31 文章: 33
 
  第 3 樓
  | 
		
			
				 發表於: 星期五 十月 21, 2005 8:05 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				我們假設:
 
 
客戶非常順利地付費註冊了閣下的軟體,得到了一個寶貴的Serial No.之後,第二天,他竟format了硬碟…… | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		Watermelon
 
 
  註冊時間: 2005-01-22 文章: 204
 
  第 4 樓
  | 
		
			
				 發表於: 星期日 十月 23, 2005 8:53 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				syntech, 大哥你好!
 
雖然抓出來的碼是一樣的,但你的程式碼簡潔有力,真是高手!
 
我想請教用這種方式抓出來的硬碟序號相同的會很多嗎?如果只是偶而一兩台那算他運氣好,我也不太在意。 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		215001
 
 
  註冊時間: 2003-06-11 文章: 393
 
  第 5 樓
  | 
		
			
				 發表於: 星期日 十月 23, 2005 9:43 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				建議少用硬碟序號(Format產生的序號)來做為軟體的保護方法
 
因為只要用一般的工具程式即可直接修改硬碟的序號,甚至用還原光碟,就 .........破功了 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 6 樓
  | 
		
			
				 發表於: 星期日 十月 23, 2005 5:02 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				抓 HDD VOLUMN S/N 是最簡單也是沒什麼保障的方法,
 
正如 css 兄所說,
 
每format一次,都可以得到不同的序號,
 
你要怎麼確定使用者是真的重新format,還是他想偷機多裝幾套?
 
我大概是在2001年左右完成整個HDD VOLUMN S/N 保護模組,
 
目的也只是提供最基礎的軟體保護而已,
 
要玩大的,還是必須像m$一樣,
 
抓CPU,網卡,MB序號之類的,
 
混合成一組硬體架構碼,
 
這樣保護的能力比較強.
 
 
那不是我寫的,
 
只是把MSDN上的程式改一下而已.
 
如果真的是我寫的,
 
因為公司智慧財產權保護條約,
 
我是不會貼出來的.  ^_^ _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙
   syntech 在 星期一 十月 24, 2005 9:32 am 作了第 1 次修改 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		Watermelon
 
 
  註冊時間: 2005-01-22 文章: 204
 
  第 7 樓
  | 
		
			
				 發表於: 星期日 十月 23, 2005 10:52 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				syntech, 前輩你好!
 
我真的很笨,請把抓CPU的方法教我好嗎? | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 8 樓
  | 
		 | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		小桑•無痕
 
  
  註冊時間: 2003-07-08 文章: 304 來自: Tainan, Taiwan
  第 9 樓
  | 
		
			
				 發表於: 星期一 十月 24, 2005 8:43 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | css 寫到: | 	 		  我們假設:
 
 
客戶非常順利地付費註冊了閣下的軟體,得到了一個寶貴的Serial No.之後,第二天,他竟format了硬碟…… | 	  
 
 
我們假設:
 
客戶買了20台新電腦....也非常順利地付費註冊了閣下的一套軟體,得到了一個寶貴的Serial No.之後,
 
第二天,他竟然用ghost複製了其它19份系統....   
 
 
口圭!...少賺19個版權....
 
 
 
 
(還好我們是賣整個公司的使用權   ) _________________ 用力 Try 一下...可以發現很多好玩的事.... | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 10 樓
  | 
		
			
				 發表於: 星期一 十月 24, 2005 9:34 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				可以要求裝在 WINDOWS 2000 /WINDOW XP 上,
 
比較不容易GHOST..... _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		ckp6250
 
 
  註冊時間: 2004-07-30 文章: 1645
 
  第 11 樓
  | 
		
			
				 發表於: 星期一 十月 24, 2005 9:34 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | 小桑•無痕 寫到: | 	 		   	  | css 寫到: | 	 		  我們假設:
 
 
客戶非常順利地付費註冊了閣下的軟體,得到了一個寶貴的Serial No.之後,第二天,他竟format了硬碟…… | 	  
 
 
我們假設:
 
客戶買了20台新電腦....也非常順利地付費註冊了閣下的一套軟體,得到了一個寶貴的Serial No.之後,
 
第二天,他竟然用ghost複製了其它19份系統....   
 
 
口圭!...少賺19個版權....
 
 
 
 
(還好我們是賣整個公司的使用權   ) | 	  小弟是採用 CPU 序號+硬碟多號,來處理這個問題,我想 , CUP序號,不能gohost 吧? | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		Watermelon
 
 
  註冊時間: 2005-01-22 文章: 204
 
  第 12 樓
  | 
		
			
				 發表於: 星期三 十月 26, 2005 11:34 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | ckp6250 寫到: | 	 		   	  | 小桑•無痕 寫到: | 	 		   	  | css 寫到: | 	 		  我們假設:
 
 
客戶非常順利地付費註冊了閣下的軟體,得到了一個寶貴的Serial No.之後,第二天,他竟format了硬碟…… | 	  
 
 
我們假設:
 
客戶買了20台新電腦....也非常順利地付費註冊了閣下的一套軟體,得到了一個寶貴的Serial No.之後,
 
第二天,他竟然用ghost複製了其它19份系統....   
 
 
口圭!...少賺19個版權....
 
 
 
 
(還好我們是賣整個公司的使用權   ) | 	  小弟是採用 CPU 序號+硬碟多號,來處理這個問題,我想 , CUP序號,不能gohost 吧? | 	  綜合大家的意見之後,看來只有用 KeyPro 來防君子了。 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		jmforu
 
 
  註冊時間: 2005-10-27 文章: 6
 
  第 13 樓
  | 
		
			
				 發表於: 星期六 十月 29, 2005 8:07 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				硬盘有二个号是不能修改的:
 
Model Number
 
Serial Number
 
 
但不是所有的硬盘厂家都有Serial Number
 
 
上面取的是 Volume Number,这个用软件是可以修改的(DOS下最容易,WINDOWS下直接读写扇区不容易.但还是可以做的到) | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		janlih
 
 
  註冊時間: 2003-11-04 文章: 69
 
  第 14 樓
  | 
		
			
				 發表於: 星期四 八月 17, 2006 11:28 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				那請問各位大大:
 
1. 如果用cpu+網卡MAC+HD S/N 來保護程式取得註冊號碼,那如果其中一樣硬體故障換新後,客戶會重新要求一個註冊碼,那如何有效的防止客戶虛報呢?想聽聽各位大大的經驗或想法?
 
 
2. 這與MICROSOFT的WINXP做法好像是一樣的,不知MICROSOFT是如何防範的? | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		catjoke
 
 
  註冊時間: 2003-06-16 文章: 175 來自: 香港
  第 15 樓
  | 
		
			
				 發表於: 星期四 八月 17, 2006 12:14 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				最好還是 原始的 Hardware Lock, 不過要隻軟件價錢超過 一定數額 才有意義..
 
 
讀書時那個畫 SSADM 軟件就是一個例子.. _________________ 喵喎~ 貓當然是 "茅" 的嘛! ^0^; | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |