RCE.SU - реверсинг, кодинг, выделенные сервера, ICQ, proxy
Описание (в просторечии - тутор :] ) на

ORiON Official CrackMe v1.0 - Hard

(q) Deu$

Загружаем файл и видим поле для ввода serial`а.. ну-с, начинается тривиальный перебор, на чем бы подловить крякмис.. вводим в SI `bpx GetWindowTextA`. Возвращаемся по F5 и вводим в поле `serial` что-нть вроде `123456`. Жмем OK. и оказываемся в SI на нашем бряке.. далее.. надо вывалиться туда, откуда функция была вызвана.. F11. потом еще 2 раза F12. все.. что получилось:

.....................................
0177:00401413  CALL      00401AB8
0177:00401418  MOV       EDI,[EBP+60]
0177:0040141B  OR        ECX,-01                                          
0177:0040141E  XOR       EAX,EAX                                                
0177:00401420  LEA       EDX,[ESP+10]                                           
0177:00401424  REPNZ SCASB                                                      
0177:00401426  NOT       ECX                                                    
.....................................
мы вышли из функции 401AB8 и сейчас стоим на адресе 401418. глянув адрес ebp+60h, увидим введенный сериал.. убираем бряк (`bc 0`) и трассируем до:
0177:00401464  CALL      [004021B4]
0177:0040146A  ADD       ESP,0C
0177:0040146D  LEA       ESI,[ESP+2C]
0177:00401471  LEA       EAX,[ESP+10]
0177:00401475  MOV       DL,[EAX]
0177:00401477  MOV       BL,[ESI]
0177:00401479  MOV       CL,DL
0177:0040147B  CMP       DL,BL
0177:0040147D  JNZ       0040149D
0177:0040147F  TEST      CL,CL
0177:00401481  JZ        00401499
0177:00401483  MOV       DL,[EAX+01]
0177:00401486  MOV       BL,[ESI+01]
0177:00401489  MOV       CL,DL
0177:0040148B  CMP       DL,BL
0177:0040148D  JNZ       0040149D
0177:0040148F  ADD       EAX,02
Перед нами первая проверка.. в EAX заносится адрес введенного сериала, а в ESI какое-то меняющееся при новом запуске число.. (возможно, просто random`ное.. лень копаться.. :] )

Эта проверка, видимо, вставлена, чтобы запутать неопытного ломальщика, т.к. для того, чтобы ее не пройти, надо постараться.. =).. спокойно переходим к следующему участку кода:

0177:004014A6  LEA       EDI,[ESP+10]                                          
0177:004014AA  OR        ECX,-01                                               
0177:004014AD  XOR       EAX,EAX                                                
0177:004014AF  REPNZ SCASB                                                      
0177:004014B1  NOT       ECX                                                    
0177:004014B3  DEC       ECX                                                    
0177:004014B4  CMP       ECX,04                                                 
0177:004014B7  JBE       00401505                                               
В ECX получаем длину введенной строки.. если она <=4, то это не есть гут.. тоже условие, которое в принципе, ничего не дает..
Двигаемся далее:
0177:004014B9  MOV       ESI,004032AC
0177:004014BE  LEA       EAX,[ESP+10]
0177:004014C2  MOV       DL,[EAX] 
0177:004014C4  MOV       BL,[ESI]
0177:004014C6  MOV       CL,DL
0177:004014C8  CMP       DL,BL
0177:004014CA  JNZ       004014EA
0177:004014CC  TEST      CL,CL
0177:004014CE  JZ        004014E6
0177:004014D0  MOV       DL,[EAX+01]
0177:004014D3  MOV       BL,[ESI+01]
0177:004014D6  MOV       CL,DL
0177:004014D8  CMP       DL,BL
0177:004014DA  JNZ       004014EA
0177:004014DC  ADD       EAX,02
0177:004014DF  ADD       ESI,02
0177:004014E2  TEST      CL,CL
0177:004014E4  JNZ       004014C2
0177:004014E6  XOR       EAX,EAX
0177:004014E8  JMP       004014EF  
Вторая, и последняя (как выяснится позже :] ) проверка..
В ESI заносится адрес некой константы, с которой и сравнивается наш сериал.. ничего здесь хитрого нет.. автор опять-же решил кого-то напугать таким немалым кодом, который можно заменить несколькими строками.. в результате, если совпадение введенного сериала (с 66139364353) состоялось, то EAX обнуляется (иначе становится равным -1).. теперь он анализируется..
0177:004014EF  TEST      EAX,EAX                                               
0177:004014F1  JNZ       00401505                                              
0177:004014F3  PUSH      EAX                                                    
0177:004014F4  PUSH      00403134                                               
0177:004014F9  PUSH      00403118                                               
0177:004014FE  MOV       ECX,EBP                                                
0177:00401500  CALL      00401AB2                                               
0177:00401505  POP       EDI                                                    
если EAX не 0, то мы прыгаем на коварный (еще из первой проверки) адрес 401505. иначе, формируется оконце, которое заставляет не лучшим образом подумать о группе `ORiON` и их "hard"-кракмисе.. =)
..настраивался на кейген.. а пришлось довольствоваться лишь сериалом: 66139364353

(q) Deu$
antkoch@mail.ru
18/11/2000
19:50


<= Вернуться к статьям


Rambler's Top100