線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2144
推到 Plurk!
推到 Facebook!

如何限定特定電腦才能執行程式?

尚未結案
junlin
初階會員


發表:66
回覆:94
積分:42
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-03-17 00:09:47 IP:123.110.xxx.xxx 訂閱
請問, 我撰寫了一個程式, 但要如何才能限定特定電腦才能執行這支程式?
例如: test.exe在A電腦可以使用, 但copy到B電腦就不能使用
原本我是想在CODE內寫死MAC, 但是若電腦沒有IP的話, MAC就全部變成0了, 故MAC的想法不可行.
junlin
初階會員


發表:66
回覆:94
積分:42
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-03-17 00:48:27 IP:123.110.xxx.xxx 訂閱
後來我google了一下, 發現有人使用WMI去抓processer id, 
我只要把processer id 寫死在code裡面就可以了, 給大家參考看看
或是大家有其他更好的idea?
http://www.xtremevbtalk.com/archive/index.php/t-279269.html
cancer
高階會員


發表:58
回覆:319
積分:190
註冊:2004-07-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-03-23 11:00:03 IP:211.75.xxx.xxx 未訂閱
寫一支小程式在登錄檔設一個變數並填上特定值,主程式執行時檢查這個變數,找到且內容正確,才能繼續執行,不然自動結束,這樣可以嗎?
有人把主程式 Copy 到其他電腦,就不能用啦。
inungh
初階會員


發表:0
回覆:27
積分:25
註冊:2011-06-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-06-23 09:54:16 IP:173.178.xxx.xxx 訂閱
You can use computer name or user login ID to check valid users.
------
Inung Huang
taishyang
站務副站長


發表:377
回覆:5485
積分:4552
註冊:2002-10-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-06-23 19:03:54 IP:122.116.xxx.xxx 訂閱
有心人士假如用softice or OllyDbg 這類的工具
在判斷的地方動個手腳,可能就失效了 ^^
carstyc
資深會員


發表:16
回覆:254
積分:329
註冊:2003-07-18

發送簡訊給我
#6 引用回覆 回覆 發表時間:2011-06-23 21:43:54 IP:219.84.xxx.xxx 訂閱
取硬碟的序號如何?


[code delphi]

sHDDSN:=getHDDSerial('C:\');

function getHDDSerial(DiskStr:String):String;
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
SerialNumber : string;
begin
GetVolumeInformation(PChar(DiskStr),
nil,
0,
@VolumeSerialNumber,
MaximumComponentLength,
FileSystemFlags,
nil,
0);
SerialNumber := IntToHex(HiWord(VolumeSerialNumber), 4)
'-'
IntToHex(LoWord(VolumeSerialNumber), 4);
result:=SerialNumber;
end;
[/code]


===================引 用 junlin 文 章===================
請問, 我撰寫了一個程式, 但要如何才能限定特定電腦才能執行這支程式?
例如: test.exe在A電腦可以使用, 但copy到B電腦就不能使用
原本我是想在CODE內寫死MAC, 但是若電腦沒有IP的話, MAC就全部變成0了, 故MAC的想法不可行.
編輯記錄
carstyc 重新編輯於 2011-06-23 07:47:34, 註解 無‧
inungh
初階會員


發表:0
回覆:27
積分:25
註冊:2011-06-19

發送簡訊給我
#7 引用回覆 回覆 發表時間:2011-06-25 20:46:11 IP:173.178.xxx.xxx 訂閱
 It is like user name ad password. If user know the method, user name and password, then user always can find workaround.
First, you can not let user know you use computer name.
You may use computer name and use hard driver serail number and a formula to create a string and save the value in the registry while user first time run the application and check regsiter for the value from after first run.

in this case, even user chnage computer name or hard drive then it still can run.
For example, computer name is MyComputer and hard drive serial number is 123ABC then you may have (M 3) *( y -3) - (C-3) /(o 4) mputer123ABC
and save the value in thr registry for first time running or during install and check registry from second time running.

I hope it helps,


Inung
------
Inung Huang
系統時間:2017-10-20 13:27:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!