Entwickler-Ecke

Jobbörse - Seriennummer einbinden


Delete - So 24.01.10 06:22
Titel: Seriennummer einbinden
hey suche jemand der mir in mein programm so ein registrierungs teil einbaut
beim start sollte man registrierungsschlüßel eingeben wen er richtig is sollte er zugriff auf alles haben wen er falsch is sollte das programm mit beschränkten berechtigungen starten
es sollte was ganz einfaches sein und die codes will ich dan manuel verschicken.
es sollte aber allerdings so gemacht werden das jeder key nur einmal gültig is und das man des programm nach der eingabe des keys also wemn es die vollversion ist nicht verschicken können
bröuchte 2 arten von keys. einmal vollen zugriff und einmal für begrenzte zeit
könnte mir das jemand machen???
lg


Xearox - So 24.01.10 07:23

naja, das ist keine so leichte sache...die mal eben schnell jemand machen kann.


Anonymous - So 24.01.10 07:57

hmm wie lang würdn sowas dauern?
und is das die leichteste methode oder gibts noch leichtere???
lg


Delete - So 24.01.10 07:58

ups sorry des mit gast war ich hab nicht gemerkt das ich nicht eingeloggt bin


Xearox - So 24.01.10 09:14

ich kenne mich zwar nicht damit aus...

aber du willst sicherlich Verschiedene Schlüssel haben, also muss man einen Algorythmus schreiben, um verschiedene Key zu erstellen...
Dann muss man diese Wiederum im Programm entschlüsseln...
Desweiteren dürfen die Key nicht so einfach zu Knacken sein, also Keine XOR gedöne...
Zu dem Willst du, das jeder nur einmalig aktivier bar ist...
Da denke ich mal, geht das nur, wenn sich das Programm mit einem Server verbindet, um dort die benutzten Keys zu überprüfen...

Mein Vorschlag hier, wenn es sich um ein Programm handelt, welches nicht gerade all zu oft downgeloadet wird, es per Email Suppor zu aktivieren...
Bsp.:

Im Programm wird mit Hilfe einer bestimmten Zahl einen Code erstellt.
Dieser muss der User dir Per mail schicken.
Also den Code und diese bestimme Zahl, die der Schlüssel ist.
Jedoch kann man Pro download nur eine solche Zahl erstellen.
Sprich, ich downloade dein Proggi, drücke auf Key Erstellen, dort kommt nun der Key raus, welchen ich per Email an dich schicken muss.
So...nun wird der Button Key Erstellen aus dem Programm herraus deaktiviert, um Missbrauch zu verhindern...
Verschickt man nun dieses Programm weiter, ermittelt das Programm aus einer bestimmten Hardware Configuration, zum Beispiel die Einmalige MAC adresse einer LAN-Netzwerkkarte oder Wireless-Lan den nächsten Key...so würde ich das überhaupt mit dem Key Erstellen, denn so ist es ausgeschlossen, das ich den erhaltenen Serial-Key, welchen ich von dir bekommen habe, weiter geben kann.
Zum beispielt an dir, du kannst den Key nicht benutzen, denn im Key ist die MAC-Adresse von meiner NetzwerkKarte enthalten...

Also das wäre mein Vorschlag, und ich denke, das dieser auch sehr sicher ist.
Jedoch ob dies mach bar ist, weiß ich nicht...das müssen die User mit mehr Erfahrung entscheiden...
Ich bin nur ein Kleiner Noob, der sich langsam an Delphi herran Tastet... ;)


Naja, eine leichtere, denke ich schon...
Du gibst mehrere Feste Schlüssel im Programm ein.
Nun klickt der jenige auf registrieren.
Bekommt einen Key zugewiesen.
per If then wird überprüft, ob der Key gültig ist, denke das IF Then am einfachsten ist...
und zack...programm registriert, und das könnt ich soger schreiben...so einfach ist das, lol :D

aber wird auch schneller gehackt das Programm, da man in Linux mit dem Befehl Strings, die exe auslesen und in einer txt alles Speichern kann...


Delete - So 24.01.10 09:22

hey
deine zweite methode die du gesagt hast gefällt mir und würd auch shcon reichen
es is ja nich so das des ein super program werden soll/ist aber ci wil halt nur paar leute damit aufs forum bringen
köntest du mir mal ein beispiel zeigen mit der if then variante
also nee exe verschlü´seln und mir mal schicken
Wichtig! was ich unbedingt bräuchte is das wen er nen falschen schlßel eingibt das er nur beschränkten zugang zum program hat. ist da machbar?? kannst du sowas??
lg


