wie man crackt

Dieses Thema im Forum "Security Tutorials" wurde erstellt von xodox, 18. August 2005 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 18. August 2005
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    in diesem Beitrag geht es um die Analyse des TBM-Crackme1. Ziel ist es einen Keygenerator zu erstellen, Patchen des Targets ist nicht erlaubt.

    1. Vorbereitungen
    Ladet euch aus dem Anhang dieses Beitrags die ZIP-Datei, diese enthält das Crackme und meinen Keygenerator.

    Ich verwende folgende Tools:
    - PEiD [[http://peid.has.it/]http://peid.has.it/[/URL]]
    - OllyDbg [ peid8nx.png
    {img-src: //imageshack.us/a/img237/6420/peid8nx.png}

    kanal4be.png
    {img-src: //imageshack.us/a/img237/2876/kanal4be.png}


    Sieht ja schonmal sehr gut aus, keine Packer und keine Crypto Algorithmen (Wäre auch etwas hart fürn Level 1 Crackme).

    Nun laden wir das Crackme in OllyDbg. Danach kommen die folgenden Schritte

    1.) Alt+F1 und dann bpx GetDlgItemTextA
    Damit haben wir einen Breakpoint auf die Funktion zum Abrufen des Textes aus der Textbox gesetzt.
    2.) Startet das Target mit "F9" (F9 = RUN, F8 = Step over, F7 = Step into)
    3.) Tragt als User "XodoX" und als Serial "123456" ein
    4.) Klickt auf "Check"
    5.) Ihr landet in OllyDbg, es folgt nun ein Bild in dem ich den Algorithmus im OllyDbg dokumentiert habe (Stept mit F8 durch, dann könnt ihr (hoffentlich) alles nachvollziehen...)

    olly2ca.png
    {img-src: //imageshack.us/a/img301/8395/olly2ca.png}


    3. Algorithmus in C
    Code:
    char user[256];
    char *charatleast = "Please enter at least 5 chars!";
    char *charmaximal = "Please do not enter more than 10 chars!";
    int serial=0;
    int len=0,i=0,b=0,c=0;
    
    len = GetDlgItemTextA(hwndDlg, ID_NAMEFIELD, user, 15);
    
    if (len < 5)
    {
     SetDlgItemTextA(hwndDlg, ID_SERIALFIELD, charatleast);
     return FALSE;
    }
    
    if (len > 10)
    {
     SetDlgItemTextA(hwndDlg, ID_SERIALFIELD, charmaximal);
     return FALSE;
    }
    
    /* Serial routine */
    
    for(i=0;i<=3;i++)
    {
     serial += user[i];
    }
    
    /* imul EDI, ESI */
    b=serial * 0x20000;
    
    switch(len)
    {
     case 1 : c=0x66 % 1; break;
     case 2 : c=0x65 % 2; break;
     case 3 : c=0x61 % 3; break;
     case 4 : c=0x72 % 4; break;
     case 5 : c=0x6F % 5; break;
     case 6 : c=0x4C % 6; break;
     case 7 : c=0x75 % 7; break;
     case 8 : c=0x41 % 8; break;
     case 9 : c=0x74 % 9; break;
     case 10 : c=0x52 % 10; break;
    }
    
    /* xor */
    serial=b^c;
    
    /* serial contains Serial... send it to form */
    
    Crackme:
    http://rapidshare.de/files/4124949/crackme1.rar.html

    hint: dies sind wirklich die Basics und sehr leicht. Bei Spielen usw ist der Serial-Algo sicherlich nicht so einfach.
     
  2. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.