| Hacks & Crackmes Tests, Fragen oder Hilfestellungen. Crackmes und Hackits werden hier diskutiert. |
Diskussion: First CrackMe by MrSpider im Forum Hacks & Crackmes, in der Kategorie Software Home; Servus! Möchte euch hiermit mein erstes CrackMe präsentieren. Sollte theorethisch relativ einfach sein... - Kein Patchen - Gesucht ist das ...
![]() |
| | #1 (permalink) |
| Registriert seit: 31.03.08 ![]() Likes: 0 | Servus! Möchte euch hiermit mein erstes CrackMe präsentieren. Sollte theorethisch relativ einfach sein... - Kein Patchen - Gesucht ist das richtige Passwort. Feedback erwünscht ;-) EDIT: Fehler behoben, Programm funktioniert jetzt ordnungsgemäß Ist vllt doch schwieriger als ich anfangs angenommen hatte. HINT: [SPOILER]Passt auf Schleifen auf![/SPOILER] Geändert von MrSpider (18.11.09 um 20:00 Uhr) |
| | |
| | #2 (permalink) |
| Registriert seit: 11.11.09 ![]() Likes: 0 | Hat 20 Sekunden gedauert :p Spoiler Geändert von throjan (20.11.09 um 13:34 Uhr) |
| | |
| HaBOT | |
| |
| | #3 (permalink) |
| Themenstarter Registriert seit: 31.03.08 ![]() Likes: 0 | Komisch, das ist eigentl gar nicht die Lösung ... (Funktioniert bei mir auch nicht) Da ist wohl was schiefegelaufen beim erneuten Hochladen So jetzt ist die aktuelle Version oben -_- |
| | |
| | #4 (permalink) |
| Registriert seit: 11.11.09 ![]() Likes: 0 | Jetzt bist du ein witzbold. MOV EAX,DWORD PTR DS:[EBX] ist eax = 3258 und das wird IMMER ausgeführt, egal was man eingibt. das heisst es wird an 0x004013C7 IMMER gesprungen und somit natürlich auch nie an der Addresse (was nötig wäre)i: 004013EC. Desweiteren wird die erste Zahl bzw der erste Buchstabe von den eingegeben password garnicht gecheckt. DH: Erste Zahl bzw Buchstabe egal. So weiter.... PW muss sein XBCDEF (erste wird wie gesagt nicht gescheckt ), damit hier ---> 004013A4 |. /7F 1A JG SHORT CrackMe1.004013C0 nicht gesprungen wird und somit nicht 3258 in EAX gepackt wird. Jedoch ist es egal ob dort gesprungen wird oder in den anderen möglichen jump (in der PW check function) 3258 wird immer in EAX gesetzt. Weil beide jumps zu der MOV EAX,DWORD PTR DS:[EBX] Zeile springen und wie bereits gesagt, ändert sich ebx nicht. Wers nicht glaubt kann es testen. Code: 004013C2 |. 3D 5A320000 CMP EAX,325A 004013C7 |. 7C 1E JL SHORT CrackMe1.004013E7 004013C9 |. C703 BEBA0000 MOV DWORD PTR DS:[EBX],0BABE 004013CF |> 8D9D E4FDFFFF LEA EBX,[LOCAL.135] 004013D5 |. 891C24 MOV DWORD PTR SS:[ESP],EBX 004013D8 |. E8 83000000 CALL CrackMe1.00401460 004013DD |. 8D65 F4 LEA ESP,[LOCAL.3] 004013E0 |. 31C0 XOR EAX,EAX 004013E2 |. 5B POP EBX ; CrackMe1.00403016 004013E3 |. 5E POP ESI ; CrackMe1.00403016 004013E4 |. 5F POP EDI ; CrackMe1.00403016 004013E5 |. 5D POP EBP ; CrackMe1.00403016 004013E6 |. C3 RETN 004013E7 |> 3D BEBA0000 CMP EAX,0BABE ; | 004013EC |.^ 74 E1 JE SHORT CrackMe1.004013CF ; | auch wenn das pw pBCDEF ist, damit am anfang gesprungen wird ändert sich EBX nicht (da der erste Buchstabe doch verglichen wird und zwar mit p, aber egal wie mans dreht und wendet, es wird in eax immer 2258 sein). Soviel zu deinem neuen hochgeladen crackme nachdem ich dein vorheriges nach 20 sekunden geknackt hab :> 004013EC an der Zeile müsste übrigens gesprungen werden damit "das kannst du besser" nicht ausgegeben wird, aber ich hab ja erklärt, das es unmöglich ist das dort gesprungen wird weil dort halt vergleichen wird ob eax 0xBABE ist. Insgesamt wird verglichen ob der erste Buchstabe "p" ist, der zweite "B" der dritte "C" der vierte "D" und der letzte "E" Geändert von Painful (18.11.09 um 22:00 Uhr) |
| | |
| | #5 (permalink) |
| Themenstarter Registriert seit: 31.03.08 ![]() Likes: 0 | Passwort ist (bis auf ersten Buchstaben) richtig. Es gibt noch einen zusätzl. Schutz, ganz am Anfang (welcher eigentl. auch gepatcht werde kann). Dieser Schutz verändert den Wert, welcher letzenendes überprüft wird und dadurch den GoodBoy ausgibt. Spoiler Geändert von throjan (20.11.09 um 13:35 Uhr) |
| | |
| | #6 (permalink) |
| Registriert seit: 11.11.09 ![]() Likes: 0 | Wird überprüft ob die Eingabe ABCDEF war Geändert von Painful (20.11.09 um 12:04 Uhr) |
| | |
| | #7 (permalink) |
| Themenstarter Registriert seit: 31.03.08 ![]() Likes: 0 | Also, wie im vorherigen Post gesagt, ist der zusätzliche Schutz, dass mind. ein Kommandozeilenparameter angegeben wird (zB: crackme.exe -param). Der Check auf "pw?!" ist ein FakeCheck, welche durch die Compileroptimierung noch weiter verschleichert, sodass es gleicht als ob auf BCDEF verglichen wird. Sieh dir den Quellcode in meinem vorherigen Post an, dann sollte es eigentlich klar sein. --> Its not a Bug, it's a feature. Code: 00401310 |. 837D 08 01 CMP DWORD PTR SS:[EBP+8],1 <-- Vergleich ob mind. ein Kommandozeilenparameter 00401314 |. 8985 E4FDFFFF MOV DWORD PTR SS:[EBP-21C],EAX 0040131A |. 0F8E E4000000 JLE CrackMe1.00401404 <-- Wenn nicht springe nach unten und führe anderen Code aus 00401320 |. BB 54320000 MOV EBX,3254 --X 00401325 |. 899D DCFDFFFF MOV DWORD PTR SS:[EBP-224],EBX --X 0040132B |. 8D9D DCFDFFFF LEA EBX,DWORD PTR SS:[EBP-224] --X 00401331 |> /C70424 003040>MOV DWORD PTR SS:[ESP],CrackMe1.00403000 ; |||ASCII "Enter password: " <-- Hierhin wird dann zurückgesprungen Geändert von MrSpider (19.11.09 um 19:54 Uhr) |
| | |
| | #8 (permalink) |
| Registriert seit: 11.11.09 ![]() Likes: 0 | Naja stimmt das es so klappt, die Sache ist jedoch die, der Anwender einer Software muss wissen wie diese normalerweise funktioniert. DH wäre dein Programm richtige Software, würde es auch bei normalen ausführen kein Password akzeptieren. |
| | |
![]() |
| | |
| |
| Themen-Optionen | |
| Ansicht | |
| |