Исследование защиты программы DLLShow v4.4 DllShow v4.4 позволяет просматривать, какие динамически библиотеки используются той или иной программой. Иногда может быть полезна, если нет под рукой чего-нибудь по лучше. Вообще, эта программа имеет очень простую защиту от взлома, преодолеть которую можно воспользовавшись одним лишь Софтайсом. Если ввести неправильный регистрационный код, то появится обычное сообщение, говорящее, что серийник неправильный. Попробуем поймать программу на считывании рег. кода. Итак, в водим в поле NAME имя, например, BioCyborG, в поле ORGANIZATION - CrackTeam, а в последнем пишем универсальный крякерский серийник: 12345. Теперь активизируем SoftICE (Ctrl+D или F5) и ставим точки останова на функции GetDlgItemTextA и GetWindowTextA (т.е. в Софтайсе вводим bpx GetDlgItemTextA, жмем ENTER вводим bpx GetWindowTextA и снова жмем ENTER). Теперь выходим из SI (Ctrl+D или F5), и щелкаем кнопку ОК в окне регистрации программы, чтобы запустить процесс проверки серийного номера. Если все было сделано правильно, то отладчик среагирует на вызов функции GetDlgItemTextA и остановит выполнение программы. Здесь жмем два раза F5 (чтобы прога прочитала поле Organization и серийник) и F12, чтобы попасть туда, откуда была вызвана функция: 0167:0041579B CALL [USER32!GetDlgItemTextA] 0167:004157A1 POP EDI 0167:004157A2 POP ESI 0167:004157A3 MOV EAX,00000001 0167:004157A8 POP EBX 0167:004157A9 RET 0167:004157AA NOP 0167:004157AB NOP 0167:004157AC NOP 0167:004157AD NOP Жмем F10, пока не увидим следующий код: 0167:0040D5FF PUSH ESI 0167:0040D600 CALL 004151A0 0167:0040D605 ADD ESP,08 0167:0040D608 CMP EBX,EAX <= в EBX наш код в ЕАХ- правильный 0167:0040D60A POP EDI 0167:0040D60B JZ 0040D62A <=переход, если равно 0167:0040D60D PUSH 0000EACF 0167:0040D612 PUSH 00001388 0167:0040D617 PUSH EBP 0167:0040D618 CALL 00409EC0 <=вызов сообщения о неправильном серийнике Остановившись на строке 0167:0040D608 CMP EBX,EAX посмотрим, чему равен EBX в десятеричном формате: введем ? EBX и увидим наш код; если же подать команду ? EAX, то обнаружится следующее число: 3728213069. Запомним его и продолжим трассировку программы. Но выполнив CALL 00409EC0 по адресу 0167:0040D618 нас выбрасывают из Софтайса с сообщением о неправильном серийном номере. Ну и ладно. Сейчас посмотрим, кто кого :-). Отключим все бряки командой bd * и введем полученное выше число в поле для серийника. Жмем кнопку ОК, и программа выражает благодарность за регистрацию. Информация приведена исключительно для ознакомления. Применение данной информации в незаконных целях категорически запрещается. © BioCyborG