[ Dark Oman @ 23.01.2008. 09:34 ] @
| Drustvo pomoc... Nisam bas veliki stucnjak u rad sa bazama, ali sam eto tako mic po mic uradio jednu koja je ispala bar po meni sasvim solidno...odradjuje posao :D...naucio sam da postavljam sifre bla bla bla , ali ni to mi se nije svidelo jer ima dosta programa koji mogu da razbiju obicnu access sifru..pa sam nesto pokusavao i u VB i to je uspelo, medjutim evo ovako glasi moja 2 pitanja:
1.Da li postoji neki nacin da se postavi sifra (serial number)koja ce da istekne nakon 3 meseca i da posle toga ponovo trazi novu sifru (serial number) a da pri isteku program (baze ) se ne moze koristiti?? Znaci nesto da radi npr. kao vecina programa koja nakon 6 meseci traze da im se obnovi licenca :D....
2. Da li se moze koristiti bilo koji generator kljuca za 1. pitanje ili postoji nacin da se napravi unikatan samo za bazu iz 1.pitanja?
Mozda nisam napisao bas tehnicki, ali nadam se da razumete o cemu je problem:D!Molim Vas ako bilo ko zna nesto u vezi toga bio bih mu veoma zahvalan! |
[ nidisa @ 23.01.2008. 10:31 ] @
Veliki broj razlicitih tema iz MS Access-a su vec obradjene na ovom forumu. Samo treba malo strpljenja i trazenja po i problem ce biti rijesen
Na ovo postu je objasnjen jedan nacin zastite baze koji mozes ukomponovati u svoj rad.
http://www.elitesecurity.org/t52046-1#485393
Sto se tice tvog pitanja za sifru
Citat: koja ce da istekne nakon 3 meseca
prilikom pravljenja tabele sa imenima korisnika i siframa (ako radis na ovaj nacin), dodaj jednu kolonu za automatsko ubacivanje datuma. Dalje, svaki put kad korisnik bude upisivao svoju sifru, prilikom provjere vidi da li je datum sifre stariji od 3 mjeseca:
if dDatumSifre +180 <= Now() then
Msgbox "Sifra je istekla"
docmd.quit
end if
Sretno.
[ Dark Oman @ 23.01.2008. 16:11 ] @
hvala druze pokusacu sa onim sto je u postavljenom tredu napisano...nadam se da ce proraditi..:D
ali ako bude nesto neocekivano eto mene opet:D:D:D:D
pozz
[ Dark Oman @ 30.01.2008. 20:17 ] @
:) pokusao sam ove nacine ..sasvim je ok..mada jos nisam pokusao ono sto si ti napisao:) ....ipak interesuje me postoji li jos neki nacin zastite koji se moze implementirati...neki gotov modul tako nesto?? ...npr.kao autorska zastita(ako sam se dobro izrazio)....
pozz
[ Trtko @ 31.01.2008. 08:31 ] @
Ma mozes napraviti samo trebas se dosjetiti kako.
1. Napravis svoj Instal.mde koji kreira na c:\windows\system32\tios.sys
u biti to je tekstualna datoteka u koju upises serijski broj diska. Naravno
upises serijski broj, ali svaki znak povecas za ascii(34) ili bilo koji broja
Mozes upisivat tri znaka bez veze, onda prvi znak od diska .... itd , da otezas drugima
2. instaliras program.mde , koji kad se starta provjeri dal postoji onaj tios.sys
ako ga nema Quit
3. Ako ga ima , uzme iz njega vrijednost, provjeri dal se slazu serijski brojevi diska
ako da , OK , ako ne, ili je kopirao program i tios.sys , pa se ne slazu brojevi
ili je mozda napravio format diska , tj promjenio disk
I to ti je zastita 80% , moras biti maher da bi znao dal postoji il ne postoji u windoziam tios,sys
cemu on sluzi, itd...
[ domaci_a_nas @ 11.02.2008. 06:59 ] @
Ja bih ovde dodao dve stvari: Prva je da se može odrediti fizički serijski broj HDD koji se poklapa sa fizički broj HDD koji se nalazi na nalepnici, samo to ne znači da neko sad treba da prebaci tu nalepnicu na drugi HDD da bi program radio i na drugom računaru :) Taj kod ne radi na windows 98, ali srećom mislim da svi imaju bar win xp. Taj broj je fixni i HDD se može formatirati koliko ko želi.
Ja mislim da treba upisati taj broj u registar, prilikom kreiranja same instalacije (predlažem Inno Setup za tu svrhu) a takođe i da je bolje da se upiše nekodiran broj diska i šifra programa pomoću neke funkcije izračuna u programu, nego da stoji na izvolte nekome ko bi nabasao na taj file. A postoji takođe jedna mana snimanja fajla na disk a to je da neko može tražiti fajlove po windowsu koji su otprilike istog datuma kao tvoj program i na taj način doći do tog fajla.
Sve ovo se ima smisla samo ako je korišćen user level security pošto postoji programče koje kao iz topa provaljuje običan password. Administrator se u tom slučaju uloguje preko posebnog naloga i pritiskom na neko dugme otvori prozor sa tabelama i napravi neophodne izmene. Naravno dugme se isprogramira da prikaže tabele samo ako je CurrentUser = 'Admin'
Još bih dodao (treći put menjam poruku, super je ovo 'Brza izmena') da je neophodno imati izveštaje, zvanične dokumente, na kojima se postavlja i vreme štampe, na taj način se sprečava da neko promeni sistemski datum jer onda sama ta informacija koju program daje na izveštaju ne bi bila validna. Umesto ovoga moguće je pomoću timer eventa na glavnoj formi pratiti koliko se vremenski program koristi i nakon toga onemogućiti da se program koristi.
Pozdrav svima
[ Trtko @ 11.02.2008. 07:27 ] @
1. Taj kod radi i na windowsima 98
2. Takvu zastitu sam napravio i koristio u clipperu
3. I vjeruj mi (korisnik bi i sam si napravio program kad bi znao programirat),
da malo ljudi bi skuzilo u čemu je štos
4. Cak u clipperu si mogao promijeniti datum kreiranja nekog fajla.
Znači , ako netko , kopira tvoj *.MDE i stavi na svoj stroj, neče mu raditi
sve dok Ti ne dojdeš s svojim programom koji iskreira taj fajl ( npr. Tios.sys) postavi
i tek onda program radi
[ gorancho @ 11.02.2008. 07:59 ] @
Posto ste vec razvili diskusiju moram i ja da pitam.
Ja koristim slicnu metodu samo jos upisujem i datum i vreme zadnjeg koriscenja programa. Kako mi to uvek menja datum koriscenja tog fajla (skrivenog fajla npr. Tios.sys) to se ja osecam ranjivim.
Kako kroz access/vba da neki fajl promenim a da sistemski on zadrzi datum rezimo 31-12-1999 ???
Negde ne mogu da instalima program a da korisnik bude sa administratorskim pravima vec sa ogranicenim !!!
[ domaci_a_nas @ 11.02.2008. 12:31 ] @
Zašto ne bi mogao sve podatke o korišćenju mogao da upišeš direktno u tabelu? Na sajtu http://www.hobbithouseinc.com/VB/ možeš naći kod koji ti treba za promenu vremena kreiranja fajla, koristi API funkcije. Pisan je za VB6, ali je deklaracija API funkcija identična, ako nemaš VB6 samo otvori fajlove u editoru.
Samo da odgovorim trtku, možda korisnik NE ZNA sam da provali šifru, ali ako program košta 1000 evra, što on ne bi nekome dao 300 evra da bi na osnovu već gotovog fajla u kome se nalazi serijski broj njemu generisao šifru ? Ja sam više po fazonu keep everything in the house.
Prijatno svima
[ gorancho @ 11.02.2008. 14:07 ] @
"Zastitnu tabelu" ne guram u sam Frontalni program jer obicno imam vise aplikacija na istom racunaru koje bi trebalo pojedinacno registrovati i svaki put registrovati i preregistrovati.
Pozdrav
[ Zidar @ 11.02.2008. 14:22 ] @
Moje iskustvo sa zastitom programa jeste da ni jedan program nije toliko dobar ili savrsen da moze da radi bez podrske. Dakle, kada ga kupe od vas, osudjeni su da sa vama i dlaje rade. Ako posumnjate da neovlasceno kopiraju program, jednostavno im uskratite podrsku i gotovo. A pomaze da se na reporte i forme ubaci logo firme kojoj ste prodali. Ako je sve MDE nece bas lako moci to da izmene. A i ogranicenje vremena moze da se hard kodira u neku formu ili kritican report i kad istekne to vreme, gotovo. I eto njih kod vas po support.
:-)
[ gorancho @ 11.02.2008. 14:40 ] @
„ni jedan program nije toliko dobar ili savrsen da moze da radi bez podrske”
Ovo je Ok konstatacija samo jednom prilikom sam imao relativno jednostavan programski zahtev ali su podaci bili nesto sto je relativno vredno (neki katalozi sa cenama). Nisam stigao da skremblujem podatke koji su bili u nekoj pozadinskoj aplikaciji i to sa promenjenom ekstenzijom.
Jos uvek ne mogu da prezalim izgubljenu potencijalnu zaradu.
- domaci_a_nas
u vezi "Kako kroz access/vba da neki fajl promenim a da sistemski on zadrzi datum recimo 31-12-1999 ???"
Iskreno ne uspevam da se snadjem sa vb6 pa ako imas neki demo u accesu i vba zakaci
Pozdrav
[ domaci_a_nas @ 11.02.2008. 16:44 ] @
OK, potrebno je da u svoju bazu importuješ modul ModMain iz zipa sa onog linka, koji sadrži deklaracije funkcija koje su ti potrebne, a zatim napravi proceduru otprilike ovako
Private Sub SetTime (WhFile as String)
' WhFile predstavlja putanju
' txtDate predstavlja datum koji želiš da postaviš (1999-31-12)
'open the file
'
hFile = OpenFile(txtFile.Text, FileInfoStruct, OF_READWRITE)
' if there was a problem opening the file, tell the use & leave
If hFile = HFILE_ERROR Then
MsgBox "Error opening file.", vbCritical + vbOKOnly
Exit Sub
End If
' put the date and time into a systime variable
SysTime = String_To_SysDateTime(txtDate, txtTime)
If SysTime.wYear = -1 Then
MsgBox "bad date: please reenter"
Exit Sub
ElseIf SysTime.wYear = -2 Then
MsgBox "bad time: please reenter"
Exit Sub
End If
SystemTimeToFileTime SysTime, CreateTime
LocalFileTimeToFileTime CreateTime, CreateTime
SetFileTime hFile, CreateTime, CreateTime, CreateTime
' close the file
CloseHandle hFile
End Sub
Mislim da bi ovo trebalo da radi.
[ gorancho @ 12.02.2008. 10:27 ] @
Probah al ne uspeh. Moze li jos malo pomoci !!
[ domaci_a_nas @ 12.02.2008. 12:15 ] @
Ne volim kad ljudi traže da im se baš potpuno sve uradi, al' ajde...
' POTREBAN JE TEXTBOX Text1 i Command button Command2
Option Explicit
Option Compare Database
Private Const OFS_MAXPATHNAME = 128
Private Const OF_READWRITE = &H2
Private Type OFSTRUCT
cBytes As Byte
fFixedDisk As Byte
nErrCode As Integer
Reserved1 As Integer
Reserved2 As Integer
szPathName(0 To OFS_MAXPATHNAME - 1) As Byte
End Type
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
Private Declare Function SetFileTime Lib "kernel32" _
(ByVal hFile As Long, _
lpCreationTime As FILETIME, _
lpLastAccessTime As FILETIME, _
lpLastWriteTime As FILETIME) As Long
Private Declare Function SystemTimeToFileTime Lib "kernel32" _
(lpSystemTime As SYSTEMTIME, _
lpFileTime As FILETIME) As Long
Private Declare Function OpenFile Lib "kernel32" _
(ByVal lpFileName As String, _
lpReOpenBuff As OFSTRUCT, _
ByVal wStyle As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" _
(ByVal hFile As Long) As Long
Private Sub Command2_Click()
ChangeFTime (text1)
End Sub
Private Sub ChangeFTime(fName As String)
Dim hFile As Long
Dim tmp As String
Dim OFS As OFSTRUCT
Dim SYS_TIME As SYSTEMTIME
Dim NEW_TIME As FILETIME
' OVDE UKUCAVAŠ ŽELJENI DATUM
SYS_TIME.wYear = 2007
SYS_TIME.wDay = 11
SYS_TIME.wMonth = 4
hFile = OpenFile(fName, OFS, OF_READWRITE)
Call SystemTimeToFileTime(SYS_TIME, NEW_TIME)
Call SetFileTime(hFile, NEW_TIME, NEW_TIME, NEW_TIME)
Call CloseHandle(hFile)
End Sub
[ ganjaman @ 12.02.2008. 12:48 ] @
Citat: domaci_a_nas: Ne volim kad ljudi traže da im se baš potpuno sve uradi, al' ajde...
End Sub
Nije sve, samo deo i nemoj da si sebican ako on vec nije bezobrazan.
[ gorancho @ 12.02.2008. 14:49 ] @
Pre svega HVALA!!! Uspelo je i sve je OK. samo ja sam se poveo onim
„OK, potrebno je da u svoju bazu importuješ modul ModMain iz zipa sa onog linka, koji sadrži deklaracije funkcija koje su ti potrebne, a zatim napravi proceduru otprilike ovako“
I posle toga OPET HVALA! Placam Veliko pivo bilo gde u Kragujevcu!!!
[ domaci_a_nas @ 12.02.2008. 17:51 ] @
Ganjaman, nije on bezobrazan, samo je kod koji sam pre ovog finalnog postavio bio sasvim solidna osnova za konačno rešenje, a ja da sam sebičan kod ne bih ni postavio.
Inače, kod sam danas tražio na internetu jer mi je tema bila zanimljiva, što je i on mogao da učini
Moj profesor je vrlo pametno rekao da nije dobar programer onaj koji sve zna, već onaj koji zna kako da dođe do informacija koje su mu potrebne.
PS. Ganjaman, ako si ti onaj Ganjaman koji je ranije posećivao krstaricu onda te puno pozdravlja tvoj stari drugar AceKG80
Gorancho, ako "veliko pivo" znači Jelen od 2 L dogovorićemo se za pivo vrlo lako
Pozz svima
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|