Avatar billede makman Nybegynder
09. september 2003 - 17:48 Der er 36 kommentarer og
1 løsning

Key's

Hey..
Hvordan laver man de der trial keys til ting, F.eks, Spil eller andre programmer, så de skal indtaste en række numre før de kan bruge det?
F.eks 1356-1363-1245-1579 ?
Nogen der har et svar på det? 25 point
Avatar billede thesurfer Nybegynder
09. september 2003 - 18:03 #1
jeg kender ikke så meget til algoritmer.. men her er et forslag til hvordan man kan lave en key:

xxxx-xxxx-xxxx-xxxx

de første 4 x'er kalder vi a, de næste 4 b, osv..

hvis a+b+c+d = bestemt værdi
ok
ellers
fejl

det behøver naturligvis ikke være a+b+c+d.. kunne også være a/c^2*b-d osv..

der skal bare en elle anden matematisk formel til at udregne key'en..
Avatar billede makman Nybegynder
09. september 2003 - 18:06 #2
ok.. Kunne man på en eller anden måde udregne 1000 keys der vil give, "X antal" ?
OG hvordan for du den f.eks, Til at huske man har registreret, Så man ikke altid skal indtaste keyen?
Avatar billede thesurfer Nybegynder
09. september 2003 - 18:11 #3
det med at huske..:

1) du kan oprette en fil et eller andet sted på computeren med noget data..
2) du kan bruge registreringsdatabasen og oprette en nøgle (f.eks. "Registered" med værdien "1")

når dit program så starter op, skal den bare check om registering er ok.. dvs læse indeholdet af filen, hvis den eksisterer (metode 1), elle læse nøglen i registreringsdatabasen og se om den er "1" (metode 2)
Avatar billede makman Nybegynder
09. september 2003 - 18:14 #4
har intet kendskab til registreringsdatabaser..? Kunne du forklare lidt?
Du skal nog få dine point nu.. Men vil du ikke nok hjælpe videre ?
Avatar billede makman Nybegynder
09. september 2003 - 18:14 #5
lol kan ikke give dig point fordi alle dine "svar" er kommentarer
Avatar billede thesurfer Nybegynder
09. september 2003 - 18:22 #6
svar :) LOL
Avatar billede thesurfer Nybegynder
09. september 2003 - 18:23 #7
jeg plejer at ligge et svar som det første indlæg.. så behøver jeg ikke at tænke på det mere.. men det kan jo smutte :)
Avatar billede thesurfer Nybegynder
09. september 2003 - 18:24 #8
jeg prøver lige at finde nogle links til dig om reg.db..
Avatar billede makman Nybegynder
09. september 2003 - 18:24 #9
ok hehe.. men du kan ikke forklare mig lidt mere om REGdatabaser?
Avatar billede makman Nybegynder
09. september 2003 - 18:29 #10
lol ok hehe.. Skrev dether imens du skrev ;)
Avatar billede makman Nybegynder
09. september 2003 - 18:31 #11
if a.text + b.text + c.text + d.text = "1234" then
msgbox "Login!","vbokonly","Login!"
ELler?
Avatar billede thesurfer Nybegynder
09. september 2003 - 18:32 #12
hvis du skriver "1234" opfatter den det som tekst (som i bogstaver) og ikke som et tal (som i matematik)
Avatar billede makman Nybegynder
09. september 2003 - 18:35 #13
hmm...
Avatar billede makman Nybegynder
09. september 2003 - 18:37 #14
lidt primitivt meybe, Men man kunne os bruge en usynlig scrollbar, Som hvis dens value er f.eks 1234 så kan man logge ind?
som
private_sub command1.clik()
scrollbar.value = scrollbar.value + a.value...
Prob er bare. Man kan jo ikke rigtigt kalde en textbox for value :/
Avatar billede thesurfer Nybegynder
09. september 2003 - 18:38 #15
"1234" er tekst da det står i ""
1234 er et tal da der ikke er uden ""
Avatar billede thesurfer Nybegynder
09. september 2003 - 18:42 #16
jeg mener at jeg har noget reg.db. kode liggende..

Du skal passe MEGET på med hvad du laver i registreringsdatabasen!
Hvis du ændre/sletter vigtige værdier, kan det være at du bliver nød til at geninstallere Windows..
Avatar billede makman Nybegynder
09. september 2003 - 18:43 #17
LOLMAND! Uhauhauha! - That doesnt sound nice :/
Avatar billede squashguy Nybegynder
09. september 2003 - 18:46 #18
en anden måde du kunne generere keys på, er at lade felterne "kontrollere hinanden". f.eks.:

felt3 = felt1+felt2
felt4 = 10*felt3

på denne måde behøver du ikke hardcode en værdi i programmet (dine 1234).

- dette er et tænkt eksempel, og ikke særlig svær at knække.
Avatar billede thesurfer Nybegynder
09. september 2003 - 18:47 #19
jeg tror jeg lige har fundet noget kode der virker, og samtidigt ikke er så farligt :)
jeg redigere det lige så det passer til dig..
Avatar billede makman Nybegynder
09. september 2003 - 18:50 #20
ok.. Og squashguy, Smart idé.. Men problemet vi står med når det er done er bare.. Hvordan får vi udregnet alle koderne? (altså man kan jo godt gøre det en efter en) men altså en hurtig måde, Der laver måske 1000 forskellige koder der alle passer til enten Resultatet (1234) eller det du sagde,
felt3 = felt1+felt2
felt4 = 10*felt3
Avatar billede makman Nybegynder
09. september 2003 - 19:10 #21
og thesurfer, Ok :D Jeg venter spændt ;)
Avatar billede thesurfer Nybegynder
09. september 2003 - 19:37 #22
så.. nu er jeg der snart :)
Avatar billede thesurfer Nybegynder
09. september 2003 - 20:01 #23
dammit.. der gik et eller andet galt.. arbejder stadig på..
Avatar billede thesurfer Nybegynder
09. september 2003 - 20:16 #24
hahaha.. kom lige i tanke om en indbygget funtion i vb der gør det hele MEGET lettere!

Du erstatter bare "ProgramName" med navnet på dit program..

1) indsæt 2 knapper:
* navn: cmdSave, knappen gemmer data i regdb
* navn: cmdLoad, knappen læser data fra regdb

Private Sub cmdSave_Click()
SaveSetting "ProgramName", "Registration", "Registered", "1"
End Sub

Private Sub cmdLoad_Click()
MsgBox GetSetting("ProgramName", "Registration", "Registered")
End Sub
Avatar billede makman Nybegynder
09. september 2003 - 20:20 #25
navnet på dit program...
hej.exe? eller project navnet?
Avatar billede makman Nybegynder
09. september 2003 - 20:21 #26
og skriver man,
if GetSetting("ProgramName", "Registration", "Registered") = 1..
eller?
Avatar billede makman Nybegynder
09. september 2003 - 20:38 #27
Eller forklar lige om hvad "Registration" og "registered" er?
.. Få så regner jeg med det er,
if registered.caption = 1 , Altså at den gemmer dataen til et usynligt textfelt..
Skal bare lige vide hvad det der "Registration" og "Registered" er... Formen og et Textfelt eller?
Avatar billede thesurfer Nybegynder
09. september 2003 - 20:43 #28
jeg laver lige et eksempel..
Avatar billede thesurfer Nybegynder
09. september 2003 - 21:00 #29
jeg har brugt tal og bogstaver for at bedre kunne identificere linierne, hvis du har spm..

eksempel:

1a brugeren starter programmet "makman 3D v4.9" :)
2a programmet læser i regdb for at se om programmet er registreret:

3a if GetSetting("ProgramName", "Registration", "Registered") = 1 then
3b --> programmet er registreret.. gå til 10a
3c ellers
3d --> brugeren får så en "Vil du registrere programmet?"-box med key-felterne
3e --> hvis brugere vælger at registrere (Ja), gå til 4a
3f --> hvis brugere vælger IKKE at registrere (Nej), gå til 9a
3g end if

4a brugeren indtaster key'en i felterne og klikker "OK"..
4b programmet udfører så en udregning for at se om key'en er gyldig:
4c if indastede-key = ok then
4d SaveSetting "ProgramName", "Registration", "Registered", "1"
4e ellers
4f fortæl brugeren at key'en er ugyldig
4g gå til 3d
4h end if

9a programmet er i DEMO mode
9b gå til 10a

10a brugeren er i gang med at bruge programmet
Avatar billede squashguy Nybegynder
10. september 2003 - 16:46 #30
thesurfer... der er bare én fejl ved din løsning. Du er nødt til at gemme nøglen i registry, og lave beregningen hver gang programmet starter. Det er ALT for nemt at omgå, hvis man bare skal oprette "registered=1"
Avatar billede makman Nybegynder
10. september 2003 - 17:11 #31
if GetSetting("ProgramName", "Registration", "Registered") = 1 then
1) Hvad er "Registration" (ved godt hvad det er, Men er det formen eller?"
2) Hvad er de forskellige egentlig?
"ProgramName" programnavn - "Registration" - ? "Registered" - ?
Avatar billede thesurfer Nybegynder
10. september 2003 - 17:19 #32
squashguy> du har fuldstændig ret..

