Avatar billede jgthb Nybegynder
22. august 2006 - 00:47 Der er 28 kommentarer og
1 løsning

registrering program shareware

Hej

Jeg har et program, som ikke skal kunne bruges, før det er registreret i registreringsdatabasen. Lige nu fungerer det blot ved, at første gang det bruges, vises en kode, og der skal så indtastes en anden kode hørende dertil. Denne kode beregnes via en formel, der ligner denne " kode1*7 + kode1[2]*17 - kode1[6]*kode1[3]". Den første kode er et tilfældigt tal mellem 100.000 og 999.999. Men er det let at bryde koden?

Der ud over vil der også blive lavet en ny kode, hvis man skal registrere igen. Er det muligt at lade kode1 være et tal fra computeren, som altid er det samme, og ikke et tilfældigt tal.

Så alt i alt: Hvordan laver jeg et bedre registreringssystem. Det er meningen folk skal have registreringsnøglen fra mig. Og da jeg godt vil have kode1 skal være et tal fra computeren, betyder det, at man køber tilladelse til at bruge programmet på 1 computer.
Avatar billede stone Forsker
22. august 2006 - 09:09 #1
Internettet er fuld af hack hvor selv store software firmaer får hacked deres software så jeg tror ikke der findes en 100% sikker måde at sikre sit software - og dog....

den mest sikre måde i dag er en usb dongle som skal være fysisk til stede for at bruge et given program.

Jeg bruger selv et component "registdays" registtime"

Registdays laver en fake-gui i databasen den skal selfølgelig være så anonym som muligt - desuden har den et regnummer og et password. Componentet sikre også at tiden på pc'en ikke kan stilles tilbage.

Registtime har et regnummer som genereres når componentetet sættes på formen, her kan man vælge hvor mange gange programmet kan åbnes.

Forfatter af programmet:

Component Name: TRegistTimes
        Author: Mats Asplund
      Creation: 2000-08-19
      Version: 1.0
  Description: A registration component.
        Credit:
        E-mail: mats.asplund@telia.com
          Site: http://go.to/masdp
  Legal issues: Copyright (C) 2000 by Mats Asplund

componentet er freeware og kan bruges comercielt.

Hvis du vil kigge nærmere på det kan jeg sende componentet til dig.
Avatar billede stone Forsker
22. august 2006 - 09:28 #2
Den bedste måde og sikre er at lave begrænsninger i programmet, og ikke levere et fuldt program til evaluation. Hvis så brugeren ønsker at betale for programmet sendes et link til det registrerede program. Begrænsning kunne være en meget synig reklame i programmet osv..
Avatar billede jgthb Nybegynder
22. august 2006 - 14:04 #3
Men skal man så registrere programmet igen med en ny nøgle, hvis man reinstallerer sin computer? Jeg vil nemlig gerne have, at folk køber adgang til programmet på deres computer for altid og ikke bare for en enkelt installation.
Avatar billede stone Forsker
22. august 2006 - 15:01 #4
ja programmet skal registreres igen, hvis man skifter computer af den ene eller anden grund. Da selve registreringen går via regedit. Men folk har jo nøglen når de køber dit software. Sådan er det jo med al software.

Registays componentet går ned og tjekker i regedit og finder den at Registdays.registred := true så kan folk bruge softwareen ubegrænses
Avatar billede a_nor Nybegynder
22. august 2006 - 17:46 #5
> jgthb : Du har altså ikke noget imod at folk der har købt dit program kan installere det på alle de computere de har lyst til ?
Avatar billede stone Forsker
22. august 2006 - 18:32 #6
a_nor: jgthb har i sit spørgsmål skrevet at bruger betaler for programmet på 1 pc.

du skal definere licens rettighederne i en readme fil f.eks med ordlyden:

BRUGERBETINGELSER
Ved køb af dette program tildeles køber brugerlicens til anvendelse af programmet
på en enkelt PC, medmindre der foreligger aftale om flerbrugerlicens.
Avatar billede jgthb Nybegynder
22. august 2006 - 19:53 #7
det er ikke meningen, at nøglen skal virke på en ny computer. koden skal jo nemlig være et konstant tal taget fra den enkelte computer. Jeg ved bare ikke lige, hvilke tal der kan bruges til det. har i nogen forslag?

