| Hacks & Crackmes Tests, Fragen oder Hilfestellungen. Crackmes und Hackits werden hier diskutiert. |
Diskussion: crackme#8 im Forum Hacks & Crackmes, in der Kategorie Software Home; Anzeige Ich muss gestehen, dass ich dieses Crackme schon vor einem halben Jahr auf crackmes.de veröffentlicht habe. Damals hatte ich ...
![]() |
| | #1 (permalink) |
| Registriert seit: 27.02.07 ![]() Likes: 2 | crackme#8 Anzeige Ich muss gestehen, dass ich dieses Crackme schon vor einem halben Jahr auf crackmes.de veröffentlicht habe. Damals hatte ich leider vergessen es auch hier hochzuladen, was ich sonst immer gemacht habe. Da die Seite crackmes.de derzeit down und die Lösung somit nicht mehr verfügbar ist, hole ich das jetzt nach. Als kleinen Anzeiz gibt es den Quellcode für die gültige Serial für mucki. (Tipp, da mehrere Lösungen richtig sind: es kommen zwei Gleichheitszeichen darin vor) Geändert von mucki (30.07.11 um 11:53 Uhr) |
| | |
| | #2 (permalink) |
| Registriert seit: 03.04.11 ![]() Likes: 10 | Habs bis jetzt eigentlich immer nur anhand von Tutorials nachvollzogen, deswegen hab ich nicht soviel Erfahrung... Die Valid Serial Ausgabe bringt mich bis jetzt nicht weiter, die wird ja einfach nur ausgegeben wenn Name = Serial. Ist also wohl ein Fake, wobei davor auch bestimmt wird ob Valid oder Invalid ausgegeben wird. Aber Valid Serial sollte ja trotzdem rauskommen wenn die Serial wirklich Valid ist. Das könnte natürlich irgendwo in der tatsächlichen Überprüfung stattfinden...muss ich nachher nochmal schauen. |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Registriert seit: 03.04.11 ![]() Likes: 10 | Scheint definitiv über meine aktuellen Kenntnisse hinaus zu gehen .Name = Serial klappt nur innerhalb des Debuggers, wenn man die crackme so startet klappt das ganze nicht. Die Anti-Anti-Debugger Plugins bringen irgendwie nix und wenn ich das ganze in Olly geladen habe steht dort bereits der Code der nur überprüft ob Name = Serial. |
| | |
| | #4 (permalink) |
| Themenstarter Registriert seit: 27.02.07 ![]() Likes: 2 | Der Anti-Debugger-Trick ist eigentlich ganz einfach. Allerdings befindet er sich im TLS-Bereich, sodass er schon beim Laden des Crackmes in Olly ausgeführt wird. |
| | |
| | #5 (permalink) |
| Registriert seit: 03.04.11 ![]() Likes: 10 | Das hab ich mir gedacht, dass es schon beim Laden in Olly passiert. Muss ich mal schauen wie man das umgehen kann....wenn ich den Prozess einfach "Attache" stürzt Olly samt Crackme ab :-( |
| | |
| | #6 (permalink) |
| Themenstarter Registriert seit: 27.02.07 ![]() Likes: 2 | Mit dem Programm LordPE kannst du sehen, bei welcher Adresse sich der TLS-Bereich befindet. Diesen Bereich einfach mal anschauen und die entsprechende Stelle patchen, sodass der Anti-Debugger-Trick deaktivert wird. (Wenn ein Debugger gefunden wurde, dann wird der Aufruf von strcmp nicht auf eine andere Adresse umgeleitet.) |
| | |
| | #7 (permalink) |
| Registriert seit: 03.04.11 ![]() Likes: 10 | OK. Der Patch war dann recht einfach. Hab auch mal jetzt OllyDBG Version 2 runtergeladen dort funktioniert dein "Trick" irgendwie erst gar nicht. Darf ich mal fragen warum der überhaupt funktioniert oder was da noch vorher gemacht wird oder wo mein Denkfehler ist ? Ich habs in V1 angeschaut: Code: MOV EAX, crackme8.<ModuleEntryPoint> => 401000 MOV AL, BYTE PTR DS: [EAX] => erstes Byte bei 401000 = 6A CMP AL,0CC => AL = CC Wieso??? Code: MOV EAX, crackme8.<ModuleEntryPoint> => 401000 MOV AL, BYTE PTR DS: [EAX] => erstes Byte bei 401000 = 6A CMP AL,0CC => AL = 6A macht Sinn :-) . Wenn ich EAX einfach mal per Hand (in V1) auf 401002 Stelle dann schiebt er beim Mov Befehl auch das richtige Byte rein nur nicht bei 401000 also beim EP.Also was da an für sich danach passiert habe ich schon verstanden nur ich verstehe einfach nich warum da ein Byte in das Register geschoben wird, dass überhaupt gar nicht dort so steht. Geändert von Tsjuder (05.07.11 um 14:11 Uhr) |
| | |
| | #8 (permalink) | ||
| Moderator ![]() Registriert seit: 20.07.05 ![]() ![]() ![]() ![]() ![]() ![]() Likes: 202 | Zitat:
Zitat:
INT (x86 instruction) - Wikipedia, the free encyclopedia Um im Programmmodul zu stoppen, setzt Olly an den EntryPoint einen normalen INT3=0xCC Breakpoint. Die Anzeige von Olly selbst "maskiert" allerdings die vom Nutzer/Olly gesetzten INT3s und zeigt stattdessen Originalcode/Opcode an. Im Übrigen können auch andere Anweisungen genutzt werden (wie in modifizierten Ollys - 0xFA, 0xFB == cli und sti) - hauptsache es gibt bei der Ausführung eine "priviledge instruction" Exception.
__________________ Noch mal, für alle Pseudo-Geeks: 1+1=0. -> 10 wäre Überlauf! Selig, wer nichts zu sagen hat und trotzdem schweigt. | ||
| | |
| | #9 (permalink) |
| Themenstarter Registriert seit: 27.02.07 ![]() Likes: 2 | Da du den Anti-Debugger-Trick entfernt hast noch ein Hinweis, damit du an den Algorithmen nicht verzweifelst. Es handelt sich dabei um gängige Kryptographie, die du mit dem Krypto-Analyzer-Plugin von PEID herausfinden kannst. Ansonsten schau an welche Stelle die Serial geschrieben wird, was die maximale Länge ist und was man damit alles anstellen kann. |
| | |
| | #10 (permalink) |
| Registriert seit: 27.09.05 ![]() Likes: 4 | Ich muss mir nochmal was schlaues überlegen, aber hier schon mal eine gültige Kombination. Serial |
| | |
| | #11 (permalink) |
| Themenstarter Registriert seit: 27.02.07 ![]() Likes: 2 | Stimmt, so kann man es auch machen. Diese Lösung hatte ich aber gar nicht geplant. Meine Lösung sieht so aus, dass durch eine zu lange Serial die Adresse des Exceptionhandlers auf 402123 gepatcht und durch eine Division durch Null ein Fehler erzeugt wird. |
| | |
| | #12 (permalink) |
| Registriert seit: 03.04.11 ![]() Likes: 10 | So jetzt hab ich wieder Zeit :-). Mein Problem ist aber ich bin einfach zu unerfahren damit (bis jetzt). PEID findet eine BASE64 Table und sagt was von CRC32...aber weiterbringen tut mich das nich .Die Stellen wo mit dem Usernamen und der Serial "hantiert" wird habe ich gefunden nur hab ich einfach keinen Überblick darüber, wie das Zusammenspiel von Serial + Usernamen ist. Ich weiß nur das am Ende von beiden EAX = 0x00000000 sein muss. Dabei werd ich noch mehr verwirrt von der Kombination die ReDox gepostet hat, weil durch [lmbC, jedesmal in der Methode vom Usernamen nach der Schleife EAX = 0xFFFFFFFF ist und damit NOT EAX natürlich 0x00000000 und danach passiert damit nichts mehr und deswegen funktioniert auch jede beliebige Serial mit dem Usernamen. Die Serial darf auch nur 8 Zeichen lang sein, also wohl 2 DWORDs. Aber wirklich weiter bin ich nicht gekommen. Naja vielleicht crackt es ja doch noch jemand anderes und kann es mir dann erklären :-) |
| | |
| | #13 (permalink) |
| Registriert seit: 27.09.05 ![]() Likes: 4 | Wieso ist das so? Serial für muckie Geändert von ReDoX (30.07.11 um 11:18 Uhr) |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |