Avatar billede ladyhawke Novice
04. august 2006 - 09:28 Der er 24 kommentarer og
3 løsninger

Lav Trial/Demo version?

Har du et forslag til hvordan dette tilføjes til en win forms applikation?

Altså at den kan benyttes i f.eks. 90 dage, hvorefter der skal en eller anden kode til for at kunne bruge applikationen igen...
Avatar billede ladyhawke Novice
04. august 2006 - 09:34 #1
I øvrigt benytter jeg VS 2005, så måske en kodet setting eller lign. var en mulighed
Avatar billede nielle Nybegynder
04. august 2006 - 09:44 #2
.Net programmer kan relativt let disassembles, så hvis man vil kan man fjerne den slags tjek unden de store problemer.
Avatar billede nielle Nybegynder
04. august 2006 - 09:46 #3
Men ellers kunne nogle mulige løsninger være at:

skrive en dato i registrereinfsdatabasen første gang programmet køres, og så efterfølgende tjekek imod denne hver gang at programmet startes.

... eller at lade programmet kalde et website, hvor at du har et andet program kørende som så fortæller det kaldende program om det må køre mere.
Avatar billede ladyhawke Novice
04. august 2006 - 10:04 #4
jeg ved godt det er nemt at omgå, men så har jeg i det mindste fortalt brugeren at jeg ønsker de registrerer softwaren.
Avatar billede nielle Nybegynder
04. august 2006 - 10:11 #5
En anden løsning kunne være at du kun leverede en lettere skrabet version af det komplette program.
Avatar billede ladyhawke Novice
04. august 2006 - 10:32 #6
det kunne man, men det er ikke en option her, der skal være fuld funktionalitet i prøveperioden.
Avatar billede md_craig Nybegynder
04. august 2006 - 12:30 #7
Nu kommer det jo et eller andet sted også an på hvad målgruppen er... når man siger det "let kan omgås".... det er jo et fåtal der rent faktisk vil vide hvor de skulle tage fat hvis det var...

Løsning A, som er lokalt er som Nielle siger, at ligge informationer om det i registrerings databasen, eller i en keyfile i applikationens dir... Jeg vil i begge tilfælde anbefale en form for kryptering... udelukker lidt flere fra nemt at omgås det..

Løsning B, som er mere sikker, er at bruge en webadresse med en "server" der tilader kørsel... evt. yderligere lade nogle af "key-functionalities" ligge implementeret på serveren, og kun som interfaces hos klienten... således ville de ikke være muligt at "fjerne" det tjeck op mod nettet, da programmet ganske simpelt ikke ville kunne kører uden at have fået visse objekter leveret...

Løsning A er jo nemmest, og samtid mindst sikker... Løsning B kan laves meget sikker... men den kræver også en hel del fæere resourcer... vis programmet pluselig bliver udbredt til 10.000+ brugere skal sådan en server pluselig kunne håndtere en del kald jo...
Avatar billede ladyhawke Novice
04. august 2006 - 13:33 #8
i denne sammenhæng hælder jeg mest til den lokale løsning, netop for ikke at skulle have et gigant web show kørende (potentielt).

nogen der har et lille code snippet til at skrive dags dato i krypteret form i registry (f.eks. som del af en custom action)? altså sådan at det er nemt at hente den ud igen til en sammenligning når programmet kører
Avatar billede nielle Nybegynder
04. august 2006 - 14:04 #9
Jeg synes ikke at der er nogen grund til at gøre noget ud af at kryptere datoen.

Hvis folk vil, kan de jo alligevel bare nulstille ved simpelthen at slette nøglen i registreringsdatabasen.
Avatar billede md_craig Nybegynder
04. august 2006 - 14:21 #10
nielle >>

Ikke hvis du opretter den under instalation, og at slette den betyder at "invalidere" programmet så det ikke kan køre
Avatar billede ladyhawke Novice
04. august 2006 - 14:54 #11
Det er netop meningen at den skulle skrive ved installationen og krypteres for at man ikke lige kunne gætte formatet af datoen (kunne jo være et tidsstempel) og dermed ikke let gennemskue hvad den skulle rettes til for at forlæng prøveperioden.
Avatar billede md_craig Nybegynder
04. august 2006 - 14:55 #12
Her er noget om Regestry:
http://www.codeproject.com/csharp/#Registry

Her er lidt om Security (nogle af topics er om Encryption)
http://www.codeproject.com/csharp/#Security

fx:
Fil kryptering (en fil er data, det er din dato også) - http://www.codeproject.com/csharp/fileencryptdecrypt.asp

En Wrapper af en art - http://www.codeproject.com/csharp/cyptohashing.asp

og en mere - http://www.codeproject.com/csharp/chidi_cryptommetric.asp
Avatar billede nielle Nybegynder
04. august 2006 - 16:55 #13
04/08-2006 14:21:08> Rigtigt, men det var nu heller ikke lige den version jeg beskrev i 04/08-2006 09:46:35.

Jeg kan dog bedre lide din variant. :^)
Avatar billede nielle Nybegynder
04. august 2006 - 16:57 #14
... men jeg er egentlig ikke helt klar over hvordan man vil kryptere "nu" i forbindelse med en installation?
Avatar billede md_craig Nybegynder
05. august 2006 - 01:11 #15
nielle >>

