|
| kopisikring - unik maskine kode... Fra : Peter Petersen |
Dato : 10-05-05 21:59 |
|
Jeg har lavet et program, som jeg gerne ville beskytte mod at blive kopieret
fra en maskine til en anden. Dette forestiller jeg mig skulle ske gennem en
registrering af programmet på en hjemmeside med noget udvæksling af nogle
koder, som er specielle for selve maskinen.
P.g.a. de lidt specielle omstændigheder, hvorunder programmet nogle gange
benyttes, kan jeg ikke gemme værdier andre steder end i selve programmappen,
hvorfor jeg skal generere en speciel fil, som jeg på en elller anden måde
kan sammenholde med systemet for at sikre mig at den ikke er kopieret
fra/generet på en anden maskine. (jeg er naturligvis opmærksom på, at det
betyder at brugeren ikke så kan skifte hardware/os, men det er ikke af
større betydning i denne sammenhæng)
Nogen enkle forslag til hvad jeg kan sammenligne med?
Findes der en unik værdi i f.eks. registringsdatabasen eller lignende, som
jeg kan aflæse? (Husk igen, at jeg ikke selv kan gemme værdier her...)
f.eks. et tilfælding generet løbenummer for de enkelte
windows-installationer....
Bemærk iøvrigt, at der ikke behøver være tale om noget ubrydeligt system.
Blot en sikring for den gennemsnitlige windows-bruger. Pirater og andre
super-nørder er ikke en trusel i denne sammenhæng....
M.v.h.
Peter
| |
Finn Bindeballe (11-05-2005)
| Kommentar Fra : Finn Bindeballe |
Dato : 11-05-05 07:50 |
|
hej ....
Du kunne jo læse diskens serienr. og saa gemme det i en eller anden
krypteret fil....
/Finn
| |
Peter Petersen (11-05-2005)
| Kommentar Fra : Peter Petersen |
Dato : 11-05-05 09:35 |
|
> Du kunne jo læse diskens serienr. og saa gemme det i en eller anden
> krypteret fil....
Nogen der har erfaringer med det i delphi?
| |
Finn Bindeballe (11-05-2005)
| Kommentar Fra : Finn Bindeballe |
Dato : 11-05-05 10:16 |
|
Peter Petersen wrote:
>>Du kunne jo l犘e diskens serienr. og saa gemme det i en eller anden
>>krypteret fil....
>>
>>
>
>Nogen der har erfaringer med det i delphi?
>
>
>
>
med at læse diskens serienr ?? eller med at kryptere ??? der findes
masser af komponenter til begge dele....
/F
| |
Ove Kjeldgaard (11-05-2005)
| Kommentar Fra : Ove Kjeldgaard |
Dato : 11-05-05 17:54 |
|
"Peter Petersen" <the.1@get2net.dk> wrote:
>Nogen der har erfaringer med det i delphi?
Kig lidt på FindFirst, TSearchRec og faVolumeID.
Men der er selvfølgelig problemer Volume ID når folk formaterer deres harddisk.
--
Med venlig hilsen, Ove Kjeldgaard, nospam AT privat DOT dk
Natur og Friluftsliv: < http://hiker.dk>
| |
Finn Bindeballe (12-05-2005)
| Kommentar Fra : Finn Bindeballe |
Dato : 12-05-05 07:53 |
|
hej
omformatering....???? var det ikke noget man brugte paa matadors tid...
jeg har ikke gjort det i mange år.......
/F
| |
Uffe Kousgaard (12-05-2005)
| Kommentar Fra : Uffe Kousgaard |
Dato : 12-05-05 12:19 |
|
"Finn Bindeballe" <postmaster@127.0.0.1> wrote in message
news:4282fd46$0$299$edfadb0f@dread11.news.tele.dk...
> hej
>
> omformatering....???? var det ikke noget man brugte paa matadors tid...
> jeg har ikke gjort det i mange år.......
Matador blev vist fra 1978-82, og på den tid var der ikke mange private som
havde en computer og da slet ikke en harddisk. Selv 8" floppyerne forekom
kun i dyre systemer, hvorimod kasettebåndoptageren netop var ankommet som
lagermedium for diverse hobbycomputere. Og de skulle altså ikke formateres !
hilsen
Uffe
| |
Thor (12-05-2005)
| Kommentar Fra : Thor |
Dato : 12-05-05 05:21 |
|
Hej Peter
Mac adressen på netværkskortet er måske lidt bedre end disk volume.
Jeg fandt denne kodestump på Torry's, - den virker fint under delphi 7.
uses NB30;
function GetMACAdress: string;
var
NCB: PNCB;
Adapter: PAdapterStatus;
URetCode: PChar;
RetCode: char;
I: integer;
Lenum: PlanaEnum;
_SystemID: string;
TMPSTR: string;
begin
Result := '';
_SystemID := '';
Getmem(NCB, SizeOf(TNCB));
Fillchar(NCB^, SizeOf(TNCB), 0);
Getmem(Lenum, SizeOf(TLanaEnum));
Fillchar(Lenum^, SizeOf(TLanaEnum), 0);
Getmem(Adapter, SizeOf(TAdapterStatus));
Fillchar(Adapter^, SizeOf(TAdapterStatus), 0);
Lenum.Length := chr(0);
NCB.ncb_command := chr(NCBENUM);
NCB.ncb_buffer := Pointer(Lenum);
NCB.ncb_length := SizeOf(Lenum);
RetCode := Netbios(NCB);
i := 0;
repeat
Fillchar(NCB^, SizeOf(TNCB), 0);
Ncb.ncb_command := chr(NCBRESET);
Ncb.ncb_lana_num := lenum.lana[I];
RetCode := Netbios(Ncb);
Fillchar(NCB^, SizeOf(TNCB), 0);
Ncb.ncb_command := chr(NCBASTAT);
Ncb.ncb_lana_num := lenum.lana[I];
// Must be 16
Ncb.ncb_callname := '* ';
Ncb.ncb_buffer := Pointer(Adapter);
Ncb.ncb_length := SizeOf(TAdapterStatus);
RetCode := Netbios(Ncb);
//---- calc _systemId from mac-address[2-5] XOR mac-address[1]...
if (RetCode = chr(0)) or (RetCode = chr(6)) then
begin
_SystemId := IntToHex(Ord(Adapter.adapter_address[0]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[1]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[2]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[3]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[4]), 2) + '-' +
IntToHex(Ord(Adapter.adapter_address[5]), 2);
end;
Inc(i);
until (I >= Ord(Lenum.Length)) or (_SystemID <> '00-00-00-00-00-00');
FreeMem(NCB);
FreeMem(Adapter);
FreeMem(Lenum);
GetMacAdress := _SystemID;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
caption := getmacadress;
end;
| |
Henry (30-05-2005)
| Kommentar Fra : Henry |
Dato : 30-05-05 20:23 |
|
> Jeg har lavet et program, som jeg gerne ville beskytte mod at blive
kopieret
> fra en maskine til en anden. Dette forestiller jeg mig skulle ske gennem
en
> registrering af programmet på en hjemmeside med noget udvæksling af nogle
> koder, som er specielle for selve maskinen.
>
Hej Peter
Turbopower firmaet (RIP) lavede et udemærket komponent bibliotek som løser
dit problem, efter de gik nedenom og hjem gjorde de sourcen til open source,
du kan finde den på www.sourceforge.net søg efter turbopower, og onguard.
mvh
Henry
| |
|
|