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
antkoch@mail.ru 18/11/2000 19:50 |