Jeg er ikke så meget inde i det med Instalationsprojekter osv... men jeg ved så meget at hvis du laver din instalation i Visual Studio, så får du mulighed for direkte at skrive noget kode du afvikler som en del af instalationen... dermed har du sådanset adgang til hele .NET frameworket i forbindelse med en instalation... Så kan DateTime.Now jo bruges... Hvertfald så vidt jeg har fåstået konceptet...

(Tror det er det der heder Custom Actions, dog ikke sikker)

Og til krypteringen bruger man jo bare en alm Ciphers fra frameworket... ja eller skriver sin egen hvis man mener man behærsker det... (a rare situation i think) :P...
Avatar billede md_craig Nybegynder
05. august 2006 - 01:19 #16
Avatar billede overload.dk Nybegynder
05. august 2006 - 10:50 #17
Det med at skrive en dato i registrereinfsdatabasen første gang programmet køres, kan være fornuftigt og simpelt nok - men hvis det skal være sikkert, så bare lave en MD5 check-værdi på datoen + noget fyldkode/pass som kun du kender. Således MD5 ikke bare kan genereres påny (ofte mange der glemmer det).

Så tager du både MD5 værdien og datoen, tjekker først om disse er ok - derefter hvis ok, så kan du så tjekke for hvor længe programmet må køre. Hvis første tjek ikke var ok, så kan du bare lukke programmet eller hvad du nu har lyst til, så tror jeg hurtigt brugerne fatter at det ikke er lige til at pille i.
Avatar billede segato Nybegynder
07. august 2006 - 08:59 #18
Avatar billede ladyhawke Novice
07. august 2006 - 10:31 #19
Gode forslag og en masse at arbejde med, læg et svar (også resten :O)
Avatar billede md_craig Nybegynder
07. august 2006 - 17:49 #20
overload.dk >>

Jeg vil personligt ikke mene det er velegnet til dette da MD5 er en Hash og ikke Kryptering, MD5 kan bruges til at lave en key til at benytte med krypteringen...

Dvs at du teknisk set skal de sidste X dage igennem og lave et tjeck for at se om det nu lige var den dag den blev registræret, det er lige 90 checks du skal igennem... (Hvis vi ikke skal ned på stører præsision end en dag)...

Vælger du at bruge fx TripleDES så kan du når du vil lave checket Derkyptere dine data, dvs at...

"2006/07/05 - 13:14:24" kan krypteres til Volapyk med nøglen "XD34SKOR"... kunne være:

iO4HSOz/wt1UYJwh8CCoHoCywCjqeDKM

og tilbage igen... Der skal så bruges en Key og en Vector...

Hovedsagen er at man frem for at skulle til at rende et range igennem af data, så kan man bare læse den værdi der står i registrætingsdatabasen og Dekryptere den... og så sammenligne den med nuværende tidspunkt...

Og self kan man pakke mange andre spændende ting ind i i feltet... Som du selv nævner så kan du med en MD5 hash forholdsvis nemt lave en ny hash at komme i databasen, dette kræver dog at du ved hvordan han lagre datoer... er det en Long værdi, er det en string kan Hash'er...

Med DES kryptering foregår det anderledes, der har du en nøgle og fx med en 128 bits nøgle har du en pænt sikker kryptering...

Men i begge tilfælde vil man ved at disassemble kunne finde enten det abskure dato format man Hasher med MD5, SHA eller whatever..., eller den nøgle man bruger i TripleDES eller hvilken som helst anden algoritme...

Fordelen med at kryptere istedet, er at kan program ikke skal til at "gætte"...
Avatar billede nielle Nybegynder
07. august 2006 - 20:40 #21
Svar :^)
Avatar billede md_craig Nybegynder
07. august 2006 - 22:18 #22
svar
Avatar billede plx Nybegynder
07. august 2006 - 22:22 #23
sikke alt det besvær. brugeren ryder selvfølgelig bare op efter programmet, og installerer det igen, så behøver han ikke vide hvordan strengen skal afkodes
Avatar billede ladyhawke Novice
08. august 2006 - 08:25 #24
plx>> i dette tilfælde bliver nøglen med datoen ikke automatisk fjernet når man afinstallerer og nøglen er ikke gemt under et produktnavn i registry, så man skal være rimelig ivrig hvis man vil lede efter den.

Det er heller ikke for at lave en vildt sikker løsning, blot at det ikke er alt for nemt at snyde sig fra at registrere kopien (i nogle tilfælde vil registreringen være gratis, men derfor kan den jo være interessant for udvikleren alligevel)
Avatar billede ladyhawke Novice
08. august 2006 - 08:26 #25
NB custom actions er ganske rigtigt ekstra funktionalitet som kan tilføjes en installer og der har man stort set frit slag indenfor frameworket
Avatar billede plx Nybegynder
08. august 2006 - 15:23 #26
Så ivrig behøver man ikke være. regmon og filemon fra sysinternals kan overvåge alle tilgange til registry og harddisk
Avatar billede ladyhawke Novice
08. august 2006 - 16:48 #27
men det er altså ikke ret mange almindelige brugere, der benytter sysinternals værktøjer, endsige vil sætte sig ind i hvordan det fungerer... Hvis man er lidt avanceret så ja, men det er nok ikke en relevant målgruppe her
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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