CrackM3

A telecharger ici : https://github.com/StHack/2014-Binaries-Forensics/

On ouvre l'executable, il nous demande de rentrer un mot de passe. On le charge donc avec ollydbg (il y a quelques protections anti debug, comme des appels a “isDebuggerPresent”, facilement contournables avec des plugins), et on regarde la partie du code qui affiche ce message, et ce qu'il y a autour :

004107E2  /.  55            PUSH EBP
004107E3  |.  8BEC          MOV EBP,ESP
004107E5  |.  8B45 0C       MOV EAX,DWORD PTR [EBP+C]
004107E8  |.  56            PUSH ESI
004107E9  |.  2D 10010000   SUB EAX,110                              ;  Switch (cases 110..111)
004107EE  |.  74 29         JE SHORT CrackM3-.00410819
004107F0  |.  48            DEC EAX
004107F1  |.  75 22         JNZ SHORT CrackM3-.00410815
004107F3  |.  8B4D 10       MOV ECX,DWORD PTR [EBP+10]               ;  Case 111 of switch 004107E9
004107F6  |.  33F6          XOR ESI,ESI
004107F8  |.  46            INC ESI
004107F9  |.  66:3BCE       CMP CX,SI
004107FC  |.  74 06         JE SHORT CrackM3-.00410804
004107FE  |.  66:83F9 02    CMP CX,2
00410802  |.  75 11         JNZ SHORT CrackM3-.00410815
00410804  |>  0FB7C9        MOVZX ECX,CX
00410807  |.  51            PUSH ECX                                 ; /Result
00410808  |.  FF75 08       PUSH DWORD PTR [EBP+8]                   ; |hWnd
0041080B  |.  FF15 38114100 CALL DWORD PTR [<&USER32.EndDialog>]     ; \EndDialog
00410811  |.  8BC6          MOV EAX,ESI
00410813  |.  EB 07         JMP SHORT CrackM3-.0041081C
00410815  |>  33C0          XOR EAX,EAX                              ;  Default case of switch 004107E9
00410817  |.  EB 03         JMP SHORT CrackM3-.0041081C
00410819  |>  33C0          XOR EAX,EAX                              ;  Case 110 of switch 004107E9
0041081B  |.  40            INC EAX
0041081C  |>  5E            POP ESI
0041081D  |.  5D            POP EBP
0041081E  \.  C2 1000       RET 10
00410821  /.  55            PUSH EBP
00410822  |.  8BEC          MOV EBP,ESP
00410824  |.  83EC 50       SUB ESP,50
00410827  |.  8B45 0C       MOV EAX,DWORD PTR [EBP+C]
0041082A  |.  56            PUSH ESI
0041082B  |.  57            PUSH EDI
0041082C  |.  33F6          XOR ESI,ESI
0041082E  |.  6A 0A         PUSH 0A
00410830  |.  48            DEC EAX                                  ;  Switch (cases 2..111)
00410831  |.  59            POP ECX
00410832  |.  8975 F0       MOV DWORD PTR [EBP-10],ESI
00410835  |.  894D F4       MOV DWORD PTR [EBP-C],ECX
00410838  |.  C745 F8 BE000>MOV DWORD PTR [EBP-8],0BE
0041083F  |.  C745 FC 64000>MOV DWORD PTR [EBP-4],64
00410846  |.  48            DEC EAX
00410847  |.  0F84 AB020000 JE CrackM3-.00410AF8
0041084D  |.  83E8 0D       SUB EAX,0D
00410850  |.  0F84 5C020000 JE CrackM3-.00410AB2
00410856  |.  2D F1000000   SUB EAX,0F1
0041085B  |.  74 5F         JE SHORT CrackM3-.004108BC
0041085D  |.  83E8 11       SUB EAX,11
00410860  |.  74 0B         JE SHORT CrackM3-.0041086D
00410862  |.  FF75 14       PUSH DWORD PTR [EBP+14]
00410865  |.  FF75 10       PUSH DWORD PTR [EBP+10]
00410868  |.  FF75 0C       PUSH DWORD PTR [EBP+C]
0041086B  |.  EB 17         JMP SHORT CrackM3-.00410884
0041086D  |>  8B4D 10       MOV ECX,DWORD PTR [EBP+10]               ;  Case 111 (WM_COMMAND) of switch 00410830
00410870  |.  0FB7C1        MOVZX EAX,CX
00410873  |.  83E8 68       SUB EAX,68                               ;  Switch (cases 68..69)
00410876  |.  74 28         JE SHORT CrackM3-.004108A0
00410878  |.  48            DEC EAX
00410879  |.  74 17         JE SHORT CrackM3-.00410892
0041087B  |.  FF75 14       PUSH DWORD PTR [EBP+14]                  ;  Default case of switch 00410873
0041087E  |.  51            PUSH ECX
0041087F  |.  68 11010000   PUSH 111
00410884  |>  FF75 08       PUSH DWORD PTR [EBP+8]                   ; |hWnd; Default case of switch 00410830
00410887  |.  FF15 54114100 CALL DWORD PTR [<&USER32.DefWindowProcA>>; \DefWindowProcA
0041088D  |.  E9 6F020000   JMP CrackM3-.00410B01
00410892  |>  FF75 08       PUSH DWORD PTR [EBP+8]                   ; /hWnd; Case 69 ('i') of switch 00410873
00410895  |.  FF15 58114100 CALL DWORD PTR [<&USER32.DestroyWindow>] ; \DestroyWindow
0041089B  |.  E9 5F020000   JMP CrackM3-.00410AFF
004108A0  |>  56            PUSH ESI                                 ; /lParam; Case 68 ('h') of switch 00410873
004108A1  |.  68 E2074100   PUSH CrackM3-.004107E2                   ; |DlgProc = CrackM3-.004107E2
004108A6  |.  FF75 08       PUSH DWORD PTR [EBP+8]                   ; |hOwner
004108A9  |.  6A 67         PUSH 67                                  ; |pTemplate = 67
004108AB  |.  FF35 248B4100 PUSH DWORD PTR [418B24]                  ; |hInst = NULL
004108B1  |.  FF15 5C114100 CALL DWORD PTR [<&USER32.DialogBoxParamA>; \DialogBoxParamA
004108B7  |.  E9 43020000   JMP CrackM3-.00410AFF
004108BC  |>  8B45 10       MOV EAX,DWORD PTR [EBP+10]               ;  Case 100 (WM_KEYDOWN) of switch 00410830
004108BF  |.  83F8 4D       CMP EAX,4D                               ;  Switch (cases 20..5A)
004108C2  |.  0F87 0A010000 JA CrackM3-.004109D2
004108C8  |.  0F84 F8000000 JE CrackM3-.004109C6
004108CE  |.  83F8 46       CMP EAX,46
004108D1  |.  0F87 9D000000 JA CrackM3-.00410974
004108D7  |.  0F84 8E000000 JE CrackM3-.0041096B
004108DD  |.  83E8 20       SUB EAX,20
004108E0  |.  74 5D         JE SHORT CrackM3-.0041093F
004108E2  |.  83E8 21       SUB EAX,21
004108E5  |.  74 4F         JE SHORT CrackM3-.00410936
004108E7  |.  48            DEC EAX
004108E8  |.  74 43         JE SHORT CrackM3-.0041092D
004108EA  |.  48            DEC EAX
004108EB  |.  74 37         JE SHORT CrackM3-.00410924
004108ED  |.  48            DEC EAX
004108EE  |.  74 2B         JE SHORT CrackM3-.0041091B
004108F0  |.  48            DEC EAX
004108F1  |.  75 19         JNZ SHORT CrackM3-.0041090C
004108F3  |.  A1 208B4100   MOV EAX,DWORD PTR [418B20]               ;  Case 45 ('E') of switch 004108BF
004108F8  |.  83F8 03       CMP EAX,3
004108FB  |.  74 51         JE SHORT CrackM3-.0041094E
004108FD  |.  83F8 06       CMP EAX,6
00410900  |.  74 4C         JE SHORT CrackM3-.0041094E
00410902  |.  83F8 0C       CMP EAX,0C
00410905  |.  74 47         JE SHORT CrackM3-.0041094E
00410907  |.  83F8 13       CMP EAX,13
0041090A  |>  74 42         JE SHORT CrackM3-.0041094E
0041090C  |>  C705 208B4100>MOV DWORD PTR [418B20],1                 ;  Default case of switch 004108BF
00410916  |.  E9 E4010000   JMP CrackM3-.00410AFF
0041091B  |>  833D 208B4100>CMP DWORD PTR [418B20],1D                ;  Case 44 ('D') of switch 004108BF
00410922  |.  EB 28         JMP SHORT CrackM3-.0041094C
00410924  |>  833D 208B4100>CMP DWORD PTR [418B20],1F                ;  Case 43 ('C') of switch 004108BF
0041092B  |.  EB 1F         JMP SHORT CrackM3-.0041094C
0041092D  |>  833D 208B4100>CMP DWORD PTR [418B20],1E                ;  Case 42 ('B') of switch 004108BF
00410934  |.  EB 16         JMP SHORT CrackM3-.0041094C
00410936  |>  833D 208B4100>CMP DWORD PTR [418B20],10                ;  Case 41 ('A') of switch 004108BF
0041093D  |.  EB 0D         JMP SHORT CrackM3-.0041094C
0041093F  |>  A1 208B4100   MOV EAX,DWORD PTR [418B20]               ;  Case 20 (' ') of switch 004108BF
00410944  |.  83F8 04       CMP EAX,4
00410947  |.  74 05         JE SHORT CrackM3-.0041094E
00410949  |.  83F8 0E       CMP EAX,0E
0041094C  |>^ 75 BE         JNZ SHORT CrackM3-.0041090C
0041094E  |>  56            PUSH ESI                                 ; /Erase
0041094F  |.  56            PUSH ESI                                 ; |pRect
00410950  |.  FF75 08       PUSH DWORD PTR [EBP+8]                   ; |hWnd
00410953  |.  FF15 50114100 CALL DWORD PTR [<&USER32.InvalidateRect>>; \InvalidateRect
00410959  |.  6A 01         PUSH 1
0041095B  |>  56            PUSH ESI                                 ; |hUpdateRgn
0041095C  |.  56            PUSH ESI                                 ; |pRect
0041095D  |.  FF75 08       PUSH DWORD PTR [EBP+8]                   ; |hWnd
00410960  |.  FF15 4C114100 CALL DWORD PTR [<&USER32.RedrawWindow>]  ; \RedrawWindow
00410966  |.  E9 94010000   JMP CrackM3-.00410AFF
0041096B  |>  833D 208B4100>CMP DWORD PTR [418B20],1C                ;  Case 46 ('F') of switch 004108BF
00410972  |.^ EB D8         JMP SHORT CrackM3-.0041094C
00410974  |>  83E8 47       SUB EAX,47
00410977  |.  74 3C         JE SHORT CrackM3-.004109B5
00410979  |.  48            DEC EAX
0041097A  |.  74 30         JE SHORT CrackM3-.004109AC
0041097C  |.  48            DEC EAX
0041097D  |.  74 24         JE SHORT CrackM3-.004109A3
0041097F  |.  48            DEC EAX
00410980  |.  74 18         JE SHORT CrackM3-.0041099A
00410982  |.  48            DEC EAX
00410983  |.  74 0C         JE SHORT CrackM3-.00410991
00410985  |.  48            DEC EAX
00410986  |.^ 75 84         JNZ SHORT CrackM3-.0041090C
00410988  |.  833D 208B4100>CMP DWORD PTR [418B20],8                 ;  Case 4C ('L') of switch 004108BF
0041098F  |.^ EB BB         JMP SHORT CrackM3-.0041094C
00410991  |>  833D 208B4100>CMP DWORD PTR [418B20],5                 ;  Case 4B ('K') of switch 004108BF
00410998  |.^ EB B2         JMP SHORT CrackM3-.0041094C
0041099A  |>  833D 208B4100>CMP DWORD PTR [418B20],1A                ;  Case 4A ('J') of switch 004108BF
004109A1  |.^ EB A9         JMP SHORT CrackM3-.0041094C
004109A3  |>  833D 208B4100>CMP DWORD PTR [418B20],1B                ;  Case 49 ('I') of switch 004108BF
004109AA  |.^ EB A0         JMP SHORT CrackM3-.0041094C
004109AC  |>  833D 208B4100>CMP DWORD PTR [418B20],2                 ;  Case 48 ('H') of switch 004108BF
004109B3  |.^ EB 97         JMP SHORT CrackM3-.0041094C
004109B5  |>  A1 208B4100   MOV EAX,DWORD PTR [418B20]               ;  Case 47 ('G') of switch 004108BF
004109BA  |.  3BC1          CMP EAX,ECX
004109BC  |.^ 74 90         JE SHORT CrackM3-.0041094E
004109BE  |.  83F8 0B       CMP EAX,0B
004109C1  |.^ E9 44FFFFFF   JMP CrackM3-.0041090A
004109C6  |>  833D 208B4100>CMP DWORD PTR [418B20],0F                ;  Case 4D ('M') of switch 004108BF
004109CD  |.^ E9 7AFFFFFF   JMP CrackM3-.0041094C
004109D2  |>  83C0 B2       ADD EAX,-4E
004109D5  |.  83F8 0C       CMP EAX,0C
004109D8  |.^ 0F87 2EFFFFFF JA CrackM3-.0041090C
004109DE  |.  FF2485 090B41>JMP DWORD PTR [EAX*4+410B09]
004109E5  |>  833D 208B4100>CMP DWORD PTR [418B20],20                ;  Case 4E ('N') of switch 004108BF
004109EC  |.^ E9 5BFFFFFF   JMP CrackM3-.0041094C
004109F1  |>  833D 208B4100>CMP DWORD PTR [418B20],9                 ;  Case 4F ('O') of switch 004108BF
004109F8  |.^ E9 4FFFFFFF   JMP CrackM3-.0041094C
004109FD  |>  833D 208B4100>CMP DWORD PTR [418B20],21                ;  Case 50 ('P') of switch 004108BF
00410A04  |.^ E9 43FFFFFF   JMP CrackM3-.0041094C
00410A09  |>  833D 208B4100>CMP DWORD PTR [418B20],22                ;  Case 51 ('Q') of switch 004108BF
00410A10  |.^ E9 37FFFFFF   JMP CrackM3-.0041094C
00410A15  |>  A1 208B4100   MOV EAX,DWORD PTR [418B20]               ;  Case 52 ('R') of switch 004108BF
00410A1A  |.  83F8 0D       CMP EAX,0D
00410A1D  |.^ 0F84 2BFFFFFF JE CrackM3-.0041094E
00410A23  |.  83F8 14       CMP EAX,14
00410A26  |.^ E9 DFFEFFFF   JMP CrackM3-.0041090A
00410A2B  |>  833D 208B4100>CMP DWORD PTR [418B20],11                ;  Case 53 ('S') of switch 004108BF
00410A32  |.^ E9 15FFFFFF   JMP CrackM3-.0041094C
00410A37  |>  A1 208B4100   MOV EAX,DWORD PTR [418B20]               ;  Case 54 ('T') of switch 004108BF
00410A3C  |.  33FF          XOR EDI,EDI
00410A3E  |.  47            INC EDI
00410A3F  |.  3BC7          CMP EAX,EDI
00410A41  |.  74 10         JE SHORT CrackM3-.00410A53
00410A43  |.  83F8 12       CMP EAX,12
00410A46  |.  74 0B         JE SHORT CrackM3-.00410A53
00410A48  |.  893D 208B4100 MOV DWORD PTR [418B20],EDI
00410A4E  |.  E9 AC000000   JMP CrackM3-.00410AFF
00410A53  |>  56            PUSH ESI                                 ; /Erase
00410A54  |.  56            PUSH ESI                                 ; |pRect
00410A55  |.  FF75 08       PUSH DWORD PTR [EBP+8]                   ; |hWnd
00410A58  |.  FF15 50114100 CALL DWORD PTR [<&USER32.InvalidateRect>>; \InvalidateRect
00410A5E  |.  57            PUSH EDI
00410A5F  |.^ E9 F7FEFFFF   JMP CrackM3-.0041095B
00410A64  |>  C705 208B4100>MOV DWORD PTR [418B20],24                ;  Case 55 ('U') of switch 004108BF
00410A6E  |.^ E9 DBFEFFFF   JMP CrackM3-.0041094E
00410A73  |>  C705 208B4100>MOV DWORD PTR [418B20],23                ;  Case 56 ('V') of switch 004108BF
00410A7D  |.^ E9 CCFEFFFF   JMP CrackM3-.0041094E
00410A82  |>  833D 208B4100>CMP DWORD PTR [418B20],19                ;  Case 57 ('W') of switch 004108BF
00410A89  |.^ E9 BEFEFFFF   JMP CrackM3-.0041094C
00410A8E  |>  833D 208B4100>CMP DWORD PTR [418B20],18                ;  Case 58 ('X') of switch 004108BF
00410A95  |.^ E9 B2FEFFFF   JMP CrackM3-.0041094C
00410A9A  |>  833D 208B4100>CMP DWORD PTR [418B20],7                 ;  Case 59 ('Y') of switch 004108BF
00410AA1  |.^ E9 A6FEFFFF   JMP CrackM3-.0041094C
00410AA6  |>  833D 208B4100>CMP DWORD PTR [418B20],17                ;  Case 5A ('Z') of switch 004108BF
00410AAD  |.^ E9 9AFEFFFF   JMP CrackM3-.0041094C
00410AB2  |>  FF05 208B4100 INC DWORD PTR [418B20]                   ;  Case F (WM_PAINT) of switch 00410830
00410AB8  |.  8D45 B0       LEA EAX,DWORD PTR [EBP-50]
00410ABB  |.  50            PUSH EAX                                 ; /pPaintstruct
00410ABC  |.  FF75 08       PUSH DWORD PTR [EBP+8]                   ; |hWnd
00410ABF  |.  FF15 48114100 CALL DWORD PTR [<&USER32.BeginPaint>]    ; \BeginPaint
00410AC5  |.  833D 208B4100>CMP DWORD PTR [418B20],15
00410ACC  |.  6A 01         PUSH 1
00410ACE  |.  8D4D F0       LEA ECX,DWORD PTR [EBP-10]
00410AD1  |.  51            PUSH ECX
00410AD2  |.  6A FF         PUSH -1
00410AD4  |.  75 07         JNZ SHORT CrackM3-.00410ADD
00410AD6  |.  68 A05B4100   PUSH CrackM3-.00415BA0                   ;  ASCII "That's it buddy !"
00410ADB  |.  EB 05         JMP SHORT CrackM3-.00410AE2
00410ADD  |>  68 B45B4100   PUSH CrackM3-.00415BB4                   ;  ASCII "Please enter Password"
00410AE2  |>  50            PUSH EAX                                 ; |hDC
00410AE3  |.  FF15 44114100 CALL DWORD PTR [<&USER32.DrawTextA>]     ; \DrawTextA
00410AE9  |.  8D45 B0       LEA EAX,DWORD PTR [EBP-50]
00410AEC  |.  50            PUSH EAX                                 ; /pPaintstruct
00410AED  |.  FF75 08       PUSH DWORD PTR [EBP+8]                   ; |hWnd
00410AF0  |.  FF15 40114100 CALL DWORD PTR [<&USER32.EndPaint>]      ; \EndPaint
00410AF6  |.  EB 07         JMP SHORT CrackM3-.00410AFF
00410AF8  |>  56            PUSH ESI                                 ; /ExitCode; Case 2 (WM_DESTROY) of switch 00410830
00410AF9  |.  FF15 3C114100 CALL DWORD PTR [<&USER32.PostQuitMessage>; \PostQuitMessage
00410AFF  |>  33C0          XOR EAX,EAX
00410B01  |>  5F            POP EDI
00410B02  |.  5E            POP ESI
00410B03  |.  C9            LEAVE
00410B04  \.  C2 1000       RET 10

Ce qu'on remarque en premier, il y'a un switch qui couvre toutes les lettres de l'alphabet. Ce switch est appelé quand une touche est pressée (004108BC : Case 100 (WM_KEYDOWN) of switch…)

Pour presque toutes les lettres, il y a une comparaison entre l'entier à l'addresse 00418B20 et un nombre qui va de 0 a une trentaine, puis un jump vers 0041094C, par exemple:

CMP DWORD PTR [418B20],10                ;  Case 41 ('A') of switch 004108BF
JMP SHORT CrackM3-.0041094C

Si on suit le jump on arrive sur:

JNZ SHORT CrackM3-.0041090C

On pourrait continuer l'analyse, mais on peut déjà suposer que l'addresse 004108BF sert à compter les touches pressées, et que ces CMP servent donc a verifier que les touches du clavier ont bien été pressées dans l'ordre.

Il faudrait donc lire les valeurs des CMP pour savoir quelles sont les positions des lettres dans le mot de passe.

Si la mauvaise touche est pressée, PTR [418B20] est remis à 1 :

0041090C  |>  C705 208B4100>MOV DWORD PTR [418B20],1

On cherche donc pour quelle touche une comparaison à 1 est effectuée. Pour le T:

00410A37  |>  A1 208B4100   MOV EAX,DWORD PTR [418B20]
00410A3C  |.  33FF          XOR EDI,EDI                  ; EDI = 0
00410A3E  |.  47            INC EDI                      ; EDI = 1
00410A3F  |.  3BC7          CMP EAX,EDI                  ; On compare eax a 1
00410A41  |.  74 10         JE SHORT CrackM3-.00410A53   ; La touche est validé si T est pressée en 1er
00410A43  |.  83F8 12       CMP EAX,12                   ; Mais aussi a 0x12
00410A46  |.  74 0B         JE SHORT CrackM3-.00410A53   ; Donc il y a un T en 18ème position
00410A48  |.  893D 208B4100 MOV DWORD PTR [418B20],EDI   ; Si les JE n'ont pas été suivis, alors T n'as pas été pressé au bon moment, PTR [418B20] reprend la valeur 1
00410A4E  |.  E9 AC000000   JMP CrackM3-.00410AFF

On peut commencer à remplir le mot de passe :

T________________T
004109AC  |>  833D 208B4100>CMP DWORD PTR [418B20],2                 ;  Case 48 ('H') of switch 004108BF
TH_______________T
004108F3  |.  A1 208B4100   MOV EAX,DWORD PTR [418B20]               ;  Case 45 ('E') of switch 004108BF
004108F8  |.  83F8 03       CMP EAX,3
004108FB  |.  74 51         JE SHORT CrackM3-.0041094E
004108FD  |.  83F8 06       CMP EAX,6
00410900  |.  74 4C         JE SHORT CrackM3-.0041094E
00410902  |.  83F8 0C       CMP EAX,0C
00410905  |.  74 47         JE SHORT CrackM3-.0041094E
00410907  |.  83F8 13       CMP EAX,13
0041090A  |>  74 42         JE SHORT CrackM3-.0041094E
0041090C  |>  C705 208B4100>MOV DWORD PTR [418B20],1                 ;  Default case of switch 004108BF
00410916  |.  E9 E4010000   JMP CrackM3-.00410AFF
THE__E_____E_____TE
0041093F  |>  A1 208B4100   MOV EAX,DWORD PTR [418B20]               ;  Case 20 (' ') of switch 004108BF
00410944  |.  83F8 04       CMP EAX,4
00410947  |.  74 05         JE SHORT CrackM3-.0041094E               ;  Si pressée en 4ème, saute vers l'incrémentation de PTR [418B20]
00410949  |.  83F8 0E       CMP EAX,0E
0041094C  |>^ 75 BE         JNZ SHORT CrackM3-.0041090C              ;  Si n'est pas pressée en 14ème, saute vers la réinitialisation de PTR [418B20]
THE _E_____E_ ___TE
00410991  |>  833D 208B4100>CMP DWORD PTR [418B20],5                 ;  Case 4B ('K') of switch 004108BF
00410998  |.^ EB B2         JMP SHORT CrackM3-.0041094C
THE KE_____E_ ___TE
00410A9A  |>  833D 208B4100>CMP DWORD PTR [418B20],7                 ;  Case 59 ('Y') of switch 004108BF
00410AA1  |.^ E9 A6FEFFFF   JMP CrackM3-.0041094C
THE KEY____E_ ___TE
00410988  |.  833D 208B4100>CMP DWORD PTR [418B20],8                 ;  Case 4C ('L') of switch 004108BF
0041098F  |.^ EB BB         JMP SHORT CrackM3-.0041094C
THE KEYL___E_ ___TE
004109F1  |>  833D 208B4100>CMP DWORD PTR [418B20],9                 ;  Case 4F ('O') of switch 004108BF
004109F8  |.^ E9 4FFFFFFF   JMP CrackM3-.0041094C
THE KEYLO__E_ ___TE
004109B5  |>  A1 208B4100   MOV EAX,DWORD PTR [418B20]               ;  Case 47 ('G') of switch 004108BF
004109BA  |.  3BC1          CMP EAX,ECX
004109BC  |.^ 74 90         JE SHORT CrackM3-.0041094E
004109BE  |.  83F8 0B       CMP EAX,0B
004109C1  |.^ E9 44FFFFFF   JMP CrackM3-.0041090A
THE KEYLOGGE_ ___TE
00410A15  |>  A1 208B4100   MOV EAX,DWORD PTR [418B20]               ;  Case 52 ('R') of switch 004108BF
00410A1A  |.  83F8 0D       CMP EAX,0D
00410A1D  |.^ 0F84 2BFFFFFF JE CrackM3-.0041094E
00410A23  |.  83F8 14       CMP EAX,14
00410A26  |.^ E9 DFFEFFFF   JMP CrackM3-.0041090A
THE KEYLOGGER ___TER
004109C6  |>  833D 208B4100>CMP DWORD PTR [418B20],0F                ;  Case 4D ('M') of switch 004108BF
004109CD  |.^ E9 7AFFFFFF   JMP CrackM3-.0041094C
THE KEYLOGGER M__TER
00410936  |>  833D 208B4100>CMP DWORD PTR [418B20],10                ;  Case 41 ('A') of switch 004108BF
0041093D  |.  EB 0D         JMP SHORT CrackM3-.0041094C
THE KEYLOGGER MA_TER
00410A2B  |>  833D 208B4100>CMP DWORD PTR [418B20],11                ;  Case 53 ('S') of switch 004108BF
00410A32  |.^ E9 15FFFFFF   JMP CrackM3-.0041094C
THE KEYLOGGER MASTER

Le mot de passe est donc “The keylogger master” ; il faut le rentrer assez vite pour voir apparaitre le goodboy.

c4ffein