Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Sichere Lizenz-Schlüssel erstellen und überprüfen

Frage Entwicklung VB for Applications

Mitglied: Alexss95

Alexss95 (Level 1) - Jetzt verbinden

07.10.2009, aktualisiert 17:30 Uhr, 21918 Aufrufe, 15 Kommentare

Hallo!

Ich bastle gerade an einem Programm herum, welches über
eine Aktivierungs-Funktion verfügen soll, also, dass wenn man einen bestimmten
Schlüssel eingibt, z.B. "27XHR-6HJK2-7GQV1-LOE8I-XOP95" soll dieser in den My.Settings
gespeichert werden, und wenn das Programm startet aus den My.Settings ausgelesen und
überprüft werden soll.

b95ca44a789f3a0bf725f932841ab55d-aktivierung_mdas-browser - Klicke auf das Bild, um es zu vergrößern

Ich habe etwas von einem Algorythmus gehört, mit dem man das machen kann.
Ist das damit möglich, und wenn ja, wie?

Danke schon mal im vorraus!

Gruß
Alexss95
Mitglied: St-Andreas
07.10.2009 um 15:36 Uhr
Hallo,


der Algo-Rythmus ist wohl nicht so einfach und offensichtlich. Denn jeder der den Algo-Rythmus kennt kann ja dann auch einen Schlüssel erstellen, nicht wahr? Und damit wäre dann ja nicht mehr so sicher wie man es gerne hätte!

Aber es gibt jede Menge Tools und Möglichkeiten wie man seine eigene Software schützen kann. In aller Regel sind diese Möglichkeiten allerdings kostenpflichtig.
Bitte warten ..
Mitglied: Alexss95
07.10.2009 um 15:39 Uhr
Aber es wird doch irgendwie möglich sein, so eine Aktivierung ohne
igendwelche Tools zu erstellen, oder nicht?

Es gibt doch genug Programme, die das auch haben (MS Office, TuneUp, usw.)

Gibt es denn keine möglichkleit?

Gruß
Alexander
Bitte warten ..
Mitglied: maretz
07.10.2009 um 16:37 Uhr
Moin,

ganz ehrlich: Was bringt das? Wenn du das so simpel machst - dann kopiert man sich die My.Settings halt gleich mit oder packt den Key fröhlich munter auf irgendwelche Webseiten...

Hier würde ich das Konzept nochmal überlegen - und ob du ne andere Kopierschutz-Maßnahme nicht ggf. besser findest...
Bitte warten ..
Mitglied: H41mSh1C0R
07.10.2009 um 16:57 Uhr
Was soll an so einer Aktivierung schwierig sein? Pick dir einen Algo aus dem WWW oder ausm Kopf und modifiziere Ihn. Danach packste das in deine Software und schreibst bei korrekter Eingabe dir das "registered" da hin wo du es haben willst.

Das das natürlich wenig "Schutz" bietet ist klar.
Bitte warten ..
Mitglied: Alexss95
07.10.2009 um 17:26 Uhr
Also, danke erst mal, für eure Antworten!

Natürlich ist das keine gute Idee, aber machen das große Firmen
nicht auch so? Z.B. gibt es zu TuneUp doch hunderte Serials, die
auch noch funktionieren (also, ich habe das nicht selber getestet )

Ich habe das jetzt so gemacht:

Ich habe 5 Labels, die der Benutzer auch sehen kann, welche
bei dem Start des Programmes jeweils eine Zufallszahl bekommen.

Also z.B. :

Label1.Text = "27543"
Label2.Text = "74397"
usw.

Dann hat der Benutzer noch 5 TextBoxen, worin er bestimmte zahlen eingeben muss, welche sich durch eine Rechenaufgabe
mit den zuvor autom. generierten LAbel.Texts ergeben.

Z.B.:

(TextBox1 = s1, TextBox2 = s2, Label1 = L1, usw.; Die letzte TextBox (s5) ist
dann das ergebnis der Rechenaufabe)

01.
If s5.Text = s2.Text + L3.Text * "647" + L1.Text * s1.Text + L4.Text * L5.Text - L2.Text + s3.Text - s4.Text Then 
02.
                Form6.Show() 
03.
                Me.Close() 
04.
            Else 
05.
                s1.Text = "" 
06.
                s2.Text = "" 
07.
                s3.Text = "" 
08.
                s4.Text = "" 
09.
                s5.Text = "" 
10.
                Randomize() 
11.
 
12.
                Dim a, b, c, d, f As Integer 
13.
                a = Int(Rnd(12345) * 99999) + 1 
14.
                b = Int(Rnd(12345) * 99999) + 1 
15.
                c = Int(Rnd(12345) * 99999) + 1 
16.
                d = Int(Rnd(12345) * 99999) + 1 
17.
                f = Int(Rnd(12345) * 99999) + 1 
18.
 
19.
                L1.Text = a 
20.
                L2.Text = b 
21.
                L3.Text = c 
22.
                L4.Text = d 
23.
                L5.Text = f 
24.
                MsgBox("Der eingegebene Telefon-Code ist fehlerhaft!" & Chr(13) & "Stellen Sie sicher, dass Sie den Code richtig eingegeben haben!", MsgBoxStyle.Exclamation, Title:="MDAS-Browser Aktivierung") 
25.
            End If 
26.
        Else 
27.
            MsgBox("Der eingegebene Telefon-Code ist zu kurz!" & Chr(13) & "Bitte geben Sie den Code im richtigen Format ein.", MsgBoxStyle.Exclamation, Title:="MDAS-Browser Aktivierung") 
28.
        End If
Der Code ist nicht ganz ausgereift, doch er funktioniert schon fast.

Ich habe auserdem noch eingebaut, dass wenn der Benutzer einen Falschen Schlüssel eingibt, neue Zahlen generiert werden.
9baa2e0d563f00981904ff5b333a9a35-key_mdas - Klicke auf das Bild, um es zu vergrößern
Alexss95
Bitte warten ..
Mitglied: mrtux
08.10.2009 um 01:39 Uhr
Hi !

Also so wird das sicherlich nix.....Ausserdem solltest Du dir im Klaren darüber sein, dass es nix gibt was sich nicht irgendwie knacken lässt, wenn nur genügend (kriminelle) Energie reingesteckt wird.....Bist Du sicher ob sich der Aufwand überhaupt lohnt? Wenn deine Applikation z.B. nur von einer bestimmten Nutzergruppe verwendet wird, ist der Aufwand grösser als der Nutzen.

mrtux
Bitte warten ..
Mitglied: H41mSh1C0R
08.10.2009 um 06:10 Uhr
Zitat von mrtux:
Also so wird das sicherlich nix.....Ausserdem solltest Du dir im
Klaren darüber sein, dass es nix gibt was sich nicht irgendwie
knacken lässt, wenn nur genügend (kriminelle) Energie
reingesteckt wird.....

vor allem wenn die Masse der Leute mit Debuggern umgehen kann xD.

Da kann man mit ner Codeabfrage die ein Programm im Usermode bringt nicht viel Sicherheit generieren .

Anders schaut es da schon auf Hardware- und Kernelebene
aus. Aber auch wenn man nen Dongle + selbstgestricktem KMDF Treiber zur "authorization" benutzt, heißt das noch lange nicht das nicht auch mit genügend Zeit das geknackt wird. Alternativ kann auch jede Codeabfrage aus einem Programm weggepatched werden. Nur eine Frage der Zeit und des eigenen Könnens.

Zitat von mrtux:^^
Bist Du sicher ob sich der Aufwand
überhaupt lohnt? Wenn deine Applikation z.B. nur von einer
bestimmten Nutzergruppe verwendet wird, ist der Aufwand grösser
als der Nutzen.

Das kommt dann noch dazu.
Bitte warten ..
Mitglied: Alexss95
08.10.2009 um 08:49 Uhr
Ich will das Programm nicht verkaufen o.ä.
Es geht mir nur um den Spaß und darum, dass es
einigermaßen funktioniert!

Aber kann mein denn aus meinem Programm den
Code auslesen?
Gibt es dazu ein spezielles Programm?

Noch was: Wenn Ihr meine Methode so schlecht findet,
dann sagt mir doch bitte, wie ich das machen soll bzw. kann!

Gruß
Alexss95
Bitte warten ..
Mitglied: St-Andreas
08.10.2009 um 09:15 Uhr
Nun wie wäre es wenn Du einfach mit ganz grundlegenden Informationen wie hier anfängst.

Darauf aufbauend kannst Du Dir ja dann überlegen wie Du weiter vorgehen möchtest.
Bitte warten ..
Mitglied: H41mSh1C0R
08.10.2009 um 09:22 Uhr
Also die einfachste Prüfung ist eine Prüfung anhand einer Prüfsumme.

nehmen wir mal das hexadezimalsystem

1 2 3 4 5 6 7 8 9 A B C D E F

nun nimmste nen Code von 5 Blöcken

23FED-18B2F-AADDE-12345-CF3EA

Jetzt kannste darüber z.B. als Prüfsumme die Quersumme bilden: 217 (wenn ich mich nicht vertippt hab )

Jetzt brauchste dir nur noch einen Generator basteln der die "alle" oder nur soviele kombinationen wie du brauchst ausrechnet die diese Quersumme haben und voala. Die Vergabe der einzelnen Schlüssel kann man dann noch an die Personendaten binden und ggf. an eine Onlineaktivierung
und schon ists durch.

Jetzt kannst du analog eine Prüfsumme und Zahlensystem deiner Wahl nehmen und den Generator dementsprechend anpassen und fertig bist du.

Zum Thema Knackbarkeit:

Mit jedem vernümpftigen Debugger kann man die Stellen finden wo die Abfrage drinnen ist und ggf. die Sprungmarken so ändern (mit einem Hexeditor) das die Abfrage garnicht kommt oder Step-by-Step die Berechnung z.B. der Prüfsumme rausfrickeln.

