[RCE] Crack mich

Dieses Thema im Forum "Sicherheit & Datenschutz" wurde erstellt von N0S, 31. Mai 2008 .

Schlagworte:
  1. 31. Mai 2008
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    Ich würde gerne mal sehen wie groß in RR das interesse an Reverse Engineering oder besser Reverse Code Engineering ist. Weil ich finde in RR fehlen einfach Threads zu so einem Thema. Es ist zwar recht kompliziert, macht aber trotzdem viel Spaß, wenn man erstmal den "dreh" raus hat.
    Vorallem ist es sehr schade das es nur 3 deutsche reversing boards gibt (1 davon ist schon ne weile down) und in den anderen 2 boards ist die aktivität bei praktisch null... haben höchstens 10 verschiedene user pro tag...

    Ich hab mal zur einführung 3 crackmes gemacht:

    No File | xup.in
    No File | xup.in
    No File | xup.in

    Aufgaben:
    #01: Nachrichten boxen entfernen (Schwierigkeit: 1/100)
    #02: Nachrichten boxen entfernen (Schwierigkeit: 2/100)
    #03: Jedes Passwort soll richtig sein (Schwierigkeit: 1/100)

    Lösungen bzw. patch details bitte im spoiler tag posten
    Spoiler
    so [.SPOILER][./SPOILER] (ohne punkt)
    Aber bitte nicht zu schnell posten, erst nach ein paar stunden...

    Es gab schon einmal so einen Ansatz, aber würde dann leider nicht weitergeführt und die crackme's waren auch nicht gerade so toll, vorallem waren einige dann gleich viel schwerer...

    Ich bin sicher es gibt hier viele Leute die sich zwar dafür interessieren, aber noch keine Ahnung davon haben. Die werden dann vielleicht sogar auch schwierigkeiten mit diesen 3 crackme's haben, aber Reversing kann man lernen

    Ich bitte jeden der sich für Reverse Engineering interessiert sich hier zu bedanken (Bedanken Button!), damit man mal sehen kann ob es sich lohnt mehr in diese richtung zu posten


    Lösungen:

    Spoiler
    #01:
    Ich habe für das erste crackme mal eine kleine Anleitung gemacht wie ihr es leicht lösen könnt ohne vorwissen, es geht natürlich auch schneller, aber ich denke so lernt man es am besten?

    No File | xup.in

    #02
    No File | xup.in

    Neues crackme, es ist eine verbesserte version von crackme03:
    No File | xup.in
    #04: Jedes Passwort soll richtig sein (Schwierigkeit: 2/100)

    crackme05:
    No File | xup.in
    #05: Das Programm soll immer registriert sein (Schwierigkeit: 2/100)
     
  2. 31. Mai 2008
    AW: [RCE] Crack mich

    Ich habe zwar nur eine grobe Ahnung, was Reverse Code Engineering ist, aber ich werde mich da mal reinarbeiten =).
     
  3. 31. Mai 2008
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: [RCE] Crack mich

    wer gar keine ahnung hat für den hab ich hier was. Ein Einführungstutorial von lena... wenn ihr diesen tutorial angeschaut + verstanden habt dann solltet ihr die crackme's schaffen

    Download: 2010-07-22_212929.jpg | xup.in
     
  4. 31. Mai 2008
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: [RCE] Crack mich

    Hey ; genau das schau ich mir grade an =) ^^ (Google ^^)

    Mfg Alex²
     
  5. 31. Mai 2008
    AW: [RCE] Crack mich

    Hi,

    um dir einfach mal meine Ansicht zu sagen:

    RCE ist eine brotlose Kunst. Man hat nichts davon (oder?), ganz im gegenteil zum normalen Programmieren.

    Ich für meinen Teil sehe keinen Sinn darin dies zu lernen. Klar sehr interessant! Ich hab großes Interesse daran es zu können. Aber das ganze Zeug komplett zu lernen...Naja weiß nicht, dazu fehlt mir einfach die Zeit!

    So kommerz das Klingt: Leider kein Interesse
     
  6. 31. Mai 2008
    AW: [RCE] Crack mich

    hab auch mal aufs tut zurückgeriffen

    habe aber schon durch ausprobieren bei teil 1 die 2te errorbox weggekriegt :-D
     
  7. 31. Mai 2008
    AW: [RCE] Crack mich

    programmieren ist genauso brotlos
    Mit programmieren kannst du auch nur geld verdienen wenn du richtig gut bist... ausserdem gehört reversing auch zu programmieren, gute programmierer können es jedenfalls...
    Aber es macht viel mehr spaß als programmieren und es ist ungefähr genauso sinnlos wie hacken
     
  8. 31. Mai 2008
    AW: [RCE] Crack mich

    crackme 1
    Spoiler
    calls @ 0040286D und 0040298D nopen
    crackme 2
    Spoiler
    calls @ 004034A0 und 004033B0 nopen
    crackme 3
    Spoiler
    je 00402C1F @ 00402B06 zu jmp 00402B9E
     
  9. 31. Mai 2008
    AW: [RCE] Crack mich

    Hab zwar (noch) sehr wenig ahnung vom Rce aber den ersten hab ich ohne tut geschafft. Naja werd mich mal an den anderen versuchen aber Thread ermutigt mich doch, mich mal ein wenig hier einzuarbeiten.
    Edit:
    So hab die anderen nun auch geschafft (beim 2ten musste ich mal bei dapumaX spitzen wegen der ersten adresse. Aber als ich dann die suchfunktion von w32dasm gefunden hab, hab ich die 2te dan allein gefunden ;-).
    1+2 Lösung wie dapumaX
    3te hab ich so:
    Spoiler
    @00402C58 aus: C7 45 98 9C 27 40 00 89 75 90 FF D7 8D 55 A0 8D 45 B0 52 8D zu C7 45 98 78 27 40 00 89 75 90 FF D7 8D 45 A0 8D 4D B0 50 8D
    Ruft allerdings nur die Message box auf, aber er nimmts an ;-)
    PS: Ja ich bin noch blutiger anfänger
     
  10. 31. Mai 2008
    AW: [RCE] Crack mich

    jo gut^^ aber wie fast immer ist das nicht die einzige möglichkeit Wer noch andere lösungen hat kann sie auch posten^^ obwohl es ja fast ne dumme aufforderung ist bei so einem leichten crackme aber was solls, wer was lernen will freut sich darüber sicher
     
  11. 31. Mai 2008
    AW: [RCE] Crack mich

    Gar keine so schlechte Idee, falls hier einige Leute interesse hätten das Cracken/Hacken/Patchen
    von Programmen sich anzueignen wär ich vl noch bereit ein paar crackmes und Lösungen/Tuturials dazu zu machen.
    Bin auch als Resolver dabei, also was auch immer ich bin dabei ^^

    An die Leute die sich mal was mehr zu trauen den empfehle ich mal sich
    an TuneUp Utilities 2008 ran zu setzen und mal versuchen das Reg-Fenster
    zu entfernen. Hab es auch gemacht und muss sagen es hat ziemlich viel Spass
    gemacht und so schwer war es auch nicht, deswegen .....

    Mfg Rushh0ur
     
  12. 31. Mai 2008
    AW: [RCE] Crack mich

    Find deinen Ansatz sehr gut: Wie wärs mit nem Thread in der UG-Lounge oder sonst wo, in welchem richtige Programme "angeboten" werden können?
    Das heißt man postet die Trial eines Programmes und gibt die Schwierigkeit an. (Logischerweise muss der Poster das Programm vorher selbst erfolgreich reversed haben)
    Eine Lösung im Spoiler wär dort sicher auch nicht schlecht.

    Das hier Threads zu dem Thema fehlen liegt einfach daran das nur die wenigstens gescheite Crackme's oder ähnliches schreiben können und kommerzielle Programme in dem Bereich hier nicht erlaubt sind.
     
  13. 31. Mai 2008
    AW: [RCE] Crack mich

    Ich hab schon Interesse das zu lernen - also paar extra Tutorials wärecn echt super - zwei drei anfänger tuts und dann noch ein paar die dann noch genauer sind. Ich kann jedoch noch nicht programmieren, ich denke deswegen wird es mir erst recht schwerfallen, aber ich werds probieren.
     
  14. 31. Mai 2008
    AW: [RCE] Crack mich

    jo muss auch zugeben das vb6 nicht gerade die beste programmiersprache ist für crackme's^^ mag es selber auch nicht so vb6 programme zu reversen...

    Ist es den überhaupt illegal lösungswege zum cracken von programme zu posten? fertige cracks, keygens sind klar illegal, quellcodes von keygens wohl auch, aber ist das wissen wie man etwas macht schon illegal? Wenn es nicht gerade einen schritt für schritt tutorial ist...
     
  15. 31. Mai 2008
    AW: [RCE] Crack mich

    ich bin mir nicht so sicher, aber kann ja mit diesen von wegen lernzwecken sein, um sein eigenes programm sicherer zu machen. aber wenn es keine schritt für schritt anleitung ist, müsste es "legal" sein.
    ich schau mich schon in diversen foren um

    zur not frag ich halt n bekannten :-D
     
  16. 31. Mai 2008
    AW: [RCE] Crack mich

    Solange man z.b. nur die entscheidenden Calls kommentiert ohne Änderungen am Code durchzuführen sollte es meiner Meinung nach (l)egal sein.
    Das Verwenden von einem Hexeditor an sich ist ja auch nicht strafbar...
    Hab aber keine 100% Garantie dafür

    Man müsste halt Regeln festgelegen wie:
    Änderungen am Code dürfen nicht gepostet werden.
    Für Keygens ist ausschließlich Pseudocode zu verwenden.

    Jeder der einigermaßen Reversen kann braucht eigentlich nur die Offsets der entscheidenden Calls, ein paar Kommentare und vllt. die Angabe einer Möglichkeit um Packer etc. zu umgehen.

    Die Angaben was genau zu Ändern ist, sind ja nicht von Bedeutung.
    (Für Tutorials sollte einfach nicht-kommerzielle Software verwendet werden)
     
  17. 31. Mai 2008
    AW: [RCE] Crack mich

    Etwas zu wissen ist nicht illegal, höchstens gefährlich. Das ist ja allgemein bekannt, ...
    Also ich denke wir können da ruhig Lösungsvorschläge etcetera posten - zur Not im UG
     
  18. 1. Juni 2008
    AW: [RCE] Crack mich

    sorry da muss ich dich enttäuschen, das ist leider nicht ganz die lösung Der text stimmt zwar, aber es ist die falsche nachrichten box (roter kreis mit weissem X)
    hier mal ein mögliches passwort zum ausprobieren:
    Spoiler
    001aaaa001
     
  19. 2. Juni 2008
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: [RCE] Crack mich

    hab ned gemerkt was ich geändert habe daher hier die gefixten exe dateien:

    No File | xup.in

    // auf N0S' wunsch nochmal meine lösung zu crackme3:

    Spoiler
    nop von 00402A49 . /0F84 3F020000 JE CRACKME0.00402C8E

    nop von 00402B06 . /0F84 13010000 JE CRACKME0.00402C1F

    nop von 00402B57 . /0F84 C0000000 JE CRACKME0.00402C1D

    nop von 00402B9C . /74 7F JE SHORT CRACKME0.00402C1D

    Knusperkeks
     
  20. 2. Juni 2008
    AW: [RCE] Crack mich

    Das nächste mal darf's ruhig schwerer sein *g*

    Spoiler
    Patcher:
    Spoiler
    Code:
    #include <stdio.h>
    #include <string.h>
    
    #pragma warning( disable: 4996 ) // disabling unsecure warnings
    
    #define MSG_PATCH "\x90\x90\x90\x90\x90\x90"
    #define JMP_PATCH "\xE9\x50\x01\x00\x00"
    
    const char g_c_acFiles[3][14] = 
    {
     "CRACKME01.exe",
     "CRACKME02.exe",
     "CRACKME03.exe",
    };
    
    const long g_c_alOffsets[] =
    {
     0x0000286D, // CRACKME01
     0x0000298D, // CRACKME01
     0x000033B0, // CRACKME02
     0x000034A0, // CRACKME02
     0x00002A49, // CRACKME03 JE OFFSET
    };
    
    int main( void )
    {
     FILE *crackme1 = fopen( g_c_acFiles[0], "r+" );
     FILE *crackme2 = fopen( g_c_acFiles[1], "r+" );
     FILE *crackme3 = fopen( g_c_acFiles[2], "r+" );
    
     if( NULL == crackme1
     || NULL == crackme2
     || NULL == crackme3 )
     {
     perror("unable to patch");
     return -1;
     }
    
     //
     // Patch first crackme
     // 
     fseek( crackme1, g_c_alOffsets[0], SEEK_SET );
     fwrite( MSG_PATCH, sizeof(MSG_PATCH), 1, crackme1 );
     fseek( crackme1, g_c_alOffsets[1], SEEK_SET );
     fwrite( MSG_PATCH, sizeof(MSG_PATCH), 1, crackme1 );
     
     fclose( crackme1 );
     //
     // Patch second crackme
     //
     fseek( crackme2, g_c_alOffsets[2], SEEK_SET );
     fwrite( MSG_PATCH, sizeof(MSG_PATCH), 1, crackme2 );
     fseek( crackme2, g_c_alOffsets[3], SEEK_SET );
     fwrite( MSG_PATCH, sizeof(MSG_PATCH), 1, crackme2 );
     fclose( crackme2 );
     //
     // Patch third crackme
     //
     fseek( crackme3, g_c_alOffsets[4], SEEK_SET );
     fwrite( JMP_PATCH, sizeof(JMP_PATCH), 1, crackme3 );
     fclose( crackme3 );
    
     return 0;
    }

    crackme1 & 2: messagebox call mit nops überschreiben.
    crackme3: einfach über die auswertung der string vergleichung springen.
     
  21. 2. Juni 2008
    AW: [RCE] Crack mich

    crackme 1

    Spoiler
    pachten offset 00028E0 -> c3 und 000027C0 -> c3
     
  22. 2. Juni 2008
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: [RCE] Crack mich

    ich habe mal ne kleine anleitung/tutorial zum lösen des ersten crackme's gemacht... damit sollte es jeder verstehen^^

    hab auch noch ein neues crackme gemacht, weil viele sich beschwert haben man kann direkt jumpen beim 3., das geht jetzt nichtmehr so gut^^

    No File | xup.in

    immernoch sehr leicht
     
  23. 2. Juni 2008
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: [RCE] Crack mich

    Crackme04:
    Spoiler
    00402B96 /0F84 3A030000 JE CRACKME0.00402ED6

    00402C63 /0F8C EE020000 JL CRACKME0.00402F57

    00402CFD /0F84 54020000 JE CRACKME0.00402F57

    00402D97 /0F85 BA010000 JNZ CRACKME0.00402F57

    00402DF0 FF15 4C104000 CALL DWORD PTR DS:[<&MSVBVM60.#632>] ; MSVBVM60.rtcMidCharVar

    alle nop'en

    hier die exe: No File | xup.in

    die neue Crackme04:

    Spoiler
    00402DF0 FF15 4C104000 CALL DWORD PTR DS:[<&MSVBVM60.#632>] ; MSVBVM60.rtcMidCharVar

    00402BF4 /0F8C A4020000 JL CRACKME0.00402E9E

    00402C8B /0F84 0D020000 JE CRACKME0.00402E9E

    00402D29 /0F85 6D010000 JNZ CRACKME0.00402E9C

    00402D38 /0F85 5E010000 JNZ CRACKME0.00402E9C

    alle nop'en

    hier die exe: No File | xup.in
     
  24. 3. Juni 2008
    AW: [RCE] Crack mich

    Spoiler
    Patcher:
    Spoiler
    Code:
    #include <stdio.h>
    #include <string.h>
    
    #pragma warning( disable: 4996 ) // disabling unsecure warnings
    
    #define MSG_PATCH "\x90\x90\x90\x90\x90\x90"
    #define JMP_PATCH "\xE9\x50\x01\x00\x00"
    #define JMP_PATCH2 "\xE9\x6E\xFF\xFF\xFF"
    #define JMP_PATCH3 "\xE9\xED\xFe\xFF\xFF"
    
    const char g_c_acFiles[4][14] = 
    {
     "CRACKME01.exe",
     "CRACKME02.exe",
     "CRACKME03.exe",
     "CRACKME04.exe",
    };
    
    const long g_c_alOffsets[] =
    {
     0x0000286D, // CRACKME01
     0x0000298D, // CRACKME01
     0x000033B0, // CRACKME02
     0x000034A0, // CRACKME02
     0x00002A49, // CRACKME03
     0x00002EC8, // CRACKME04
     0x00002F49, // CRACKME04
    };
    
    int main( void )
    {
     FILE *crackme1 = fopen( g_c_acFiles[0], "r+" );
     FILE *crackme2 = fopen( g_c_acFiles[1], "r+" );
     FILE *crackme3 = fopen( g_c_acFiles[2], "r+" );
     FILE *crackme4 = fopen( g_c_acFiles[3], "r+" );
    
     if( NULL == crackme1
     || NULL == crackme2
     || NULL == crackme3
     || NULL == crackme4 )
     {
     perror("unable to patch");
     return -1;
     }
    
     //
     // Patch first crackme
     // 
     fseek( crackme1, g_c_alOffsets[0], SEEK_SET );
     fwrite( MSG_PATCH, sizeof(MSG_PATCH), 1, crackme1 );
     fseek( crackme1, g_c_alOffsets[1], SEEK_SET );
     fwrite( MSG_PATCH, sizeof(MSG_PATCH), 1, crackme1 );
     
     fclose( crackme1 );
     //
     // Patch second crackme
     //
     fseek( crackme2, g_c_alOffsets[2], SEEK_SET );
     fwrite( MSG_PATCH, sizeof(MSG_PATCH), 1, crackme2 );
     fseek( crackme2, g_c_alOffsets[3], SEEK_SET );
     fwrite( MSG_PATCH, sizeof(MSG_PATCH), 1, crackme2 );
     fclose( crackme2 );
     //
     // Patch third crackme
     //
     fseek( crackme3, g_c_alOffsets[4], SEEK_SET );
     fwrite( JMP_PATCH, sizeof(JMP_PATCH), 1, crackme3 );
     fclose( crackme3 );
     //
     // Patch fourth crackme
     //
     fseek( crackme4, g_c_alOffsets[5], SEEK_SET );
     fwrite( JMP_PATCH2, sizeof(JMP_PATCH2), 1, crackme4 );
     fseek( crackme4, g_c_alOffsets[6], SEEK_SET );
     fwrite( JMP_PATCH3, sizeof(JMP_PATCH3), 1, crackme4 );
     fclose( crackme4 );
    
     return 0;
    }

    JMP
    VON NACH
    00002EC8 -> 00002E3B
    00002F49 -> 00002E3B
     
  25. 3. Juni 2008
    Zuletzt von einem Moderator bearbeitet: 14. April 2017
    AW: [RCE] Crack mich

    so ...alle 3 geschafft^^
    hab ma die fixxed files geuppt !
    Spoiler
    No File | xup.in


    EDIT// crackme04 auch geschafft...hier die fixxed exe
    Spoiler
    No File | xup.in


    mfg svent
     
  26. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.