Wie schnell kann mein key errechnet werden?

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von FAtheone.

    Wie schnell kann mein key errechnet werden?

    hi,


    ich habe eine app die durch eine serial geschützt ist.
    die serial besteht aus alpha-num und besteht aus 8 4erblocken an zahlen!

    wenn jemand mit brutforce keys ausprobiert... wie lange würde die serial stand halten?
    kann man da von tagen sprechen oder eher nur minuten?

    danke!
    kommt auf die Antwortszeit Deines Programms auf die Eingabe der Serial an.

    Wenn wir mal .NET Code nehmen, so zählt eine einfache Schleife ungefähr in 3 Sekunden bis 1 Milliarde=10^9.
    Genauso nehmen wir mal an Dein Code gibt ohne Verzögerung falsch/richtig auf Eingabe einer Serial aus

    Dann braucht .NET für 10^32 Kombinationen
    - 10^23 * 3 Sekunden ~ 10^16 Jahre (wenn ich mich nicht verrechnet habe)


    Beruhigt Dich das ? :rolleyes:
    1pw.de/brute-force.html

    Mögliche Kombination: 10^32
    Schnellste Keyerzeugung aktuell: 805.640.000 Keys/sec
    benötigte Zeit (in sec) = 123124919318802442778412,19...
    Das in Jahren: ca. 3935975371600787
    Und das mit dem schnellsten Keyerzeuger und ohne Reaktionszeit deines Programms. Du hast gewonnen :)
    Nur du darfst den Algorithmus, der einen Key erzeugt nicht im Prog abspeichern, das nicht vergessen!

    E: Die kriegen das hin weil die herausgefunden haben, wie das Programm einen Key berechnet, also stellen sie eigene her.
    hm dazu fallen mit zwei dinge ein...

    damit sie es errausfinden könnnen müssen sie den quellcode sehen und nachverfolgen... richtig?

    ist es wirklich möglich den quellcode von programmen wieder herzustellen?
    und wie finden sie herraus mit welcher sprache mein prog gschrieben ist?

    das würd mich dan mal echt interessieren ?(
    Wenn das mit .Net geschrieben ist, ist der Quellcode relativ leicht zu beschaffen, dann kann man alles lesen, was du gecodet hast.
    Bei anderen Sprachen, wie C++ kann man den Binärcode höchstens in Assembler kriegen, und das ist ziemlich schwer zu lesen. Am besten lässte du den Code online in einem PhP-Skript testen, da hast nämlich nur du Zugriff.
    Nunja also Serial ist ja kein Passwort, welches nur eine Möglichkeit bietet. Demnach kann man auch nich wirklich den Bruteforce Algo verwenden, also kann man schon, aber ggf. würde man hierbei viel schneller zu einer richtigen Serialnummer gelangen.

    Denn eine Seriennummer setzt sich ja aus einem ganz bestimmten Algorithmus zusammen und es soll ja mehrere Serialnummern geben, du hast einen Algorithmus welcher dann errechnet ob die Nummer eben einie gültige ist. Somit sind ggf. einige Tausend oder Million Seriennummern möglich und dementsprechend einfacherer durch glück eine mit Bruteforce zu erwischen.
    In solchen Key Generatoren wurde der Algorithmus eingespeichert und durch einen Zufallgenerator werden dann eben Serials erstellt die dem gültigen Schema entsprechen.

    Die analysieren nicht das Programm und suchen sich den Algo raus, das wäre natürlich optimal, aber unmöglich.

    Edit: Okay x-Force ist gar kein Programm sondern en Gruppe von Hackern, nun wie die das rausfinden, da JEDES Programm letztendlich in Maschienencode übersetzt werden muss damit der Prozessor es verarbeiten kann und wenn man sich damit auskennt kann man mit einem gewissen Aufwand die Schritte nachverfolgen die dort ablaufen und somit rückschlüsse auf den Algorithmus schließen.

    dravus schrieb:

    also für normalsterblich fernab von gut und böse...?!

    Einen in .NET geschriebenen Code zu lesen und zu verändern ist leider selbst für Normalsterbliche leicht, selbst wenn er obfusciert (~verschleiert) ist. Ich nehme einfach den .NET Reflector und werde auch bei verschlüsseltem Code relativ schnell mit dem Debugger auf Deine SerialCode Prüfung stossen. Das Ergebnis werde ich dann immer auf True setzen, egal welcher Serialkey eingegeben wurde.

    Man kann es erschweren indem man den Code erst im RAM entpackt, was den Schwierigkeitsgrad und den Anspruch an das Programmierwissen erhöht.

    Das Gleiche gilt für Code in Maschinensprache (C), aber auch hier kannst Du mit einem Disassembler zum Ziel kommen, zugegeben nicht so einfach wie bei .NET.

    Grundsätzlich gilt: alles ist knackbar, nur halt mit unterschiedlichem Aufwand.
    Maschinensprache <<>> C (völlig verschieden)

    Maschinensprache hängt sogar von der Prozessorarchitektur ab (bzw. dem verwaltetem Adressbereich)
    In Assembliertem code geht man mit einem Debugger durch und sucht meistens nur den Exitpoint.
    D.h. das Programm kann zwar wissen, dass die Serial falsch ist, beendet sich aber nicht. (= Patchen)
    Bei Keygens finden sie einen verwendeten Algorithmus (es gibt sozusagen ein paar nach Schema-F) und replizieren dann den Generator (Meistens mit einer art "Wasserzeichen" in Form einer immer auftretenden Gruppe - z.B. "1337" o.ä.).

    Crackbar ist alles; die Frage ist meistens nach Kosten (Resourcen) / Nutzen (Wert des Programms) / Ehre (Stärke des Algorithmus), ob es dann tatsächlich gemacht wird.
    Wenn dein Programm so geschützt wäre, wie Adobes CS, würde sich wahrscheinlich keiner dranwagen, weil das Programm zu wenig Nutzen hat :)