jeg vil bare lige sige...:

1) det var bare et eksempel.. han behøver ikke at gemme strengen "Registered=1" i regdb.. det kunne være noget helt andet.. f.eks. "chewbacca=muhahaha"..

2) det er lige meget hvad han laver af sikkerhedsforanstaltninger, de kan brydes.. jeg tror ikke der findes et eneste program i verdnen der ikke kan brydes..
Microsoft, som er et stort software-firma, har lavet dyre produkter med key's, der i dag er brudt/cracket..
Adobe, som også er et stort software-firma, har lavet produkter der ligger i klassen 5000-20000 kr, der også er brudt/cracket..

Når man installere et hvilket som helst program, ligger den filer og nøgler i regdb.. problemet er så, at programmet ikke altid fjerner det den har lagt på computeren, hvilket i sidste ende gør computeren langsom..
Der er bl.a. lavet et program som hedder "InCTRL". Når InCTRL aktiveres, vil den holde øje med hvad der bliver oprettet/ændret/slettet af filer/nøgler.. og den vil fortælle hvilket program der gjorde det..

Hvis makman oprettede en filen "data.sys" (eller en anden) med indeholdet "registreret" eller "muhahaha", så ville InCTRL opfange det..

Hvis makman tilføjede "Registered=1", "chewbacca=muhahaha" eller noget andet, ville InCTRL opfange det..

Det eneste man så skal gøre, er at ligge "data.sys" eller teksten "Registered=1" ud på nettet.. så kan alle downloade filen, og registrere programmet uden at betale for det..

Jeg vil ikke fortælle hvordan man bryder/cracker et program, men vil bare sige:

alt kan brydes.. "What one man can do, another can undo" :)

/theSurfer.
Avatar billede thesurfer Nybegynder
10. september 2003 - 17:32 #33
makman> For at regdb skal være overskueligt, er der struktur i det.. det er ligesom Stifinder i Windows..
du har: drev > mapper > undermapper > filer

eksempel af regdb:

[Roden]
+ Mappe1
.....Mappe1_Undermappe1
.....Mappe1_Undermappe2
+ Mappe2
.....Mappe2_Undermappe1
.....Mappe2_Undermappe2
.....Mappe2_Undermappe3
...........Streng = værdi

Når du bruger SaveSetting, oprettes en mappe "ProgramName" (erstattes f.eks. med "makman 3D v4.9") med undermappen "Registration" som så har strengen "Registered" med værdien "1"..

Det sker under stien "HKEY_CURRENT_USER\Software\VB and VBA Program Settings" i regdb

opsummering:
1) "Registration" er en undermappe i regdb, som ligger under "HKEY_CURRENT_USER\Software\VB and VBA Program Settings\ProgramName"

2) "ProgramName" erstatter du med navnet på dit program.. f.eks. "makman 3D v4.9" hvis du f.eks. laver et 3D program..


med andre ord: "ProgramName", "Registration", "Registered" og "1" er værdier der sendes til den indbyggede funktion "SaveSetting", som så placere dem i regdb..

værdierne kan så aflæses med "GetSetting" funktionen.
Avatar billede squashguy Nybegynder
10. september 2003 - 17:56 #34
Du har da ret, har man internet kan man finde keys til næsten alt.

Men ved at sætte registered=1, kan alle og enhver selv "cracke" programmet. Ved at gøre det på den anden måde, kræver det at brugeren har færdigheder i reverse engineering; hvilket den almene bruger nok ikke har.
Avatar billede thesurfer Nybegynder
10. september 2003 - 18:09 #35
..det er korrekt.. men som jeg nævnte i svaret til dit indlæg, var det kun et eksempel.. "chewbacce=muhahaha" er måske ikke særligt nemt at gennemskue, men man finder sikkert ud af det på et eller andet tidspunkt.. man kan jo gemme hvad som helst i regdb.. også i filer..

man kan ikke lave et system som fungerer samtidigt med at det ikke kan brydes.. man kan kun lave systemet svært at bryde..
Avatar billede thesurfer Nybegynder
10. september 2003 - 18:14 #36
hmm..teoretisk set skal systemet være vågent (engelsk: aware).. altså, som om der står en sikkerhedsvagt lige ved siden af brugeren og følger med i hvad brugeren laver.. det ville være et meget svært system at bryde..
med mindre vagten er korrupt og kan bestikkes :)
Avatar billede squashguy Nybegynder
10. september 2003 - 18:49 #37
En anden ting er, at mange newbies faktisk springer VB-applikationer over, når der skal finde keys og andet sjovt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester