Hackerboard WikiHaboBlog

[HaBo]

 
Hacks & Crackmes Tests, Fragen oder Hilfestellungen. Crackmes und Hackits werden hier diskutiert.

Sehr einfaches CrackMe

Diskussion: Sehr einfaches CrackMe im Forum Hacks & Crackmes, in der Kategorie Software Home; Diese CrackMe ist für Anfänger gedacht, da es sehr leicht zu lösen ist. Einfach das Passwort reusfinden. Alle Tools sind ...

Antwort
Alt 30.11.08, 02:46   #1 (permalink)
 
Benutzerbild von Wotan
 
Registriert seit: 14.10.07
Wotan Leistung: Facit NTK
Wotan eine Nachricht über ICQ schicken
Likes: 0
Sehr einfaches CrackMe


Diese CrackMe ist für Anfänger gedacht, da es sehr leicht zu lösen ist.
Einfach das Passwort reusfinden. Alle Tools sind erlaubt!
Viel spaß!

LG Wotan

Angehängte Dateien
Dateityp: rar CrackMe.rar (156,5 KB, 436x aufgerufen)
__________________
"Dreaming in Digital, Living in realtime, Thinking in binary, Talking in IP, Welcome to our World" C.O.R.E. (Challenge of Reverse Engineering)
Wotan ist offline   Mit Zitat antworten
Alt 29.12.08, 11:37   #2 (permalink)
 
Registriert seit: 15.08.08
Nik-o Leistung: Facit NTK
Likes: 0
Standard

Hi
Also ich wil mich da jetz auch ma dran probieren!

habs mir geladen un hab bei HaboWiki en bissi rumgestöbert un bin da auf ollyDbg gestoßen. Hab mir das jez auch geladen un es ma ausprobiert.

Ich versteh zwar ansatzweise die Vorgehensweise des Debuggers aber kapier auch nach langen grübeln nich wie man da jetzt die Vorraussetzun für das Passwort herausfinden kann. Da ich nirgentso eine anleitung () dafür gefunden habe aber es trozdem mal gerne verstehen würde wollt ichs noch ma hier probiern, da das hier bestimmt die Hälfte aller Mitglieder können.

MfG Nik-O
Nik-o ist offline   Mit Zitat antworten
   
HaBOT
 

Werbung ist gerade online    
Alt 29.12.08, 12:22   #3 (permalink)
CDW
Moderator
 
Benutzerbild von CDW
 
Registriert seit: 20.07.05
CDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: OpteronCDW Leistung: Opteron
Likes: 156
Standard

Die Frage nach reiner Olly Bedienung hatten wir schon öfters - ein Tipp wäre http://www.tuts4you.com/download.php?list.17

vom Prinzip her: finde die Stelle, an der die Fehlermeldung ausgegeben wird (z.B in dem man die Fehlermeldung beobachtet und dann nach Vorkommen/Nutzung (Referenzierung) solcher Strings schaut ) und schau, was so in der Nähe los ist - ob da z.B rein zufällig eine Serialprüfung stattfindet
__________________
Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf!
Selig, wer nichts zu sagen hat und trotzdem schweigt.
CDW ist offline   Mit Zitat antworten
Alt 29.12.08, 12:30   #4 (permalink)
 
Registriert seit: 15.08.08
Nik-o Leistung: Facit NTK
Likes: 0
Standard

Danke für den Tip

ich versuchs ma^^

Edit: Naja ich verstehs immer noch nich warscheinlich bin ich doch zu blöd^^
Nik-o ist offline   Mit Zitat antworten
Alt 29.12.08, 14:56   #5 (permalink)
 
Benutzerbild von Eydeet
 
Registriert seit: 14.04.06
Eydeet Leistung: Facit NTK
Likes: 4
Standard

Ich hab?s gelöst :-)
   
Die Prüfroutine ist relativ leicht zu finden (Tipp: ?Search for all referenced text strings?).
Dort fällt folgendes If-Konstrukt auf:
Code:
0040148E   .  8B0D DCAB4300 MOV ECX,DWORD PTR DS:[43ABDC]
00401494   .  3B0D D8AB4300 CMP ECX,DWORD PTR DS:[43ABD8]
0040149A   .  75 16         JNZ SHORT CrackMe.004014B2
0040149C   .  6A 30         PUSH 30
0040149E   .  B9 70644300   MOV ECX,CrackMe.00436470
004014A3   .  BA 60644300   MOV EDX,CrackMe.00436460                 ;  ASCII "Passwort Korekt"
004014A8   .  A1 88AC4300   MOV EAX,DWORD PTR DS:[43AC88]
004014AD   .  E8 26810200   CALL CrackMe.004295D8
Der ?conditional jump? @ 0040149A entscheidet darüber, ob der ?Good Boy? angezeigt wird, oder nicht. Die Bedingung wird durch den Befehl ?CMP? in der Zeile darüber festgelegt, der zwei Speicheradressen vergleicht (43ABDC und 43ABD8 ).

Eine der beiden wird kurz darüber festgelegt und verändert sich auch bis zur Abfrage nicht:
Code:
00401433   .  C705 D8AB4300>MOV DWORD PTR DS:[43ABD8],7C23
Die andere wird danach hier definiert:
Code:
00401474   .  E8 BF5F0200   CALL CrackMe.00427438
00401479   .  A3 DCAB4300   MOV DWORD PTR DS:[43ABDC],EAX
EAX wird von Calls so gut wie immer verändert, deshalb ist davon auszugehen, dass der Call davor die Serial generiert. Nachdem ich mir diesen Call genauer angeschaut habe, habe ich festgestellt, dass er einfach nur das Passwort in eine Zahl umwandelt, das Passwort lautet also $7C23 oder x7c23, 0x7C23, 31779, ... ;)
Eydeet ist offline   Mit Zitat antworten
Alt 29.12.08, 15:25   #6 (permalink)
 
Benutzerbild von mauralix
 
Registriert seit: 17.04.06
mauralix Leistung: 8086
Likes: 3
Standard

Ich kann die Lösung schon nachvollziehen, ist ja nicht besonders kompliziert. Allerdings habe ich ein Problem beim Debuggen. Mir kommt so vor als würde bei falschen Passwörtern eine Accessviolation verursacht.

Ollydbg meldet:Accessviolation when writing to 0000FF80 use Shift+F7/F8/F9 to pass Exception to program.
Und man landet dann im Modul Kernel32 bei RtlRaiseException.

Ist das gewollt?
mauralix ist offline   Mit Zitat antworten
Alt 29.12.08, 23:07   #7 (permalink)
 
Benutzerbild von Eydeet
 
Registriert seit: 14.04.06
Eydeet Leistung: Facit NTK
Likes: 4
Standard

Das liegt wahrscheinlich daran, dass du als Passwort Buchstaben angibst. Die Umwandelfunktion wirft dann eine Exception.
Eydeet ist offline   Mit Zitat antworten
Alt 30.12.08, 13:30   #8 (permalink)
 
Benutzerbild von mauralix
 
Registriert seit: 17.04.06
mauralix Leistung: 8086
Likes: 3
Standard

@Eydeet:
richtig erkannt!
mauralix ist offline   Mit Zitat antworten
Alt 17.01.09, 01:59   #9 (permalink)
 
Registriert seit: 17.01.09
theend Leistung: Facit NTK
Likes: 0
Standard

Und das soll jetzt einfach sein???
theend ist offline   Mit Zitat antworten
Alt 25.03.09, 18:36   #10 (permalink)
jannik93
Guest
 
Likes:
Standard ^^

Code:
Naja, soleicht war das auch nicht ich hab nicht herausgefunden, woher die Messages kamen, das war nix mit Jumps, sondern mit SynEnter.  Naja, ich hab einfach die Badboys zu Goodboys umgeformt, das heißt:  MOV EDX,436471 bzw MOV EDX,436481 einfach assembled zu MOV EDX,436460
  Mit Zitat antworten
Alt 25.03.09, 19:19   #11 (permalink)
 
Registriert seit: 12.01.09
lone.wolf Leistung: Z3
lone.wolf eine Nachricht über AIM schicken
Likes: 1
Standard

Compressed(UPX) and Patched
Angehängte Dateien
Dateityp: rar CrackMe.rar (151,1 KB, 14x aufgerufen)
lone.wolf ist offline   Mit Zitat antworten
Alt 25.08.09, 23:19   #12 (permalink)
 
Registriert seit: 12.04.09
Kaddy Leistung: Facit NTK
Kaddy eine Nachricht über ICQ schicken Kaddy eine Nachricht über AIM schicken Kaddy eine Nachricht über Yahoo! schicken
Likes: 0
Standard

Bilder sagen mehr als Worte
Angehängte Grafiken
Dateityp: png einfach.png (188,5 KB, 616x aufgerufen)
Kaddy ist offline   Mit Zitat antworten
Alt 26.08.09, 16:26   #13 (permalink)
 
