|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
Watermelon
註冊時間: 2005-01-22 文章: 197
第 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 文章: 4211 來自: 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 文章: 32
第 3 樓
|
發表於: 星期五 十月 21, 2005 8:05 pm 文章主題: |
|
|
我們假設:
客戶非常順利地付費註冊了閣下的軟體,得到了一個寶貴的Serial No.之後,第二天,他竟format了硬碟…… |
|
回頂端 |
|
|
Watermelon
註冊時間: 2005-01-22 文章: 197
第 4 樓
|
發表於: 星期日 十月 23, 2005 8:53 am 文章主題: |
|
|
syntech, 大哥你好!
雖然抓出來的碼是一樣的,但你的程式碼簡潔有力,真是高手!
我想請教用這種方式抓出來的硬碟序號相同的會很多嗎?如果只是偶而一兩台那算他運氣好,我也不太在意。 |
|
回頂端 |
|
|
215001
註冊時間: 2003-06-11 文章: 389
第 5 樓
|
發表於: 星期日 十月 23, 2005 9:43 am 文章主題: |
|
|
建議少用硬碟序號(Format產生的序號)來做為軟體的保護方法
因為只要用一般的工具程式即可直接修改硬碟的序號,甚至用還原光碟,就 .........破功了 |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4211 來自: 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 文章: 197
第 7 樓
|
發表於: 星期日 十月 23, 2005 10:52 pm 文章主題: |
|
|
syntech, 前輩你好!
我真的很笨,請把抓CPU的方法教我好嗎? |
|
回頂端 |
|
|
syntech
註冊時間: 2003-05-16 文章: 4211 來自: 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 文章: 4211 來自: Taipei,Taiwan
第 10 樓
|
發表於: 星期一 十月 24, 2005 9:34 am 文章主題: |
|
|
可以要求裝在 WINDOWS 2000 /WINDOW XP 上,
比較不容易GHOST..... _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
ckp6250
註冊時間: 2004-07-30 文章: 1642
第 11 樓
|
發表於: 星期一 十月 24, 2005 9:34 am 文章主題: |
|
|
小桑•無痕 寫到: | css 寫到: | 我們假設:
客戶非常順利地付費註冊了閣下的軟體,得到了一個寶貴的Serial No.之後,第二天,他竟format了硬碟…… |
我們假設:
客戶買了20台新電腦....也非常順利地付費註冊了閣下的一套軟體,得到了一個寶貴的Serial No.之後,
第二天,他竟然用ghost複製了其它19份系統....
口圭!...少賺19個版權....
(還好我們是賣整個公司的使用權 ) | 小弟是採用 CPU 序號+硬碟多號,來處理這個問題,我想 , CUP序號,不能gohost 吧? |
|
回頂端 |
|
|
Watermelon
註冊時間: 2005-01-22 文章: 197
第 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^; |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|