Xearox - So 24.01.10 09:47

Delphi Programm Code

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ESchluessel: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  WrongKey:Boolean;

const
  Schluessel0='JAB3-QYRE9Q-QHDE8F-ZEBP';
  Schluessel1='XDBH-AV6TEY-CJ557X-RRCN';
  Schluessel2='HDB3-SJUD5R-DNS5DW-792T';
  Schluessel3='JABH-AZ3TVR-F5RB8V-7Q2P';
  Schluessel4='RDGM-S8QSPP-EMJL87-7RCN';
  Schluessel5='QDGM-C8CEJX-WDQBAF-8ZAP';
  Schluessel6='WAGF-6WQTE7-X9JEFX-8GBT';
  Schluessel7='RDG4-CF2SYS-97WLSF-8FCP';
  Schluessel8='MDBA-C9UY9N-87U5FW-WBCN';
  Schluessel9='UDBB-D94LXT-TNEBSH-85CN';


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  WrongKey:=false;
  if ESchluessel.Text=Schluessel0 then
  begin
    ShowMessage('Programm Erfolgreich Aktiviert');
    WrongKey:=True;
  end;
  if ESchluessel.Text=Schluessel1 then
  begin
    ShowMessage('Programm Erfolgreich Aktiviert');
    WrongKey:=True;
  end;
  if ESchluessel.Text=Schluessel2 then
  begin
    ShowMessage('Programm Erfolgreich Aktiviert');
    WrongKey:=True;
  end;
  if ESchluessel.Text=Schluessel3 then
  begin
    ShowMessage('Programm Erfolgreich Aktiviert');
    WrongKey:=True;
  end;
  if ESchluessel.Text=Schluessel4 then
  begin
    ShowMessage('Programm Erfolgreich Aktiviert');
    WrongKey:=True;
  end;
  if ESchluessel.Text=Schluessel5 then
  begin
    ShowMessage('Programm Erfolgreich Aktiviert');
    WrongKey:=True;
  end;
  if ESchluessel.Text=Schluessel6 then
  begin
    ShowMessage('Programm Erfolgreich Aktiviert');
    WrongKey:=True;
  end;
  if ESchluessel.Text=Schluessel7 then
  begin
    ShowMessage('Programm Erfolgreich Aktiviert');
    WrongKey:=True;
  end;
  if ESchluessel.Text=Schluessel8 then
  begin
    ShowMessage('Programm Erfolgreich Aktiviert');
    WrongKey:=True;
  end;
  if ESchluessel.Text=Schluessel9 then
  begin
    ShowMessage('Programm Erfolgreich Aktiviert');
    WrongKey:=True;
  end;
  if WrongKey=false then
  begin
    ShowMessage('Falsche Serial-Code, erneut eingeben oder mit eingeschränkter Funktionalität forfahren');
  end;

end;

end.


Form Code


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 300
  ClientWidth = 635
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Button1: TButton
    Left = 264
    Top = 179
    Width = 75
    Height = 25
    Caption = 'Aktivieren'
    TabOrder = 0
    OnClick = Button1Click
  end
  object ESchluessel: TEdit
    Left = 176
    Top = 152
    Width = 265
    Height = 21
    TabOrder = 1
  end
end


soo, das ist ein ganz einfacher Code, der auch funktioniert...sicher gibt es möglichkeiten das anders zu machen, aber nun ja...soll ja nur ein Beispiel sein...

Die Schlüssel sind diese hier

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
JAB3-QYRE9Q-QHDE8F-ZEBP
XDBH-AV6TEY-CJ557X-RRCN
HDB3-SJUD5R-DNS5DW-792T
JABH-AZ3TVR-F5RB8V-7Q2P
RDGM-S8QSPP-EMJL87-7RCN
QDGM-C8CEJX-WDQBAF-8ZAP
WAGF-6WQTE7-X9JEFX-8GBT
RDG4-CF2SYS-97WLSF-8FCP
MDBA-C9UY9N-87U5FW-WBCN
UDBB-D94LXT-TNEBSH-85CN


die schlüssel hab ich kurz in einem KeyGen erstellt...

Bei einer Falsch eingabe wird eine Meldung ausgegeben...


Delete - So 24.01.10 09:51

könntest du mal deine units uppen pls??
lg


Xearox - So 24.01.10 09:52

du musst nur das Kopieren und in nem Programm einfügen...
Kann ich aber für dich machen, kein Problem...

mit UPX die exe verkleinert...
nicht Original exe


Jakob_Ullmann - So 24.01.10 09:56

