Главная » Статьи » Крэкинг

Исследование ORiON Official CrackMe v1.0 - Hard.

мы вышли из функции 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

Автор: Deu$

Категория: Крэкинг | Добавил: -=Hellsing=- (17.06.2009)
Просмотров: 1388 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]