Benutzerbild von Eydeet
 
Registriert seit: 14.04.06
Eydeet Leistung: Facit NTK
Likes: 4
Standard RE: Sehr einfaches CrackMe

Ihr seid ja lustig, ihr löst die Aufgabe ja gar nicht!
Zitat:
Original von Wotan
Einfach das Passwort reusfinden.
Aber immerhin: viele viele bunte Goodboys.
Eydeet ist offline   Mit Zitat antworten
Alt 08.10.09, 22:39   #14 (permalink)
 
Registriert seit: 08.10.09
user82 Leistung: Facit NTK
Likes: 0
Standard

erbitte Hilfe in ida:
Bild1   



soweit isses mir klar

auch der vergleich der 2 adressen ist mir klar

wie kamst du darauf dass der call über eax wichtig ist und vor allem wie interpretierst du den call(ist dass der richtige) zum passwort?

Zitat:
Nachdem ich mir diesen Call genauer angeschaut habe, habe ich festgestellt, dass er einfach nur das Passwort in eine Zahl umwandelt, das Passwort lautet also $7C23 oder x7c23, 0x7C23, 31779,
Bild2   


user82 ist offline   Mit Zitat antworten
Alt 09.10.09, 16:44   #15 (permalink)
 
Benutzerbild von Eydeet
 
Registriert seit: 14.04.06
Eydeet Leistung: Facit NTK
Likes: 4
Standard

Ich versuch mal, mich zu erinnern (immerhin ist es schon 'ne Weile her, dass ich mir das CrackMe angeschaut habe ).
Zitat:
Original von user82
wie kamst du darauf dass der call über eax wichtig ist
   
Warum EAX wichtig ist, ist dir klar, oder? Der Call darüber ist wichtig, da mir noch kein Compiler begegnet ist, der den Rückgabewert nicht in EAX speichert. Ansonsten kann man es natürlich auch im Debugger verfolgen und einen Breakpoint auf den Call setzen. Nach einem "Step over" landest du ja an der Addresse nach dem Call und kannst nachschauen, ob EAX sich verändert hat. Das tut es in diesem Fall.


Zitat:
Original von user82
wie interpretierst du den call(ist dass der richtige) zum passwort?
   
Um ehrlich zu sein, ich habe erst nur gesehen, dass die Funktion irgendetwas mit dem String anstellt. Es hat ein wenig gedauert, bis ich erkannt hat, dass die Funktion den String zeichenweise einliest, um zu prüfen, ob es sich um Ziffern handelt, von denen sie dann die ASCII-0 abzieht, um sie in "richtige" Zahlen umzuwandeln.

Nachdem ich das erkannt habe, habe ich vermutet, dass die Funktion die Aufgabe hat, einen String in eine Zahl umzuwandeln. Das hat sich auch durch Nachrechnen bestätigt, die Rückgabe in EAX entsprach genau dem Wert des Strings, wenn man es von hex->dec umgerechnet hat (Olly zeigt normalerweise nur Hex an).

Der Wert wurde dann ohne weitere Verarbeitung mit einem festen Wert verglichen, von daher hatte ich den "Algorithmus" zur Passwort-Berechnung.

Dann habe ich mich noch gefragt, wozu die Funktion die Ziffern mit den Zeichen '$' und 'x' vergleicht, und lag mit der Vermutung richtig, dass die Funktion auch Hexadezimal-Strings versteht.

Das ging natürlich nicht so schnell und geradlinig (zumindest nicht bei mir), da ich zunächst nur Buchstaben und keine Zahlen eingegeben habe, weshalb ich zunächst nur Fehlermeldungen bekam.



MfG, Eydeet
Eydeet ist offline   Mit Zitat antworten
Antwort
   

Werbung ist gerade online    

[HaBo] » Software Home » Hacks & Crackmes » Sehr einfaches CrackMe
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[UNSOLVED] breakdown - einfaches Crackme lone.wolf Hacks & Crackmes 7 19.09.09 18:35
Kleines Crackme [sehr einfach] Virus Hacks & Crackmes 17 20.02.09 06:33
Relativ einfaches Crackme mauralix Hacks & Crackmes 5 04.01.09 17:29
Seehr einfaches Crackme blobbo Hacks & Crackmes 4 28.03.08 20:48
PC sehr sehr langsam, CPU ? Obmud Die Problemzone 5 19.03.06 23:13


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61