Altså det skal foregå således: programmet startes, og et tal fra computeren vises, og en kode laves også ud fra det tal. Jeg giver så personen nøglen, når personen har fortalt mig tallet, og de har nu nøglen til programmet på netop denne computer. så hvis de reinstallerer kan de bruge den samme nøgle, men nøglen virker naturligvis ikke på andre computere
Avatar billede jgthb Nybegynder
22. august 2006 - 19:57 #8
stone, du skriver i øvrigt noget om brugerlicens, hvilket får mig til at tænke på kopirettigheder (såkaldt copyright). hvordan fungerer det? skal jeg bare skrive "kopirettigheder tilhører Jonathan..." eller hvad?
Avatar billede stone Forsker
22. august 2006 - 20:40 #9
her er den fulde tekst jeg bruger i mine programmer under licens txt ved installation og som også medfølger programmet. Iøvrigt er der nogle regler som sælger skal forholde sig til ved salg af sit software på nettet. Men dem kan du læse på forbrugerstyrelsen's hjemmeside.

--------------------------------------------------------
LICENSBETINGELSER

Læs venligst nedenstående før installationen fortsættes!

Installation af dette program indebærer forståelse og accept af nedenstående
juridiske information og brugerbetingelser.

JURIDISK INFORMATION
"firmanavn" ejer dette program, som er beskyttet gennem ophavsretten
gennem danske og internationale love og bestemmelser. Programmet er også
beskyttet af markedsføringsloven. Uautoriseret brug, kopiering eller distribuering
af programmet eller dele heraf, indhold såvel som design, vil medføre sagsanlæg
og krav om erstatning.

BRUGERBETINGELSER
Ved køb af dette program tildeles køber brugerlicens til anvendelse af programmet
på en enkelt PC, medmindre der foreligger aftale om flerbrugerlicens.
Brugen af dette program sker i enhver henseende på brugerens eget ansvar og
"firmanavn" fraskriver sig ethvert erstatningskrav som følge af brug af dette
program, herunder skade på programmel og udstyr, som følge af evt. virusinfektion.

Med venlig hilsen

dit navn

http://www.dinweb.dk
E-mail: din@email.dk

2000 - 2006
--------------------------------------------------------------------
Avatar billede stone Forsker
22. august 2006 - 20:54 #10
den måde du vil generer din kode på bruger bla. swishzone i deres programmer, men den er åbenbart ikke særlig sikker for de havde lige udsendt deres software da man kunne finde hack til programmet.

Så hvis du sigter mod en stor målgruppe udover danmark så skal du sikre dit program optimalt. Men der findes ikke en sikker måde at gøre det på uden at bruge en dongle.
Avatar billede stone Forsker
22. august 2006 - 21:02 #11
lige et ps.....

den er ikke hel vandtæt din metode da brugeren bare kan videregive programmet til 3'mand med den nøgle.
Avatar billede jgthb Nybegynder
22. august 2006 - 21:12 #12
kun hvis de ved, hvor i registreringsdatabasen de skal lede. Det fungerer sådan, at når programmet registreres, laves en nøgle (eller hvad det nu hedder) i registreringsdatabasen. I nøglen står der egentlig ikke noget, men programmet kan ikke køre, hvis den ikke findes. Og hvis man bare kopierer programmet til en anden computer, får de jo ikke dataen med fra registreringsdatabasen.

Har du eller andre et forslag til en værdi, som er specifik for hver computer, og derfor kan bruges til at lave en kode? og kan man godt implementere det i det komponent, du foreslår.
Avatar billede jgthb Nybegynder
22. august 2006 - 21:14 #13
hvordan hacker folk egentlig et program. jeg ved, der findes sådan nogle nøglegeneratorer, så de må være lavet ved, at hackeren har fundet den benyttede formel. Men hvordan gør de det? bruger de bestemte programmer eller hvad?
Avatar billede stone Forsker
22. august 2006 - 22:33 #14
Ok det er en smart måde at gøre det på men her kan man bruge software som overvåger regedit og sker der ændringer i regedit bliver den ændring vist i programmet med sti ned til nøglen og så er det bare at overfører den til den nye pc.

Nøglegeneratorer er simpel at lave når man har selve formlen i en kryptering. Cracker bruger software som går efter en speciel struktur i programmet ting som måske er atypiske og som en god programmør(cracker) kan se.

For at minimere brugen af en generator i ens program kan kan lave en løbende opdate hvor den tidligere generator ikke kan brugs da den går efter checksum af filens størrelse før den crackes - er filens størrelse ændret virker generatoren ikke.
Avatar billede stone Forsker
22. august 2006 - 22:43 #15
jeg har fundet det her fra "delphidaner"

Hvis jeg skulle lave et shareware-program, vil jeg for det meste foretrække at lave en ekstern, krypteret fil, hvor \"nøglen\" ligger i. Registreringsdatabasen er et af de første steder snydere kigger, og kun de færreste \"har mod\" nok til at rode med et programs egne datafiler, da de ikke ved hvad filerne bruges til.