Keine gute Idee, die Schlüssel in Klarschrift da hinzuschreiben. Bei sowas sollte man glaube ich lieber Hash-Werte vergleichen, z. B. MD5. Ansonsten sollte das relativ leicht zu knacken sein, kann nämlich mit einem HEX-Editor ausgelesen werden. :wink:

edit: Und Tests wie WrongKey sollte man auch lieber nicht nehmen. Kann ebenfalls einfach geknackt werden. http://www.michael-puff.de/Artikel/KopierschutzCracken.shtml


Delete - So 24.01.10 10:00

thx xearox
habs probiert mit copieren der erste quellcode ging nur bein zweiten bin ich amnscheinend zu dumm

@jakob
hmm mein problem is das ich davon null ahnung hab und jemanden such der mir was machen kann
lg


Xearox - So 24.01.10 10:00

er wollte ein ganz einfaches...
und ich hab ihm eins gegeben...

kannst ja meinen Code überarbeiten...dann kann ich das für spätere Projecte direkt erlernen ;)

also bei mir Funktioniert jeder code ohne Probleme...
jetzt musst du halt meinen Code erweitern...
könntest vllt. die schlüssel mit hilfe eines Array ändern.
Dann hast du nicht mehr:
Schluessel1
Schluessel2

sondern
SchluesselTyp[1];
SchluesselTyp[2];

usw...


Jakob_Ullmann - So 24.01.10 10:06

user profile iconXearox hat folgendes geschrieben Zum zitierten Posting springen:
er wollte ein ganz einfaches...
und ich hab ihm eins gegeben...

kannst ja meinen Code überarbeiten...dann kann ich das für spätere Projecte direkt erlernen ;)


Ja, bloß wir sind hier in der Job-Börse. Und wie gesagt, ich halte es für wesentlich besser, zu hashen. Siehe z. B. hier [http://www.delphi-forum.de/viewtopic.php?t=96971].

PS: Hab irgendwie zu spät gemerkt, dass da noch was kommt, siehe Link in meinem vorherigen Beitrag.

edit: Auslesen sollte sogar mit dem Windows-Editor funktionieren. Einfach mal EXE mit dem Editor öffnen.

http://de.wikipedia.org/wiki/Hashfunktion


Delete - So 24.01.10 10:09

xearox genau so was such ich nur kann man des vllt. noch bisschen bearbeiten sprich:

wen man program startet sollte die serial zum eingeben sein und ein button mit demo testen
wen man demo testen klickt nur mit eingeschränkter funktion
wen man serial eingibt is es registriert und man hat vollersion aber man sollte die registrierte vollversion nicht mehr verschicken können sonst macht ja der ganze key keinen sin
oben sollte stehn registriert für dan halt den namen von denjenigen
und key nur einmal benutzen und wen er ihn eimal eingegeben hat reicht also danach nicht mehr abfragen sonst wärs ja blöd bei jeden programmstart den einzugeben
bekommst du sowas hin?? wär echt hammer geil
lg

@jakob_ullman könntest du mir vllt. mal ein kleines beispielprogramm machen damit ich des mal verglichen kann??
lg


Xearox - So 24.01.10 10:10

user profile iconJakob_Ullmann hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconXearox hat folgendes geschrieben Zum zitierten Posting springen:
er wollte ein ganz einfaches...
und ich hab ihm eins gegeben...

kannst ja meinen Code überarbeiten...dann kann ich das für spätere Projecte direkt erlernen ;)


Ja, bloß wir sind hier in der Job-Börse. Und wie gesagt, ich halte es für wesentlich besser, zu hashen. Siehe z. B. hier [http://www.delphi-forum.de/viewtopic.php?t=96971].

PS: Hab irgendwie zu spät gemerkt, dass da noch was kommt, siehe Link in meinem vorherigen Beitrag.

edit: Auslesen sollte sogar mit dem Windows-Editor funktionieren. Einfach mal EXE mit dem Editor öffnen.



er wollte ein ganz einfaches haben...ich hab ihm eins gegeben...
wo ist nun das Problem, ich habe ihm ja 2 Varianten vorgeschlagen, er wollte die zweite, habe auch extra dabei geschrieben, das die Serials im Code mit drin stehen...
dennoch wollte er das haben ;)

user profile iconmaier1990 hat folgendes geschrieben Zum zitierten Posting springen:
xearox genau so was such ich nur kann man des vllt. noch bisschen bearbeiten sprich:

wen man program startet sollte die serial zum eingeben sein und ein button mit demo testen
wen man demo testen klickt nur mit eingeschränkter funktion
wen man serial eingibt is es registriert und man hat vollersion aber man sollte die registrierte vollversion nicht mehr verschicken können sonst macht ja der ganze key keinen sin
oben sollte stehn registriert für dan halt den namen von denjenigen
und key nur einmal benutzen und wen er ihn eimal eingegeben hat reicht also danach nicht mehr abfragen sonst wärs ja blöd bei jeden programmstart den einzugeben
bekommst du sowas hin?? wär echt hammer geil
lg
lg


das letzte kann ich eher weniger...das obere ist schon einfacher, jedoch müsstest du das selber machen, ich könnte dir den Grundstein dafür legen, doch du müsstest den Rest ändern, damit es für dein Programm geeignet ist...


Delete - So 24.01.10 10:18

xearox nix gegen dich mir wär ein aufwändigeres sicheres schon lieber hätt auch noh viele änderungen aber dan finde mal einen der dir sowas macht und wen man jemand gefunden hat dan verlangt der übelst viel dafür
aba sonst siehts eig. schon gut aus es sollte halt nich innerhalb ner 1min gehackt sein
lg

Edit:// verdammt ihr seid mir zu schnell mit dem schreiben :)
was meinst du genau mit das letztere kannst du nicht so das er den key nur einmal abfrägt und nach erfolgreicher eingabe nich mehr???
und ich muss dazusagen wegen den grundstein den du mir legen würdest
ich bin noch ziemlicher anfänger aber ich würds gerne lernen wen du mir dabei behilflich sein kannstr dan gerne??

xearox deine idee is auch nice freut mich das du dich gemeldet hast und ich werd auch bei meinen anderen programmen deine lösung vorziehen nur jetz wär mir bei den jetzigen doch bisschen mehr sicherheit lieber weil da steckt viel arbeit hinter diesn programm unzählige durchgemachte nächte ;-)
lg


Jakob_Ullmann - So 24.01.10 10:20

user profile iconmaier1990 hat folgendes geschrieben Zum zitierten Posting springen:
@jakob_ullman könntest du mir vllt. mal ein kleines beispielprogramm machen damit ich des mal verglichen kann??


Also (1) wir sind hier, wie bereits erwähnt, in der Job Börse. Gegen Bezahlung machen das hier bestimmt viele. Ansonsten sind wir bereit, dir zu helfen, aber nicht ohne (2) Eigeninitiative. Zu hashen wäre jetzt denkbar einfach, du berechnest (oder lässt von einem Programm berechnen) aus deinem Schlüssel den Hash. Den Schlüssel gibst du dem Kunden. Der tippt ihn ein. Dein Programm prüft, ob der Hash des eingegebenen Schlüssels dem Wert entspricht, den du ausgerechnet hast und als Konstante im Programm hinterlegt hast. Das funktioniert aber nur in eine Richtung, d. h. du kannst den Hash zwar mit einem HEX-Editor auslesen, aber es nützt dir nichts, weil du daraus nicht den Schlüssel gewinnen kannst. Und was du jetzt zu tun hast, ist nicht viel mehr als Copy & Paste, wenn du dir die Links mal anschaust.


Delete - So 24.01.10 10:22

also gegen geld macht mir des keiner hab schon mal ne anfrage gestellt :(
wie viel würdest du dafür jetzt verlangen??
wen ich es selber probieren würd würdest du mir dan es gut erklären??
lg


Xearox - So 24.01.10 10:28

hehe...
soll ich dir mal was sagen maier1990?
wir sind ca. im selben alter, wenn ich die 1990 richtig deute...

pass auf...da ich lernen will, und nicht irgendwas dir schreiben will, was vllt. im nachhinein nicht klappt oder nicht so, wie du das willst, schlag ich dir folgendes vor...
Lass den Thread schließen, ich gebe dir per PN meine ICQ nummer, falls du Headset hast, gehen wir aufm TS Server und machen dat zusammen...

Und ich verlange auch kein Geld...
Denn...
Learning by Doing

Man lernt es, in dem man es probiert.
Wenn mal nicht klappt, weiter probieren oder um hilfe fragen ;)

Was hälst du davon?


Delete - So 24.01.10 10:39

hey
wollt dich grad anschreiben
deine lösung find cih ist die unkomplizierteste wo sogar ich check
und ja bin 19 und du auch oder wie??
es geht mir nicht ums kostenlos
natürlich bekomst du auch ne kleine aufmerksamkeit bin ja nicht so ;-))


Xearox - So 24.01.10 10:41

ja dann ist ja alles geklärt :=D
dann machen wa das jetzt zusammen ;=)


>M@steR< - Mi 27.01.10 22:45

Gelöscht