[CRACKING] [MISCELLANEOUS] [DOWNLOADS] [LINKS] [CONTACTS]

Взлом и защита программного обеспечения

 

Исследование защиты программы 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, 2002

 © BioCyborG
www.biocyborg.narod.ru

Hosted by uCoz