Outils d'utilisateurs

Outils du Site


sthack4:crackm3

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

sthack4:crackm3 [2014/04/22 03:49]
c4ffein
sthack4:crackm3 [2017/04/09 15:33] (Version actuelle)
Ligne 244: Ligne 244:
 </code> </code>
  
-Ce qu'on remarque en premier, il y a un switch qui couvre toutes les lettres de l'alphabet. +Ce qu'on remarque en premier, il y'a un switch qui couvre toutes les lettres de l'alphabet. 
-Ce switch est appele quand une touche est pressee (004108BC : Case 100 (WM_KEYDOWN) of switch...)+Ce switch est appelé quand une touche est pressée (004108BC : Case 100 (WM_KEYDOWN) of switch...)
  
-Pour presque toutes les lettres, ce qu il y a l addresse 00418B20 est compare a un nombre qui va de 0 a une trentaine puis un jump vers 0041094C, par exemple:+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 trentainepuis un jump vers 0041094C, par exemple:
 <code ASM> <code ASM>
 CMP DWORD PTR [418B20],10                ;  Case 41 ('A') of switch 004108BF CMP DWORD PTR [418B20],10                ;  Case 41 ('A') of switch 004108BF
Ligne 257: Ligne 257:
 </code> </code>
  
-On pourrait continuer l'analyse, mais on va deja suposer qu'il y a a l addresse 004108BF un compteur de touches pressees, et que ces CMP servent a verifier que les touches du clavier ont bien ete pressees dans l'ordre.+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 comp pour savoir quelles sont les positions des lettres dans le mot de passe :+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 :
 +<code ASM>
 +0041090C  |>  C705 208B4100>MOV DWORD PTR [418B20],1
 +</code>
 +On cherche donc pour quelle touche une comparaison à 1 est effectuée.
 +Pour le T:
 +<code ASM>
 +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
 +</code>
 +On peut commencer à remplir le mot de passe :
 +<code>
 +T________________T
 +</code>
 +
 +
 +<code ASM>
 +004109AC  |>  833D 208B4100>CMP DWORD PTR [418B20],2                 ;  Case 48 ('H') of switch 004108BF
 +</code>
 +<code>
 +TH_______________T
 +</code>
 +
 +
 +<code ASM>
 +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
 +</code>
 +<code>
 +THE__E_____E_____TE
 +</code>
 +
 +
 +<code ASM>
 +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]
 +</code>
 +<code>
 +THE _E_____E_ ___TE
 +</code>
 +
 +
 +<code ASM>
 +00410991  |>  833D 208B4100>CMP DWORD PTR [418B20],5                 ;  Case 4B ('K') of switch 004108BF
 +00410998  |.^ EB B2         JMP SHORT CrackM3-.0041094C
 +</code>
 +<code>
 +THE KE_____E_ ___TE
 +</code>
 +
 +
 +
 +<code ASM>
 +00410A9A  |>  833D 208B4100>CMP DWORD PTR [418B20],7                 ;  Case 59 ('Y') of switch 004108BF
 +00410AA1  |.^ E9 A6FEFFFF   JMP CrackM3-.0041094C
 +</code>
 +<code>
 +THE KEY____E_ ___TE
 +</code>
 +
 +
 +<code ASM>
 +00410988  |.  833D 208B4100>CMP DWORD PTR [418B20],8                 ;  Case 4C ('L') of switch 004108BF
 +0041098F  |.^ EB BB         JMP SHORT CrackM3-.0041094C
 +</code>
 +<code>
 +THE KEYL___E_ ___TE
 +</code>
 +
 +
 +<code ASM>
 +004109F1  |>  833D 208B4100>CMP DWORD PTR [418B20],9                 ;  Case 4F ('O') of switch 004108BF
 +004109F8  |.^ E9 4FFFFFFF   JMP CrackM3-.0041094C
 +</code>
 +<code>
 +THE KEYLO__E_ ___TE
 +</code>
 +
 +
 +<code ASM>
 +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
 +</code>
 +<code>
 +THE KEYLOGGE_ ___TE
 +</code>
 +
 +
 +<code ASM>
 +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
 +</code>
 +<code>
 +THE KEYLOGGER ___TER
 +</code>
 +
 +
 +<code ASM>
 +004109C6  |>  833D 208B4100>CMP DWORD PTR [418B20],0F                ;  Case 4D ('M') of switch 004108BF
 +004109CD  |.^ E9 7AFFFFFF   JMP CrackM3-.0041094C
 +</code>
 +<code>
 +THE KEYLOGGER M__TER
 +</code>
 +
 +
 +<code ASM>
 +00410936  |>  833D 208B4100>CMP DWORD PTR [418B20],10                ;  Case 41 ('A') of switch 004108BF
 +0041093D  |.  EB 0D         JMP SHORT CrackM3-.0041094C
 +</code>
 +<code>
 +THE KEYLOGGER MA_TER
 +</code>
 +
 +
 +<code ASM>
 +00410A2B  |>  833D 208B4100>CMP DWORD PTR [418B20],11                ;  Case 53 ('S') of switch 004108BF
 +00410A32  |.^ E9 15FFFFFF   JMP CrackM3-.0041094C
 +</code>
 +<code>
 +THE KEYLOGGER MASTER
 +</code>
 +
 +Le mot de passe est donc "The keylogger master" ; il faut le rentrer assez vite pour voir apparaitre le goodboy.
  
  
  --- //c4ffein//  --- //c4ffein//
sthack4/crackm3.1398131399.txt.gz · Dernière modification: 2017/04/09 15:33 (modification externe)