http://de.wikipedia.org/wiki/Debugger
Bitte warten ..
Mitglied: Alexss95
08.10.2009 um 09:31 Uhr
Könntest du mir bitte noch einen Mini-Beispielcode geben?
Bitte warten ..
Mitglied: H41mSh1C0R
09.10.2009 um 00:55 Uhr
NEIN, denn durch stupides C&P lernst du am wenigsten.

Des Weiteren nutzt jeder die Sprache die er selber mag.

Daher nimm dir ein Blatt Papier und zeichne dir die Grundlegenden Abläufe auf die notwendig sind.

In meinem Post steht alles drinnen was du brauchst, du musst dir nur klar werden was du suchst.

1. Such dir ein Zahlen/Zeichensystem aus, kann auch was selbst erdachtes sein, und berechne dir ein paar beispielserials
2. Such dir das Bilden deiner "Prüfsumme/Serialchecks" aus
3. implementiere das in der Sprache deiner Wahl
4. teste deine beispielserials
5. *freu*
Bitte warten ..
Mitglied: Alexss95
09.10.2009 um 16:20 Uhr
Hey,

Ich bin kein fortgeschrittener, geschweige denn ein professioneller
VB-Anwender/Programmierer.

Ich möchte auch nicht die ganze Zeit wieder im i-net suchen, weil
ich das schon getan habe und nix dabei rausgekommen ist.

Deswegen habe ich hier im Forum nachgefragt!

Ich bitte dich einfach nocheinmal:

Könntest du mir BITTE einen Beispielcode zusammenbasteln?
Ich krig das nicht hin...

BITTE!!!

Gruß
Alexss95
Bitte warten ..
Mitglied: H41mSh1C0R
09.10.2009 um 17:37 Uhr
Zitat von Alexss95:
Ich bin kein fortgeschrittener, geschweige denn ein professioneller VB-Anwender/Programmierer.

Ich auch nicht!!! Ich habe mal mit Hilfe von Google + 10min ein Kleines Beispiel unten zusammengebastelt. Meine VBA Zeiten sind schon böse lange her, aber mit Tante Google ging das schon.

Zitat von Alexss95:
Ich möchte auch nicht die ganze Zeit wieder im i-net suchen,
weil ich das schon getan habe und nix dabei rausgekommen ist.

Also eine Maßgeschneiderte Lösung wirst du NIE im Netz finden. Zerlege die Probleme in Teilprobleme und versuche die zu lösen.

Also Zahlensystem, Eingabe, Prüfverfahren, Resultat.

01.
Option Explicit 
02.
 
03.
Private Sub SerialCheck_Click() 
04.
    Dim Text1, Text2, Text3, Text4, Text5 As Integer 
05.
    Dim Zwischensumme, i As Integer 
06.
    Dim Quersumme As Integer 
07.
    Dim Resultat As Integer 
08.
     
09.
    Resultat = 20 
10.
    
11.
    Zwischensumme = TextBox1.Value + TextBox2.Value + TextBox3.Value + TextBox4.Value + TextBox5.Value 
12.
     
13.
    MsgBox (Zwischensumme) 
14.
     
15.
    For i = 1 To Len(Zwischensumme) 
16.
        Quersumme = Quersumme + Val(Mid(Zwischensumme, i, 1)) 
17.
        Sheets("Tabelle1").Cells(i + 1, 2).Value = Quersumme 
18.
    Next i 
19.
     
20.
    MsgBox (Sheets("Tabelle1").Cells(6, 2).Value) 
21.
         
22.
    If Sheets("Tabelle1").Cells(6, 2).Value <= Resultat Then 
23.
         MsgBox ("Der eingegebene Code ist richtig!") 
24.
    Else 
25.
         MsgBox ("Der eingegebene Code ist falsch!") 
26.
    End If 
27.
End Sub
Da ich immer noch nicht rausbekommen habe wie ich hier Bilder hochlade hier die URL:

http://s6.directupload.net/images/091009/cye83b59.png

Das sollte als Anstoss reichen.
Bitte warten ..
Mitglied: Alexss95
09.10.2009 um 18:08 Uhr
Vielen, vielen Dank!!!

Du hast mir echt geholfen!!
Ich hätte das ohne dich wirklich nicht hinbekommen.

Ich teste das ganze sofort!

Danke nochmal,

Gruß
Alexss95
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Netzwerkgrundlagen
IPsec - .conf und .secret erstellen aus Gruppe und User (16)

Frage von MaxMLe zum Thema Netzwerkgrundlagen ...

RedHat, CentOS, Fedora
gelöst Erstellen von Desktopverknüpfungen und Anpassung der Taskleiste (2)

Frage von honeybee zum Thema RedHat, CentOS, Fedora ...

Vmware
ESXI Template erstellen (2)

Frage von Phill93 zum Thema Vmware ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...