Hvis det er et program, som skal bruges sammen med Internettet, er online godkendelse også en mulighed, men det tager jeg lidt afstand fra, dels fordi det er temmelig krævende (man skal have en server + det løse), og slutbrugere vil for det meste (med god grund) være utrygge ved at et program skal godkendes over Internettet, da de ikke ved, hvilke oplysninger den sender. Men man skal for alt i verden ikke bruge denne metode, hvis programmet ikke i forvejen er direkte afhængig af Internettet. Det er \"kun\" halvdelen af Danmarks husstande, der er på Internettet, og på det punkt er Danmark endda nr. 1 i verden (i procent naturligvis).

Men hvis det kun er et mindre program, så kan der nok ikke ske så meget ved at bruge registreringsdatabasen. Husk bare hele tiden at tænke på, hvad du ville gøre, hvis du ville snyde, og prøv at lave forhindringer. Folk er mere uærlige, end man skulle tro.
Avatar billede jgthb Nybegynder
22. august 2006 - 23:33 #16
Jeg har faktisk selv overvejet, at folk kan bruge programmer, der overvåger regedit. Og nu er jeg selv ikke lige frem nogen computerekspert, så derfor er det vel egentlig sandsynligt, at en del andre også kan få den tanke. Det kunne være, jeg skulle bruge dit forslag med at lave en ekstern fil. Bygger det komponent, du foreslog, på den ide? Hvis ikke, hvordan krypterer jeg så en fil?

Angående en konstant værdi på computeren, så er der stadig ingen, der har et forslag?
Avatar billede stone Forsker
22. august 2006 - 23:52 #17
hvad med ip adressen den må da være unik for hver pc...
Avatar billede stone Forsker
23. august 2006 - 00:02 #18
ik verdens bedste kryptering men effektiv....

function TForm2.EnDeCrypt(const Value : String) : String;
var
  CharIndex : integer;
begin
  Result := Value;
  for CharIndex := 1 to Length(Value) do
    Result[CharIndex] := chr(not(ord(Value[CharIndex])));
end;

her fra componentens readme....

Quick Reference:
                TRegistDays inherits from TComponent.

                Key-Properties:

                  DaysToUse:  Specifies the number of days the appliction
                              could be used without registering it.

                  DaysLeft:  The number of days left before registering is
                              nescessary.

                  Pd:        Modified in version 3.0.
                              The Password. The string that should be used when
                              registering the application.
                              Write to this property at design-time, and be sure
                              to remember it. When entered, this property will
                              show a coded password. In earlier versions the
                              password wasn't coded and could simply be read in
                              the exe-file with an text-editor!!!
                              A slight oversight...

                  Fake-GUID:  This string is the entry label in Registry. Keep
                              it as anonymous as possible.

                  RegNumber:  A number used for Key-name and Key-data entries in
                              Registry. Randomly (1-999999999) generated at
                              component creation, or choosen by user.

                  Registered: True if application was successfully registered.


                Key-Methods:

                  Init:          Function that should be called each time the
                                application is runned. Call if from the
                                MainForm OnCreate event. Returns TimesLeft.
                                left as a string.

                  CheckPassWord: Function that checks the input string against
                                the Password. Returns true if equal.

                  RegisterApp:  Registers the application. Sets Key-name and
                                Key-data equal to RegNumber.
Avatar billede jgthb Nybegynder
23. august 2006 - 06:00 #19
Det fungerer således nu:

Når programmet startes, undersøget det, om en bestemt fil på harddisken findes. Hvis den ikke gør, begynder registreringsdelen. Den består i, at et nummer (netkortes MAC-adresse) vises, og et registreringsnummer skal så indtastes i boksen. Nøglen er 9- eller 10-cifret og er beregnet fra mac-nummeret ved en formel indholdende addition, substitution og multiplikation. Hvis registreringsnummeret, der indtastes, stemmer overens med nøglen, oprettes filen, der i starten blev søgt efter, og i den skrives nøglen. Når programmet herefter åbnes, undersøges det, om nøglen i registreringsfilen stemmer overens med nøglen, der laves ud fra mac-nummeret. Så, hvis en person kopierer programmet, og det også lykkes at finde registreringsfilen, kan vedkommende stadig ikke køre programmet, da nøglen i filen ikke er lig med nøglen beregnet fra mac-nummeret.

Hvad synes du om denne løsning? Den eneste mulige måde at snyde på nu, er vel at hacke koden for at finde formlen.
Avatar billede stone Forsker
23. august 2006 - 07:47 #20
det er en fin løsning som helt sikkert gør det besværligt for folk som vil bruge programmet på ny pc
Avatar billede a_nor Nybegynder
23. august 2006 - 11:26 #21
Som det fremgår af jeres diskussion er problematikken omkring den faktiske beskyttelse mod kopiering ikke så enkel. Det er selvfølgelig også derfor i overgår til at diskutere licensbetingelser og copyright.

