Einen richtigen KeyGenerator Programmieren
Übersicht

![]() |
klinBetreff: Einen richtigen KeyGenerator Programmieren |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo leute,
ich habe mich mal ein wenig über sicherheit bzw. keys beschäftigt. Da viele Programme sogennante keys (schlüsseln) benutzen, war dies natürlich eine top sache. Doch wartet mal.. Die meisten Programmen können den Code OFFLINE abfragen? Also jedesmal wenn ich einen key eingebe weiß das Programm sofort ob dieser key stimmt oder nicht. Mir wurde mal erzählt dass die das durch eine "art" Quersumme erledigen. Aber sehr wenige meinten, das die Programme eine Datenbank alle Schlüssel gespeichert hätten. Was ich aber bezweifele (Hex öffnen und auslesen)... Mal angenommen die anderen hatten recht mit dieser "art" Quersumme, wüsste dann zufällig jemand wie man diesen Code generieren kann damits eine "art" Quersumme ergibt? Und wie kann ich dann auch diesen Code in eine "art" Quersumme umwandeln? Wer natürlich auch weiß wie die keys anders funktionieren kanns gerne Posten ![]() THX MFG Klin |
||
- Zuletzt bearbeitet von klin am So, Jan 10, 2010 2:45, insgesamt einmal bearbeitet
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
Für die Quersumme musst du ja nur alle Zahlen des Keys addieren, sollten Ziffern vorkommen, so könnte man das mit der ASCII-Code machen.
zum generieren wäre es am einfachsten, dass du jedem Block eine Quersumme vorgibst und diesem Block dann Zeichen für Zeichen hinzufügst, die Quersumme muss natürlich ausreichend sein, damit auch das letzte Zeichen gesetzt werden kann, sie darf aber auch nicht zu niedrig sein, damit kein Rest übrig bleibt. So würde ich es nach deiner Frage intuitiv machen, es wird aber mit sicherheit auch noch andere Algorithmen geben, um solche Shlüssel zu generieren und abzufragen. |
||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
n-Halbleiter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Was ich mir vorstellen könnte, ist, dass die einzelnen Blöcke - oder auch der gesamte Key - durch einen Hashalgorithmus gejagt wird, der gewollt Kollisionen erzeugt. So kann man dann mit verschiedenen Keys den gleichen Hashwert erhalten. Es müsste also nur auf diesen Wert (der im günstigsten Fall natürlich kurz gehalten ist) geprüft werden... | ||
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit Ploing! Blog "Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935) |
![]() |
klin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also Über Hash wäre auch mal eine idee.. jedoch müssten doch die keys fast gleich aussehen oder? Nunja.. was meine größte sorge dabei ist, ist wenn z.B. ein fremder Key die gleiche quersumme hat. Wie z.B.
Quersumme = 3 Mein key: 21 (2+1) so.. nun geht aber ein anderer hin und erfindet auf gut doof einen: 12 (2+1) Wie könnte man denn sowas verhindern bzw. überprüfen? THX MFG Klin |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mal rechnen: Wenn es 5 Blöcke mit je 4 Zahlen von 0 bis 9 gibt, gibt es 37 Quersummen pro Block.
Die Chance die richtige in einem Block zu treffen ist also 1/37 = 2,7 % Nun gibt es 5 dieser Blöcke. Also ist die Wahrscheinlichkeit in allen 5 Blöcken die richtige Quersumme zu haben: (1/37)^5 = 0,0000014 % Stimmts? |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
ThunderBetreff: Re: Einen richtigen KeyGenearator Programmieren |
![]() Antworten mit Zitat ![]() |
---|---|---|
klin hat Folgendes geschrieben: ...Die meisten Programmen können den Code OFFLINE abfragen? Also jedesmal wenn ich einen key eingebe weiß das Programm sofort ob dieser key stimmt oder nicht. Mir wurde mal erzählt dass die das durch eine "art" Quersumme erledigen. Aber sehr wenige meinten, das die Programme eine Datenbank alle Schlüssel gespeichert hätten. Was ich aber bezweifele (Hex öffnen und auslesen)...
Die meisten Programme, die den Code offline überprüfen erledigen das über komplexe Berechnungen. Eine Datenbank in den Programmen(mit den ECHTEN Schlüsseln) halte ich für unwahrscheinlich. Vielleicht ist das was du gefunden hast nur ein Code mit dem der Schlüssel berechnet wird. Quersumme ist auch möglich, aber wahrscheinlich unsicher. Die besten Methoden beim Thema Sicherheit ist das Selbstentschlüsseln/Selbstentpacken des Programms. Außerdem hat da eigentlich jedes Programm/jede Firma ihre eigenen Verfahren. Ich habe mich in letzter Zeit sehr viel mit PatchMe's, CrackMe's und KeygenMe's auseinandergesetzt. Es ist ganz lustig, aber einen Keygenerator für ein Programm zu schreiben, das eine halbwegs gute Methode hat, dauert schon lange. mfg Thunder |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
![]() |
Midimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
@nicdel
stimmt nicht ganz I: die Quersumme 14 kommt z.b. in 7,5% alle möglichen Fälle vor und stimmt nicht ganz II: die Wahrscheinlichkeit gilt nur, wenn keiner deinen Plan durchschaut. und stimmt nicht ganz III: für BruteForce-Angriffe ist 0,0000014 % immer noch kein Problem innerhalb 1 Sekunde den Code zu knacken. Tipp: bau was ein, was die Neueingabe des Codes oder das Restarten des Programms verzögert, wenn die vorherige Eingabe falsch war. Fake eine 1 Sekunden lange "Prüfung des Codes". So dauern 10.000 Angriffe immerhin schon 3 Stunden. Tipp 2: Bau noch ne zweite Rechenaufgabe mit den Ergebnissen der Quersumme Tipp3: Bau noch nen Zusammenhang zwischen Blocks ein, etwa: Block II wird multipliziert mit Block IV. Die letzten 3 Stellen davon ergeben 3 Stellen im Block I. War das Ergebnis der Multilpikation gerade sind es die ersten drei Stellen, war das Ergebnis ungerade sind es die letzten drei Stellen im Block I. So in der Art.... |
||
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, die Schlüssel sind nach einem bestimmtem Algorithmus aufgebaut, sodass, wenn man einen anderen Algorithmus darauf anwendet ein bestimmtes Schema/ein Wert/… herauskommt.
Es gibt einige (viele?) Programme, bei denen Cracker diese Algos herausgefunden haben – weshalb es für diese Programme auch KeyGens gibt. |
||
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Midimaster hat Folgendes geschrieben: Tipp: bau was ein, was die Neueingabe des Codes oder das Restarten des Programms verzögert, wenn die vorherige Eingabe falsch war. Fake eine 1 Sekunden lange "Prüfung des Codes". So dauern 10.000 Angriffe immerhin schon 3 Stunden.
Keine schlechte Idee, aber die Leute, die einen Keygenerator für ein Programm bauen, kennen solche Routinen und können sie ganz leicht patchen. Wirklich sicher sind selbstgebastelte entpackmethoden. Allerdings: Je länger/komplizierter die Funktion ist, die aus dem Key einen Wert errechnet ist, desto schwieriger wird es all das nachzuvollziehen und einen Keygenerator zu erstellen. Ein halbwegs sicheres Programm hat/verwendet: - eine komplizierte Berechnungsmethode(verschachtelte Schleifen, viele Variablen, Rekursion, ...) - keine (visuelle) Reaktion bei falschem/richtigen Code (d.h. keine Messagebox. Die hilft nur beim patchen) - wenige vorprogrammierten Funktionen(libc, BB/BMax Funktionen sind relativ sicher assembliert) Wenn du wirklich auf Nummer sicher gehen willst(was du wahrscheinlich aber praktisch nie brauchen wirst) ist ein Code-Teil in der Exe datei, der den Rest entpackt - wie bei upx. Ist auch nur sehr schwer umsetzbar. mfg Thunder |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group