|
[ rgdrajko @ 23.09.2007. 12:57 ] @
| Evo kompletan program za zastitu aplikacije od kopiranja, uradjen preko XOR komande koja sifrira serijski broj diska sa nekim slovima npr . "rgdrajko". Ovo je sastavni deo programa "Autotestovi za polaganje vozackog ispita" ciji sam deo koda dao u ovom forumu
Evo dela koda iz prikljucenog zip fajla:
Code:
Public Sub SifriranjeSerijskogBrojaCD()
Dim sastserijskibrojCDdiskaod10cifara As String
Dim sifraod10cifara As String
Dim rezultat As Integer
Dim rezultatstring As String
Dim sifriraniseriskibrojCDdiskaodpreko20cifara As String
On Error GoTo greska
'slovoCD = Left(App.Path, 1)
slovoCD = Left(txtDisk.Text, 1)
decimalniserijskibrojCDdiska = GetSerialNumber(slovoCD + ":")
lblDecSerijskiBrojDiska.Caption = decimalniserijskibrojCDdiska
heksadecimalniserijskibrojCDdiska = Hex(decimalniserijskibrojCDdiska)
lblHexSerijskiBrojDiska.Caption = heksadecimalniserijskibrojCDdiska
sastserijskibrojCDdiskaod10cifara = heksadecimalniserijskibrojCDdiska & Left(decimalniserijskibrojCDdiska, 2)
lblsastserijskibrojCDdiskaod10cifara.Caption = sastserijskibrojCDdiskaod10cifara
sifraod10cifara = Chr(vbKeyR) & Chr(vbKeyG) & Chr(vbKeyD) & Chr(vbKeyR) & Chr(vbKeyA) & Chr(vbKeyJ) & Chr(vbKeyK) & Chr(vbKeyO) & Chr(vbKeyG) & Chr(vbKeyO)
lblSifraod10znakova.Caption = sifraod10cifara
'Sifriranje seriskog broja diska sa sifraod10cifara
sifriraniseriskibrojCDdiskaodpreko20cifara = ""
For n = 1 To 10
rezultat = Asc(Mid(sastserijskibrojCDdiskaod10cifara, n, 1)) Xor Asc(Mid(sifraod10cifara, n, 1))
rezultatstring = Hex(rezultat)
If Len(rezultatstring) < 2 Then
rezultatstring = "0" & Hex(rezultat)
End If
sifriraniseriskibrojCDdiskaodpreko20cifara = sifriraniseriskibrojCDdiskaodpreko20cifara & rezultat
Next n
lblsifriraniseriskibrojCDdiskaodpreko20cifara.Capt ion = sifriraniseriskibrojCDdiskaodpreko20cifara
Text1.Text = Mid(sifriraniseriskibrojCDdiskaodpreko20cifara, 1, 7)
Text2.Text = Mid(sifriraniseriskibrojCDdiskaodpreko20cifara, 8, 7)
Text3.Text = Mid(sifriraniseriskibrojCDdiskaodpreko20cifara, 15, 7)
Text4.Text = Mid(sifriraniseriskibrojCDdiskaodpreko20cifara, 22)
Exit Sub
greska:
lblDecSerijskiBrojDiska.Caption = ""
lblHexSerijskiBrojDiska.Caption = ""
lblsastserijskibrojCDdiskaod10cifara.Caption = ""
lblsifriraniseriskibrojCDdiskaodpreko20cifara.Capt ion = ""
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Exit Sub
End Sub
[Ovu poruku je menjao Aleksandar Ružičić dana 23.09.2007. u 18:58 GMT+1] |
[ X Files @ 23.09.2007. 13:48 ] @
Iako svakako služe svrsi, zaštite zasnovane na na GetVolumeInformation() su jako lake za razbijanje, a ponekad su i nepraktične.
1) Svaki FORMAT particije (radi reinstaliranja Windowsa, npr) uslovljava i promenu broja particije i tada program više ne radi.
2) Usaglašavanje oznake particije sa oznakom na računaru koji ima validan licencni ključ uslovljava da program radi.
Bolje zaštite se sprovode:
- čitanjem hardverskog broja HD-a
- čitanjem broja mrežne kartice
- čitanjem broja BIOS-a
- čitanjem broja procesora
[ rgdrajko @ 23.09.2007. 14:32 ] @
Citat: X Files: Iako svakako služe svrsi, zaštite zasnovane na na GetVolumeInformation() su jako lake za razbijanje, a ponekad su i nepraktične.
1) Svaki FORMAT particije (radi reinstaliranja Windowsa, npr) uslovljava i promenu broja particije i tada program više ne radi.
2) Usaglašavanje oznake particije sa oznakom na računaru koji ima validan licencni ključ uslovljava da program radi.
Bolje zaštite se sprovode:
- čitanjem hardverskog broja HD-a
- čitanjem broja mrežne kartice
- čitanjem broja BIOS-a
- čitanjem broja procesora
Pa sve ja to znam, ali to sto si ti naveo mnogo sputava kupca programa i uvek zahteva javljanje pri svakoj novoj instalaciji programa, sto je cesto zamorno, zar ne?
Ovo je primer program koji sam uradio pre 10-ak godina. A ako cemo iskreno najbolja zastita se postize kada se uradi program za zastitu slicno programu za virus, kao sto je to uradjeno kod mnogih profesionalnih programa. Pozdrav, Rajko
[ Oblivion89 @ 23.09.2007. 17:16 ] @
Bolje zaštite se sprovode:
- čitanjem hardverskog broja HD-a
- čitanjem broja mrežne kartice
- čitanjem broja BIOS-a
- čitanjem broja procesora
Dali mozes da postavis neki kod koi iskoriscava ovaj vid yastite???
[ Eurora3D Team @ 24.09.2007. 23:58 ] @
Pogledaj ovaj kod http://www.elitesecurity.org/t257173-0#1586130
Iscitava nesto od ovog sto si napisao.
Inace , moje misljenje , na zastitu ne treba obracati toliko paznje (osim ako nemas neku ekstra dobru stvar ili zastita mora da bude dobra iz nekih drugih razloga).
Vise paznje treba posvetiti tome da se program uopste koristi & prodaje 
A kad je nesto dobro to se pre ili kasnije iskrekuje...
Pozdrav
[Ovu poruku je menjao Eurora3D Team dana 25.09.2007. u 12:28 GMT+1]
[ Milan89SD @ 25.09.2007. 16:31 ] @
Ma pitam onako, interesujeme. Inace da neko nezna slucajno kako ide kod za Stand by? Ja sam to imao negde nego ne znam gdemije. A hitno mi treba......
[ rgdrajko @ 27.09.2007. 21:33 ] @
evo na adresi: http://www.visualbasic.happyco...ndows_and_Controls/code46.html
Code: Turning the Computer Screen-Monitor on and off
To switch a monitor on/off or to standby, use the following code. Note, this may
not work on some NT machines.
Private Const SC_MONITORPOWER = &HF170&
Private Const SC_SCREENSAVE = &HF140&
Private Const WM_SYSCOMMAND = &H112
Private Declare Function FindWindowA Lib "user32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
'Purpose : Switches the monitor on or off
'Inputs : bPowerOn If True, turns the monitor on
' else turns to monitor off
' [lHwnd] VB: The form handle OR
' [sFormCaption] VBA: The caption of the form calling the
' routine, can be Me.Caption or Application.Caption
Sub MonitorPower(bPowerOn As Boolean, Optional lHwnd As Long, Optional sFormCaption As String)
Dim lState As Long
If lHwnd = 0 Then
lHwnd = FindWindowA(vbNullString, sFormCaption)
End If
If bPowerOn Then
lState = -1
Else
lState = 2
End If
Call SendMessage(lHwnd, WM_SYSCOMMAND, SC_MONITORPOWER, lState)
End Sub
'Purpose : Changes the monitor standby mode
'Inputs : bStandBy If True, sets the monitor to Stand by
' else turns the Stand by off
' [lHwnd] VB: The form handle OR
' [sFormCaption] VBA: The caption of the form calling the
' routine, can be Me.Caption or Application.Caption
Sub MonitorStandby(bStandBy As Boolean, Optional lHwnd As Long, Optional sFormCaption As String)
Dim lState As Long
If lHwnd = 0 Then
lHwnd = FindWindowA(vbNullString, sFormCaption)
End If
If bStandBy Then
lState = 1
Else
lState = -1
End If
Call SendMessage(lHwnd, WM_SYSCOMMAND, SC_MONITORPOWER, lState)
End Sub
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|