Man må derfor overveje hvor sikker man vil gøre sit program mod kopiering overfor hvor besværligt det skal være at installere og bruge.

Skal din kunde købe programmet igen når han skifter computer?

Løsningen med at anvende MAC-adressen er fin (hvis der altså er netkort i PCen), men man kan ikke bare med programmet levere en kode uden at det herefter kan installeres flere gange. Du vil være nødt til at supplere kunden med koden på installationstidspunktet, er det en OK situation ?

DSI havde i gamle dage en løsning hvor man flyttede en licens fra en kopisikret
(? :-))  ) diskette ind på harddisken. Licensen kunne så flyttes ud på disketten igen hvis man skulle skifte PC.
Avatar billede stone Forsker
23. august 2006 - 12:43 #22
meget software er afhængig af internettet i dag, da det giver flere muligheder for at sikre det. Såsom software fra swishzone/borland osv... skal man rundt om deres hjemmeside for at kunne få en reg for at installere softwaren - og er det brugervenlighed nej men en nødvendighed for at sikre sit software. Så alt efter hvilken målgruppe han sigter imod så vil den pågældende admin forstå hvorfor det er såddan.

ps... gg har faktisk DSI System software liggende endnu i original embalage
Avatar billede stone Forsker
23. august 2006 - 13:01 #23
kan se i et af dine tidligere spørgsmål at hrc pointerer at mac adressen kan ændres f.eks ved nyt netkort - hvordan reagere dit software på det?
Avatar billede jgthb Nybegynder
23. august 2006 - 14:31 #24
stone: Hvis mac-adressen skiftes, så vil man ikke få adgang til programmet. hmm....

a nor: jeg havde forestillet mig, at der skulle komme en meddelelse frem ved installation, hvori min postadresse står. Så kan brugeren bare sende et brev med koden, der vises ham. Denne kode vil jo altid være den samme (med mindre vedkommende skifter netkort, så det må jeg lige tænke lidt over).  Da jeg tjekker post rimelig ofte, burde vedkommende gerne have modtaget nøglen inden dagen er om. Jeg synes selv, det er en holdbar løsning. Som stone påpeger, bruger mange firmaer en eller anden form for registrering via internet. Om spørgsmålet, om brugeren skal købe programmet igen ved ny køb af ny computer, må jeg sige ja. Det vil fungere ved, at man får licens til en computer. Jeg tror systemet bliver svært at få til at virke, hvis jeg ændrer dette.

Nu kommer jeg til at dvæle ved din udtalelse "men man kan ikke bare med programmet levere en kode uden at det herefter kan installeres flere gange." Hvordan gør man det? Så skal man vel ændre i selve exe-filens kode, og kan man det? Men der hører sig også det problem med, at hvis personen reinstallerer computeren, kan personen ikke bruge programmet igen.
Avatar billede dkn Nybegynder
23. august 2006 - 15:34 #25
Pas på med at smid for meget tid i at lave en sikring til dit program, det gør det bare mere træls når der efter lidt tid dukker et crack op : )

Ej det er seriøst problem når man til sidst står med et program man gerne vil sikre, men  man bliver jo nødt til at sige at hvis store firmaer som MS smider et program ud og der snart er et crack minuter efter - Hvad har man så selv af chance for at prøve at sikre noget ?

Man kan kun prøve at stole på der findes ærlige mennesker derude et sted og så tro på de ønsker at bruge penge på noget som de kan se nogle andre mennesker kan bruge gratis ved at hente et crack...

Hardware metode med usb dongle hvis det er et seriøst program.
Ellers en demo version (som stone også siger) hvor der bare er nogle funktioner som slet ikke er medtaget. Dette sikre i det mindste næsten et solgt kopi.
Avatar billede stone Forsker
23. august 2006 - 17:10 #26
hvis dit software kun er til danske forhold er sansynligheen mindre for at der kommer et hack/crack alt efter din målgruppe. Her er jeg enig med dkn om ikke at "skyde gråspurve med kanoner"

som jeg tidligere har pointeret har jeg brugt TRegisttimes i et software med over 900 brugere og har ikke til dato set nogen former for hack på trods af der er kunder fra danmark/sverige/norge.

Men nu ved jeg jo ikke hvad dit software kan og dets potintale er.
Avatar billede jgthb Nybegynder
23. august 2006 - 18:23 #27
i har nok ret i, at man ikke skal overdrive. jeg tilføjer ikke mere sikkerhed til programmet nu. Programmet er for øvrigt en ordbog.

Du må godt lægge et svar, stone. du har været til stor hjælp ved at rådgive mig.
Avatar billede stone Forsker
23. august 2006 - 20:47 #28
ok takker
Avatar billede stone Forsker
23. august 2006 - 20:47 #29
ss
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