004010F0 /> 55 PUSH EBP
004010F1 |. 8BEC MOV EBP,ESP
004010F3 |. 81EC AC000000 SUB ESP,0AC
004010F9 |. 53 PUSH EBX
004010FA |. 56 PUSH ESI
004010FB |. 57 PUSH EDI
004010FC |. C745 98 000000>MOV DWORD PTR SS:[EBP-68],0
00401103 |. 68 44574000 PUSH crackme_.00405744 ; /format = "password:"
00401108 |. FF15 D0824000 CALL DWORD PTR DS:[<&MSVCR90D.printf>] ; \printf
0040110E |. 83C4 04 ADD ESP,4
00401111 |. FF15 D4824000 CALL DWORD PTR DS:[<&MSVCR90D.__iob_func>; MSVCR90D.__p__iob
00401117 |. 50 PUSH EAX ; /stream
00401118 |. 6A 63 PUSH 63 ; |n = 63 (99.)
0040111A |. 8D45 9C LEA EAX,DWORD PTR SS:[EBP-64] ; |
0040111D |. 50 PUSH EAX ; |s
0040111E |. FF15 D8824000 CALL DWORD PTR DS:[<&MSVCR90D.fgets>] ; \fgets -> Eingabe in EAX speichern
00401124 |. 83C4 0C ADD ESP,0C
00401127 |. 8D45 9C LEA EAX,DWORD PTR SS:[EBP-64]
0040112A |. 50 PUSH EAX ; /s
0040112B |. E8 8C000000 CALL <JMP.&MSVCR90D.strlen> ; \strlen -> laenge des Strings in EAX speichern
00401130 |. 83C4 04 ADD ESP,4
00401133 |. C64405 9B 00 MOV BYTE PTR SS:[EBP+EAX-65],0
00401138 |. 8D45 9C LEA EAX,DWORD PTR SS:[EBP-64]
0040113B |. 50 PUSH EAX
0040113C |. E8 C4FEFFFF CALL crackme_.00401005 ; Algo -> mit F7 naeher anschauen
00401141 |. 83C4 04 ADD ESP,4
00401144 |. 8945 98 MOV DWORD PTR SS:[EBP-68],EAX
00401147 |. 837D 98 00 CMP DWORD PTR SS:[EBP-68],0
0040114B |. 74 0C JE SHORT crackme_.00401159
0040114D |. C785 54FFFFFF >MOV DWORD PTR SS:[EBP-AC],crackme_.00405>; ASCII "ok"
00401157 |. EB 0A JMP SHORT crackme_.00401163
00401159 |> C785 54FFFFFF >MOV DWORD PTR SS:[EBP-AC],crackme_.00405>; ASCII "falsch"
00401163 |> 8B85 54FFFFFF MOV EAX,DWORD PTR SS:[EBP-AC]
00401169 |. 50 PUSH EAX ; /<%s>
0040116A |. 68 28574000 PUSH crackme_.00405728 ; |format = "Password %s
"
0040116F |. FF15 D0824000 CALL DWORD PTR DS:[<&MSVCR90D.printf>] ; \printf
00401175 |. 83C4 08 ADD ESP,8
00401178 |. 68 20574000 PUSH crackme_.00405720 ; /command = "pause"
0040117D |. FF15 DC824000 CALL DWORD PTR DS:[<&MSVCR90D.system>] ; \system
00401183 |. 83C4 04 ADD ESP,4
00401186 |. 33C0 XOR EAX,EAX
00401188 |. 5F POP EDI
00401189 |. 5E POP ESI
0040118A |. 5B POP EBX
0040118B |. 8BE5 MOV ESP,EBP
0040118D |. 5D POP EBP
0040118E \. C3 RETN
00401020 /> 55 PUSH EBP
00401021 |. 8BEC MOV EBP,ESP
00401023 |. 83EC 4C SUB ESP,4C
00401026 |. 53 PUSH EBX
00401027 |. 56 PUSH ESI
00401028 |. 57 PUSH EDI
00401029 |. C745 FC 000000>MOV DWORD PTR SS:[EBP-4],0
00401030 |. C745 F4 000000>MOV DWORD PTR SS:[EBP-C],0
00401037 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
0040103A |. 50 PUSH EAX ; /s
0040103B |. E8 7C010000 CALL <JMP.&MSVCR90D.strlen> ; \strlen
00401040 |. 83C4 04 ADD ESP,4
00401043 |. 83F8 0A CMP EAX,0A ; Muss 10 Zeichen lang sein
00401046 |. 75 72 JNZ SHORT crackme_.004010BA
00401048 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
0040104B |. 0FBE48 09 MOVSX ECX,BYTE PTR DS:[EAX+9]
0040104F |. 83F9 78 CMP ECX,78 ; 10te Zeichen == hex(78)=x?
00401052 |. 74 18 JE SHORT crackme_.0040106C
00401054 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00401057 |. 0FBE48 09 MOVSX ECX,BYTE PTR DS:[EAX+9]
0040105B |. 83F9 79 CMP ECX,79 ; 10te Zeichen == hex(79)=y?
0040105E |. 74 0C JE SHORT crackme_.0040106C
00401060 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00401063 |. 0FBE48 09 MOVSX ECX,BYTE PTR DS:[EAX+9]
00401067 |. 83F9 7A CMP ECX,7A ; 10te Zeichen == hex(7A)=z?
0040106A |. 75 4E JNZ SHORT crackme_.004010BA
0040106C |> 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
0040106F |. 8A48 03 MOV CL,BYTE PTR DS:[EAX+3] ; CL = 4te Zeichen
00401072 |. 884D F8 MOV BYTE PTR SS:[EBP-8],CL
00401075 |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00401078 |. 8A48 05 MOV CL,BYTE PTR DS:[EAX+5] ; CL = 6te Zeichen
0040107B |. 884D F9 MOV BYTE PTR SS:[EBP-7],CL
0040107E |. 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8]
00401081 |. 8A48 07 MOV CL,BYTE PTR DS:[EAX+7] ; CL = 8te Zeichen
00401084 |. 884D FA MOV BYTE PTR SS:[EBP-6],CL
00401087 |. C645 FB 00 MOV BYTE PTR SS:[EBP-5],0
0040108B |. 8D45 F8 LEA EAX,DWORD PTR SS:[EBP-8] ; EAX = 4te + 6te + 8te Zeichen
0040108E |. 50 PUSH EAX ; /s
0040108F |. FF15 E8824000 CALL DWORD PTR DS:[<&MSVCR90D.atoi>] ; \atoi
00401095 |. 83C4 04 ADD ESP,4
00401098 |. 8945 F4 MOV DWORD PTR SS:[EBP-C],EAX
0040109B |. 837D F4 64 CMP DWORD PTR SS:[EBP-C],64 ; hex(64)
0040109F |. 74 12 JE SHORT crackme_.004010B3
004010A1 |. 817D F4 DE0000>CMP DWORD PTR SS:[EBP-C],0DE ; hex(DE)
004010A8 |. 74 09 JE SHORT crackme_.004010B3
004010AA |. 817D F4 BC0100>CMP DWORD PTR SS:[EBP-C],1BC ; hex(1BC)
004010B1 |. 75 07 JNZ SHORT crackme_.004010BA
004010B3 |> C745 FC 010000>MOV DWORD PTR SS:[EBP-4],1 ; FLAG FOR SUCCESS!
004010BA |> 8B45 FC MOV EAX,DWORD PTR SS:[EBP-4]
004010BD |. 5F POP EDI
004010BE |. 5E POP ESI
004010BF |. 5B POP EBX
004010C0 |. 8BE5 MOV ESP,EBP
004010C2 |. 5D POP EBP
004010C3 \. C3 RETN