Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Исследование Talisman Desktop 2.31

Обсудить статью на форуме

Очень удобно, когда все крэкерские инструменты, книги и статьи в одном месте. Используйте сборник от EXELAB - вот тут.
 Привет!
 Вот вам очередное пособие (пятое) по исследованию схем защиты программного обеспечения.
 На этот раз мы поговорим о защите Talisman'а (в качестве испытуемого была взята версия 2.31
 build 2310). Прямо скажу - он обладает одним из лажовейших алгоритмов создания с/н
 известных человечеству. Давайте разберемся с ним (особого труда это не составит) и
 напишем свой генератор ключей.
 Для этого нам понадобится SoftICE. Приготавливать питье нет смысла, т. к. уверяю вас, что
 жажду вы почувствовать не успеете.
 Итак, начнем!
 
 Как обычно это бывает, вводите данные в поля регистрации Talisman'а, а в SoftICE ставьте
 бряк (breakpoint) на hmemcpy...
 Ввалившись в дебаггер вновь, натискните еще 3 раза на F5 (или на Ctrl+D), чтобы избавить
 себя от просмотра килобайт ненужного кода, затем 7 раз на F12, чтобы войти в код самого
 Talisman'а. После этого - еще 5 раз на F12. Это сохранит ваше время и перенесет сразу к
 алгоритму генерации с/н.
 Выполнив все вышеописанные шаги, вы должны приземлиться где-то здесь:
 
 :0047B7C6   call       0042B0A0
 :0047B7CB   xor        esi, esi              ; <--- приземляемся тут
 :0047B7CD   mov        eax, [ebp-08]         ; в ЕАХ помещается введенное имя
 :0047B7D0   call       00403D14              ; процедура определения длины имени
 :0047B7D5   test       eax, eax              ; длина имени равна нулю?
 :0047B7D7   jle        0047B7EC              ; если да - на выход
 :0047B7D9   mov        edx, 00000001         ; в EDX число 1, т. е. первый символ имени
 :0047B7DE   mov        ecx, [ebp-08]         ; в ЕСХ помещается введенное имя
 :0047B7E1   movzx      ecx, byte ptr [edx+ecx-01]   ;а теперь - текущий символ имени
 :0047B7E6   add        esi, ecx                     ; ESI = ESI + ECX
 :0047B7E8   inc        edx            ; берем следующий символ
 :0047B7E9   dec        eax            ; уменьшаем количество циклов на 1
 :0047B7EA   jnz        0047B7DE       ; перейти, если просмотрены все символы имени
 :0047B7EC   mov        [ebp-14], esi
 :0047B7EF   fild       dword ptr [ebp-14]
 :0047B7F2   call       004029C0
 :0047B7F7   imul       eax, eax, 00000309      ;EAX = EAX * 309h
 :0047B7FD   mov        esi, eax              ; в ESI идет готовый серийник
 :0047B7FF   cmp        esi, [ebp-04]  ;сравнение настоящего номера (в ESI) с введенным.
 . . .
 
 Все, установив курсор на строку "cmp esi, [ebp-04]" вводите:
 
 d ebp-04   <ввод>   <---------- увидите плохой (введенный) номер
 ? esi      <ввод>   <---------- увидите хороший номер
 
 Подведем итог схемы защиты:
 1) Найти сумму ASCII-кодов всех символов имени по очереди.
 2) Умножить полученную сумму на число 309h или 777 в десятичной системе счисления.
 
 Написать генератор вам труда не составит, но на всякий случай привожу код процедуры,
 написанный на Delphi:
 
 procedure Generate();
 var UsName:string;
     i,sym:byte;
     Serial, S:longint;
 begin
  S:=0;
  Serial:=0;
  for i:=1 to length(UsName) do
   begin
     sym:=byte(UsName[i]);
     S:=S+sym
   end;
  Serial:=S*$309
 end;
 
 Да, и это все :)
 
 В следующий раз я расскажу вам, как заставить работать FtpWolf 3.01 и объясню
 алгоритм генерации серийника, чтобы вы смогли сообразить свой личный генератор :)
 А пока можете попытаться сделать это сами. Не скучайте!
 
 Keep on cracking...
 



 Date  :24.09.2002
 Author: (ry0
 E-mail: cryo@cydem.zp.ua
 


Обсуждение статьи: Исследование Talisman Desktop 2.31 >>>


Материалы находятся на сайте https://exelab.ru



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS