
                       
\        /Ŀ                         Ŀ  
MMMM\     /MMM                        SSSSSSSSSSSSSSS                   
MMMMM\   /MMMM                        SSSSSSSSSSSSSS               (R)
MMMMMM\_/MMMMM                        SSSSSSSSSSSSSS 
MMMMMMMMMMMMMMM/\Ŀ/\      SSSSSSSSSSĴ/Ŀ  /Ŀ/\ 
MMMMMMMMMMMMMaaaaaaaaaannn/nnnn    SSSSSSSSSSSSSSSuuu uuunnn/nnnn
MMM\MMMM/MMM\_/\aaannnnnnnn͹ĿSSSSSSSuuu uuunnnnnnnn
MMM  MMM//aaannnڿnnnL!KESSSSSSSSSSSSSSSuuu uuunnnڿnnn
MMM  MMM/aaaaaaaaannnnnn͹SSSSSSSSSSSSSSuuu uuunnnnnn
MMM      MMMaaaa<>aaaannnnnnSSSSSSSSSSSSSSSuuuuuunnnnnn
MMM      MMMaaaaaaaaaannnnnn    SSSSSSSSSSSSSSSuuuuuuuuuunnnnnn
ٰ      \/ٰ    \Ŀ__ٰ
                   
                                                 _
                       _ __ _ __ __ ___ ___ _ __ ____
                       '_ \ '_/ -__-</ -_) ' \  _(_-<               
                       .__/_ \___/__/\_____\__/__/....            
                      _           .......                       
                                  -----------                        
                                ===============
                              ~~~~~~~~~~~~~~~~~~~ 

wITAM aLL !!!

Dzisiaj pobawimy sie "CrackMe v1.0 by cybult":

Name: "CrackMe v1.0 by cybult"
Skill: Newbies
Anti-SI: none

A wiec zaczynamy szkoda czasu, szczegolnie ze crackme jest bardzo latwe wiec proponuje Ci najpierw samemu sprobowac... no dalej nie boj sie sprobuj... !!!

Jak nie dales rady to czytaj !!

Dobra uruchamiamy crackme, widzimy dwa pola: Name i Serial gdzie mozna wpisac dowolne wartosci !!
Hmm.. na co by to zlapac, nie ma klawisz w stylu 'OK' lub 'Accept'
Ja zdisamblowalem go pod Wdasm'em i zobaczylem co jest w 'Imports' i spodobala mi sie funkcja "GetDlgItemTextA".
Wiec albo zastawiamy breakpointa w SI na ta funkcje i probujemy wklepac name (za kazdym razem SI przerywa), lub wpisujemy Name wchodzimy do SI bpx getdlgitemtexta wychodzimy z SI i myszka klikamy na Serial i SI sie lapie, standardowo F11 i zobaczymy:

0167:00401133  E88E000000          CALL      USER32!GetDlgItemTextA          
0167:00401138  85C0                TEST      EAX,EAX  <=czy cos wpisalismy   
0167:0040113A  7464                JZ        004011A0 <=jesli nie skok do BAD 
0167:0040113C  83F80C              CMP       EAX,0C  <=czy name 12 znakow    
0167:0040113F  755F                JNZ       004011A0 <=jelsi nie skok do BAD 
0167:00401141  B8A4314000          MOV       EAX,004031A4 <=Adres Name        
0167:00401146  A1A4314000          MOV       EAX,[004031A4]   <1>            
0167:0040114B  83F00A              XOR       EAX,0A                          
0167:0040114E  0501208319          ADD       EAX,19832001                    
0167:00401153  83E801              SUB       EAX,01                          
0167:00401156  3D4781EA7D          CMP       EAX,7DEA8147                    
0167:0040115B  7543                JNZ       004011A0                        

0167:0040115D  A1A8314000          MOV       EAX,[004031A8]   <2>       
0167:00401162  83F00B              XOR       EAX,0B                          
0167:00401165  0501208319          ADD       EAX,19832001                    
0167:0040116A  83E810              SUB       EAX,10                          
0167:0040116D  3D5B40D693          CMP       EAX,93D6405B                    
0167:00401172  752C                JNZ       004011A0                        

0167:00401174  A1AC314000          MOV       EAX,[004031AC]   <3>           
0167:00401179  83F00C              XOR       EAX,0C                          
0167:0040117C  0501208319          ADD       EAX,19832001                    
0167:00401181  2D00010000          SUB       EAX,00000100                    
0167:00401186  3D6E8BE43A          CMP       EAX,3AE48B6E                    
0167:0040118B  7513                JNZ       004011A0    <=skok do BAD       
0167:0040118D  6863314000          PUSH      00403163    
ponizej wywolanie komunikatu ze Crackme zlamane !!!

Dobra pare pierwszych lini opisalem !!!
Numerami 1, 2, 3 oznaczylem kawalki kodu odpowiadajace za sprawdzenie czy name prawidlowy.
Wszystkie trzy kawalki sa identyczne (no oprocz wartosci) wiec opisze tylko pierwszy kawalek, a nastepne dwa policzysz sobie sam (analogicznie) !!!

A wiec:
Aha ja do Name wpisalem "mansununderp"

<1>
MOV       EAX,[004031A4] <=do EAX pierwsze 4 znaki naszego name, wiec w moim                            przypadku w EAX 736E616D h czyli 'snam' ASCII     
XOR       EAX,0A         <=Xor z wartoscia 0A                 
ADD       EAX,19832001   <=ADD wartosc 19832001                 
SUB       EAX,01         <=SUB wartosc 01                
CMP       EAX,7DEA8147   <=porownanie czy w EAX 7DEA8147                 
JNZ       004011A0       <=jesli nie do skok do BAD

Wiec odwrocona procka to:

MOV EAX, 7DEA8147
ADD EAX, 01
SUB EAX, 19832001
XOR EAX, 0A

po tym kawalku kodu w EAX poprawne 4 pierwsze znaki naszego name, wiec liczymy w SI:

? 7DEA8147 + 01 = 7DEA8148
? 7DEA8148 - 19832001 = 64676147
? 64676147 ^ 0A = 6467614D => to 'dgaM'

Analogicznie wyliczasz pozostale znaki (zmieniaja sie tylko wartosci) !!!
Po obliczeniach cale NAME to "Magda Szala!"

Wiec uruchamiasz Crackme wpisujesz "Magda Szala!" bez cudzyslowiow i w polu Serila pokazuje sie: Congratulations!  Good Work!  You cracked me!
 
I to wszystko !!!



                                  ͻ 
                                Ĺ cONTACT: Ŀ
                                 ͼ 
                 Ŀ
                  ManSun mEMBER oF UnderPL cRACKING gROUP      
                                                               
                  eMAIL:[ mansun@go2.pl ]                      
                                                               
                  UnderPL sITE:[ www.under2001.prv.pl ]        
                                                               
                  UnderPL eMAIL:[ under@under2001.prv.pl       
                 

 -= This NFO was created with "elton's NFO-Builder 2000". A FNW Release =- nt    
                                                         ___  ___  ___  ____  
                                                        _  / _ \/ _ \/_  / 
                                                       / __// // / // / / /  
                      <MANl!keSUN>  cOPYRIGHT:  /____/\___/\___/ /_/  



                                                                        
