|
[ fusion3 @ 24.10.2006. 16:20 ] @
| Kako da Instalacione fajlove, koje korsiti moja aplikacija (baza, .exe, .bpl i drugi fajlovi) instaliram na racunaru na kojem zelim da se koriste, zastitim tako da, kada se prekopiraju na drugom racunaru i kasnije pokrenu da se program ne izvrsi. Na primer: Pokrenete setup Winamp.exe (ne znam sto bas izabrah Winamp) i instalirate ga u C:\Program Files\Winamp i sad ubacite USB Flash i sve instalirane fajlove kopirate na USB Flash. Sad te fajlove prebacite na nekom drugom racunaru i hocete da vam Winamp radi. Ja mislim da nece da radi i ne treba da radi. E problem kod mene je sto kada ja moje fajlove kopiram na drugom racunaru i tamo ih pokrenem sve radi normalno - bez bilo kakvog setup-a. Da li tome sluze .reg fajlovi koji se pakuju dok pravite setup vase aplikacije? Ako ne sluze tome cemu onda sluze? Ili je nesto drugo?
Hvala i pozdrav svima. |
[ Bojan Kopanja @ 24.10.2006. 17:23 ] @
Jeste, jedno od resenja ti je koriscenje registry-a za proveru da li program moze da radi na tom racunaru, a po meni bolje i jednostavnije resenje ti je koriscenje gotovih resenja kao sto su recimo AVLock ( ima Lite verzija koja je free ) koja ce ti za prosecnog korisnika sasvim zadovoljavajuce zastititi program.
[ fusion3 @ 24.10.2006. 19:27 ] @
Citat: Strog: Jeste, jedno od resenja ti je koriscenje registry-a za proveru da li program moze da radi na tom racunaru
Ja bih te zamolio da mi malo bolje objasnis ovo gore i uopste za sta sluze .reg fajlovi i da li .reg fajl moram da napravim u Delphiju kada otvorim moj projekat ili nezavisno od mog projekta pa da ga onda koristim.
Hvala i pozdrav.
[ aleksandarpopov @ 24.10.2006. 21:00 ] @
Misli na registry bazu samog windowsa, ne na .reg fajlove. U registry-u mozes da cuvas podatke o koje tvoj program koristi, npr. velicinu i poslednji polozaj forme, boju za formu koju je korisnik odabrao itd... Najjednostavnije ti je resenje da uzmes neku gotovu komponentu za to sto ti treba, kao sto ti je Strog rekao.
[ Nemanja Avramović @ 24.10.2006. 21:14 ] @
Delphi ima podršku za rad sa registry bazom, ne trebaju ti .reg fajlovi. Evo ti ukratko opis rešenja tvog problema:
1) prilikom instalacije upiši nešto u registry (svaki ozbiljniji program za pravljenje instalacija može da piše u registry)
2) prilikom pokretanja programa proveri da li to što je instalacija upisala postoji ili ne: ako postoji - pokreni program, ako ne postoji - ne pokreći program
Piece of cake 
[ Bojan Kopanja @ 25.10.2006. 08:19 ] @
Citat: aleksandarpopov: Misli na registry bazu samog windowsa, ne na .reg fajlove. U registry-u mozes da cuvas podatke o koje tvoj program koristi, npr. velicinu i poslednji polozaj forme, boju za formu koju je korisnik odabrao itd... Najjednostavnije ti je resenje da uzmes neku gotovu komponentu za to sto ti treba, kao sto ti je Strog rekao.
Upravo sam na to mislio  .
[ Vladica Savić @ 25.10.2006. 11:20 ] @
I ja sam se slazem s koriscenjem registar baze za tvoj problem, mada za neku bolju zastitu potrazi neke dodatne komponente...
PozZz
[ obucina @ 26.10.2006. 00:07 ] @
mxProtector, takodje solidan prvi stepen zastite.
[ fusion3 @ 26.10.2006. 00:46 ] @
E sad samo jos nesto: znaci koristicu InstallShield da upisem nesto u Registry. Kako sad da proverim to nesto sto je upisano prilikom instalacije, hocu li ga proveravati tako sto cu napisati kod negde u mojoj aplikaciji (gde, na kom mestu) ili za to postoji mehanizam u InstallShieldu koji nekako to realizuje.
Hvala svima!
[ Bojan Kopanja @ 26.10.2006. 08:38 ] @
Znas kako... Ja ti stvarno predlazem da za pocetak izaberes nesto jednostavnije i zaboravis na editovanje registry-a iz InstalShield-a. Poptupuno sam zaborabio na mxProtector komponentu koja ce ti bez ikakvih problema dati bas to sto tebi treba - rad na samo toj masini na kojoj si instalirao program, tako da stvarno jednostavnije resenje ne mozes imati  .
Evo ti sajt za tu komponentu, pa instaliraj, pogledaj jako dobro uradjen help i uzivaj  : www.maxcomponents.net
[ Srdjan_exe @ 26.10.2006. 20:09 ] @
U vezi sa ovim, kako da iscitam broj procesora racunara (ili hard diska, recimo),
najjednostavnije?
Jel ima neka jednostavna komanda za to (i nesto sto bi trebalo da ide u "uses", ShellApi or something...),
ili se mora pisati neka komplikovanija procedura?
[ Bojan Kopanja @ 26.10.2006. 22:41 ] @
Potrazi po forumu, ima negde okacena komponenta koja cita serial za HDD.
[ Srdjan_exe @ 05.11.2006. 00:47 ] @
E, nasao sam je, ustvari nasao sam vise, i jedna radi OK a ova druga samo cita
serijski particije sto nije nista...
Uglavnom ova sto radi, radi odlicno....
[ Vladica Savić @ 06.11.2006. 06:47 ] @
I ja sam naleteo na to pre...
Code: function GetHardDiskSerial(const DriveLetter: Char): string;
var
NotUsed: DWORD;
VolumeFlags: DWORD;
VolumeInfo: array[0..MAX_PATH] of Char;
VolumeSerialNumber: DWORD;
begin
GetVolumeInformation(PChar(DriveLetter + ':\'),
nil, SizeOf(VolumeInfo), @VolumeSerialNumber, NotUsed,
VolumeFlags, nil, 0);
Result := Format('Label = %s VolSer = %8.8X',
[VolumeInfo, VolumeSerialNumber])
end;
//I za poziv...
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(GetHardDiskSerial('c'));
end;
Mada i dalje smatram da bi ti registi sasvim dobro odradili posao za problem koji si na pocetku teme naveo...
PozZz Vlada 
[ fusion3 @ 07.11.2006. 22:42 ] @
Da, da registry baza radi to sto meni treba ali ljudi mi pisu o citanju serijskog broja hard diska, neki cak preporucuju i neki softver kao zastitu. Nije logicno da sad Winamp mora da koristi neki program kao zastitu od pokretanja kada se njegovi instalacioni fajlovi prebace na drugom kompjuteru? Kad se to malo pogleda sve je ok ali nije to ono sto meni treba. Nemanja Avramovic je teoretski tu dao pravi odgovor. Potreban mi je kod (konkretan) koji ce tu teoriju da upotpuni.
[ Bojan Kopanja @ 08.11.2006. 08:42 ] @
Pa uzmi covece AVLock Lite i nece te boleti glava! To ti i upisuje podatke u registry i svaki put cita iz registry-a, a ti o tome ne moras da znas nista! Samo podesis komponentu i sve radi aotumatski...
Ako krenes sam da radis ne verujem da ce to biti bas tako delotvorno kao ova komponenta...
Ako bas hoces to sam da odradis, Nemanja ti je rekao princip kako to treba odraditi, a ja ti evo dajem likn kao polaznu tacku za rad sa registry-em pa ti onda uzivaj  ...
http://delphi.about.com/od/windowsshellapi/a/tregistry.htm
[ Vladica Savić @ 08.11.2006. 09:22 ] @
A isto tako imas i sve to poprilicno dobro dokumentovano u Delphi-jevom help-u 
[ Srdjan_exe @ 08.11.2006. 17:08 ] @
Ova sto stvaro cita serijski broj HDD-a, tu je negde na
forumu, neki Zip od oko 40-tak KB, i radi odlicno.
Ustvari cita serijski, firmver, i oznaku tipa diska.
(tri stringa)
Ja sam sva ta tri spojio u jedan string, izbacio prazne
karaktere, zatim izbrljao
taj novi string po nekom svom algoritmu koji posle po reverse
algoritmu mogu da vratim.... i onda taj string koristim
kao referencu za poredjenje pri startovanju svoje aplikacije.
Mada cuo sam da se to sa
If string1=string2 then startuj program else ne-startuj
relativno lako provali, znaci da se ne koristi IF naredba
ali ne vidim drugi nacin.... mislim ne znam drugi nacin....
[ Vladica Savić @ 08.11.2006. 19:19 ] @
Znas kako, sve zavisi koja mu je ciljna grupa korisnika...
Uopsteno, ako hoces da radis tako nesto sa serijskim brojem HDD-a to i nije tako veliki problem za ciljnu grupu sa malo korisnika jer mozes malo i korisnika i sebe da "smaras" dok registruje tvoj program na svom racunaru pa makar i da rucno generises neki sigurnostni kod na osnovu njegovog serijskog broja HDD-a (za to moze da ti zavrsi i serijski broj i samo jedne particije) za svakog korisnika pojedinacno i da im tako saljes. Ali ako imas veliki broj korisnika, trebao bi ti neki podprogram koji bi tebi trebao da salje informacije o HDD-u korisnika koji su ti potrebni, pa da preko nekog "key generatora" vracas podatke korisniku koji su mu potrebni za aktivaciju programa, po mogucstvu kodirane kako ne bi mogao da ukapira nikakvu zakonitost po kojoj bi se generisali. I na taj nacin bi ti mogao da ogranicis rad tog programa samo na tom kompjuteru...
Isti/slican je princip rada i sa zastitom preko registra, samo sto ovde (preko registra) donekle olaksavas sebi posao po meni (mada je to subjektivna stvar).
E sad, rekao si da lako moze da se probije nacin provere verodostojnosti podataka preko sistema IF --- THEN, ali ako se koristi kodiranje podataka kako sam naveo i ne moze bas tako lako ako taj neko planira da samo kopira fajlove (kako je jos na pocetku teme i navedeno, (a ako se ne koristi kodiranje razbijanje zastite je zaista veoma lako i slazem se stim)). A ako neko odluci da pravi crack za taj program, uradi reverse exe fajla, i malo eksperimentise sa assemblerom, i naredbama uslovnog skoka u njemu (jmp, je, jne, jz, jge, jle, i sl.), i sve sto ide uz to, onda sve to pada u vodu..
Naravno, kao sto je vise puta pominjano do sada u slicnim temama, prava (nesavladiva) zastita ne postoji...
[ Nemanja Avramović @ 08.11.2006. 20:53 ] @
Ama ljudi, čovek hoće samo da program ne radi ako nije instaliran preko njegovog instalera 
[ Bojan Kopanja @ 09.11.2006. 10:46 ] @
Pa jeste, ali je poenta prethodnih postova bila da se ukaze na to da je tu zastitu od prebacivanja programa na drugi racunar jako lako zaobici, tako da bi ipak valjalo to malo "zaciniti" nekim komponentama ako sam programer nema dovoljno iskustva, cisto da ne bih mogao da jedno jg prebacim u jle i da mi program radi gde god ga prenesem :).
[ Vladica Savić @ 09.11.2006. 12:04 ] @
To i jeste poenta, da se ukaze na sve. On nije rekao na samom pocetku kome bi program bio namenjen, tj. koliko bi bilo znanje nekog od korisnika, i da li bi mogao da zaobidje tu "laku" zastitu, i da li bi imao uopste potrebe za tako necim (tj. da pokusa da zaobidje i ovu malo tezu, odnostno da li bi mu se isplatilo)...
PozZz
[ fusion3 @ 13.11.2006. 01:01 ] @
Citat: Nemanja Avramović: Ama ljudi, čovek hoće samo da program ne radi ako nije instaliran preko njegovog instalera :)
Dakle, ljudi, to hocu. A ti si Nemanja tu sa tim odgovorom. Kad bi mogao da mi ovde postavis onaj kod i malo to interpretiras...
[ Bojan Kopanja @ 13.11.2006. 09:03 ] @
Pa Nemanja ti je rekao u principu kako to ide, a ja sam ostavio link ka primerima za rad sa registry-em... Prelistaj to malo!
[ Vladica Savić @ 13.11.2006. 14:00 ] @
Za registre ima i sve to dobro dokumentovano u help-u... 
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|