[ stevo_veljanovski @ 28.05.2007. 14:46 ] @
citanje broj procesora ili nekog dugog hardvera. Potreban mi e za zastitu aplikacija. |
[ stevo_veljanovski @ 28.05.2007. 14:46 ] @
[ X Files @ 28.05.2007. 15:13 ] @
1. Citanje broja procesora:
Mnogi procesori ili nemaju taj broj ili se citanje moze onemoguciti iz BIOS-a... 2. Citanje hardverskog broja HD: Cesto ne radi za RAID boot diskove... (ipak, ovo je moj izbor) 3. MAC adrese (mrezna karica): Cesti ima vise ovih adresa, kod novijih kartica je moguce promeniti ovaj broj softverski (?!) 4. Volume ID particije: Menja se 'dok trepnes'... 5. Čitanje broja BIOS-a. Problem sa starijim sistemima, privilegijama, standardima za ovaj broj... 6. ... ostali predlozi ? Prema tome, ne postoji jedinstveno a dobro resenje... Obicno su najbolja kompozitna resenja... Ja idem ovim redosledom: ili 2, ili 3, ili 4+jos nesto u kombinaciji sa 4. E sad, sta si odlucio... ? postoji dosta koda, na primer za HD je bilo i ovde na forumu... [ Nemanja Avramović @ 28.05.2007. 21:57 ] @
Pogledaj ovo:
http://delphi.about.com/od/windowsshellapi/a/volumeserial.htm Takođe, pogledaj fajl uz poruku. [ Miloš Baić @ 29.05.2007. 15:00 ] @
mxProtector - za zaštitu. Mislim da ima na Torry -ju.
ID procesora, probaj sa ovom funkcijom: Code: ... function cpuid: dword; const ID_BIT = $200000; // EFLAGS ID bit type TCPUID = array[1..4] of Longint; var CPUID: TCPUID; I: integer; function IsCPUID_Available: Boolean; register; asm PUSHFD {direct access to flags no possible, only via stack} POP EAX {flags to EAX} MOV EDX,EAX {save current flags} XOR EAX,ID_BIT {not ID bit} PUSH EAX {onto stack} POPFD {from stack to flags, with not ID bit} PUSHFD {back to stack} POP EAX {get back to EAX} XOR EAX,EDX {check if ID bit affected} JZ @exit {no, CPUID not availavle} MOV AL,True {Result=True} @exit: end; function GetCPUID: TCPUID; assembler; register; asm PUSH EBX {Save affected register} PUSH EDI MOV EDI,EAX {@Resukt} MOV EAX,1 DW $A20F {CPUID Command} STOSD {CPUID[1]} MOV EAX,EBX STOSD {CPUID[2]} MOV EAX,ECX STOSD {CPUID[3]} MOV EAX,EDX STOSD {CPUID[4]} POP EDI {Restore registers} POP EBX end; begin for I := Low(CPUID) to High(CPUID) do CPUID[I] := -1; if IsCPUID_Available then CPUID := GetCPUID; Result := 10000 * CPUID[1] + CPUID[4]; end; ... [ Nemanja Avramović @ 29.05.2007. 15:25 ] @
mxProtector nije besplatan. AFAIK, verzija za D6 jeste besplatna, ostale nisu.
Evo još jedne komponentice za pravljenje shareware programa. Nažalost, nemam nikakvu dokumentaciju ![]() [ Nemanja_666 @ 29.05.2007. 19:41 ] @
Prvo ako vec praviti zastitu za aplikaciju nije dovoljna samo koponenta da vam to obavi. mxProtector je dobra(Koliko se ja sjecam besplatno, ali moze biti svasta), ali u uz to potrebno je malo i aplikaciju dizajnirati kako treba. Malo savjeta:
Najvaznije procedure za provjeru validnosti aplikacije ne nazivati tako da se po imenu poznaju. Te procedure nikad odvajati od sveka neko najbolje zajedno kod za provjeru strpati u neku vaznu proceduru za vasu aplikaciju tako ako hacker iskljuci tu proceduru aplikacija otkaze. Nestavljati u aplikaciju stringove tipa ("Please registre!", "You enter wrong key", ....) jer se po tome lako mogu naci dijelovi koda gdje se zastita nalazi i jednostavno preskociti. U program nestavljati proceduru koja generise kljuc. Lako se ta procedura moze iskoristiti za kreiranje kluceva. Kad se pravi Trial verzija, nemojte da se zastita svodo na iskljuceno dugme ili tako nesto jer to je bas lako ukljuciti, naj bolje da trial verzija uopste nije kompletna verzija programa ... Ja obicno za zastitu koristim vise procedura. Koristiti Registry, ADS(Kod ntfs particija) itd... [ stevo_veljanovski @ 01.06.2007. 14:54 ] @
Hvala na sve informacije i savete. Sve je OK, medjutim izgleda nema 100% zastite.
[ Nemanja Avramović @ 01.06.2007. 17:24 ] @
Nije "izgleda" nego sigurno nema 100% zaštite. Sve što čovek napravi, čovek može i da razbije. Nažalost, tako je
![]() Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|