Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Реверсинг (https://forum.antichat.xyz/forumdisplay.php?f=94)
-   -   CrackMe1 (https://forum.antichat.xyz/showthread.php?t=172333)

gr0t 21.01.2010 13:08

CrackMe1
 
Всем привет, недавно скачал крякмис. Автор пишет что серийник там есть в теле где-то))..где и как он вычисляется не могу понять, закинул в иду...но не могу понять как высчитывается и где хранится серийник. Кто поопытней направление подскажите. Крякмис для начинающих.
Залил крякмис http://www.multiupload.com/4EVCZTPHS1

spider-intruder 21.01.2010 14:43

loludididtcongtatz :D

0xF0RD 21.01.2010 15:20

Пробуй пароль:
x{xap}p}`w{zsfu`n

Смысл крякмиса в том, что к каждому вводимому символу (вернее к его коду) прибавляется значение 0x14h
Вводимая строка кодируется по заданному алгоритму, затем сравнивается со строкой, жестко зашитой в программе.
Вот она:
loludiditcongratzЕсли эту строку ввести под отладчиком, то будет найден вышеприведенный пароль!!!

spider-intruder 21.01.2010 15:40

Цитата:

к каждому вводимому символу прибавляется значение 0x14h
- Тут ты не прав ИМХО. Щас я проверю, но даже судя из строки для "шифрования" и пароля, они не отличаются побайтно на 0x14h даже визуально.

0xF0RD 21.01.2010 15:58

2spider-intruder
А ты пробовал вводить в крякмис строку
loludididtcongtatz
посмотри в отладчике цикл, начинающийся по адресу
0x402a53 (olly)

0xF0RD 21.01.2010 16:12

Смысл вот в чем:
Например, для буквы "a"
ASCII-код буквы a=61H, если к этому коду добавить 14H, то получим 75H=коду буквы "u", но дело в том, что если код буквы+14Н будет больше, чем 80Н, там это дело как-то преобразуется!!!
Это я пишу навскидку, если разобраться, можно до конца разобрать алгоритм шифрования

0xF0RD 21.01.2010 16:38

Все, разобрался!
Первое мнение было ошибочным!!!!
Вот он, правильный ответ:
Каждый символьный код вводимой строки ксорится значением 14Н,
например:
код "а"=61Н
61H xor 14H = 75H, что соответствует букве '"u"


"l'=6CH, 6ch xor 14H=78H, 78H="x", и так далее.

spider-intruder 21.01.2010 17:38

Вот теперь возьми пирожок с полки :-)

sub_401BE0(1u, *(_BYTE *)i ^ 0x14);
if ( &v25 != (char *)-4 )
{
if ( !&v25 )
_invalid_parameter_noinfo(v16, v15);
if ( v28 < 0x10 )
v17 = &v26;
else
v17 = v26;
if ( i >= (unsigned int)((char *)v17 + v27) )
_invalid_parameter_noinfo(v16, (char *)v17 + v27);
}

gr0t 21.01.2010 23:47

Парни спасибо за ответы, loludididtcongtatz видел и напрямую вводил, не подходит)) получается это типа шаблон на котором строиться правильный серийник?
Тоесть ксорим каждую букву loludididtcongtatz по 14H и получаем серийник?

0xF0RD 22.01.2010 02:28

Именно так!!!

gr0t 22.01.2010 03:20

Цитата:

Сообщение от 0xF0RD
Именно так!!!

Спс, посмотрю завтра, в репу закинул

recton 23.04.2010 10:24

Аналогичная проблема. Как я понял, правильный серийник не хранится, а проверяется путем замудренного преобразования, никак не могу его отследить. Процедура проверки 004011F0. сам файл http://slil.ru/29003280


Время: 19:24