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

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


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

Serial fishing на примере Teleport Pro 1.29.1590

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

Массу крэкерских инструментов, видеоуроков и статей вы сможете найти на видеокурсе от нашего сайта. Подробнее здесь.
Description : [WIN] Teleport Pro 1.29.1590
Crack subject : Trial limitation (40 uses only and 200 files per project)
Crack made by : Runtime_err0r
Crack made at : 26-04-2002
Comments : http://www.tenmax.com
Protection : (X)Beginner ( )Intermediate ( )Advanced ( )Expert
Time for hack : 00:10
Type of hack : Serial
Used packer : none
Used unpacker : none
File size : 851968 bytes
Src language : Visual C++
Price : $39.95 US
Used tools : TRW 1.22, calc.exe :-)))
Under Music : Ленинград "Пираты XXI века"

Внимание !!!
Данная статья носит образовательный характер и предназначена для разработчиков программных защит.
Автор не несёт никакой ответственности за возможное использование материалов данной статьи в противозаконных целях.

А люди не летают, не летают как птицы
Оттого что отрастили большие ягодицы,
Оттого что нелётная погода,
Оттого что п-ползать нынче мода.




В этой статье я хочу продемонстрировать на простом примере метод, который называется "serial fishing". Прежде чем пояснить его суть я процетирую отрывок из книги KPNC "Техника и философия хакерских атак": "Мир давно привык к тому, что популярные технологии вовсе не обязательно бывают хорошими. Именно так произошло и в области защиты условно-бесплатного программного обеспечения. Наибольшее распространение получила защита, основанная на регистрации клиента. Слабость этого механизма в том, что регистрационный код, генерируемый на основе имени пользователя, может быть проверен единственно возможным способом: аналогичной генерацией и последующей сверкой."
Из этого следует, что совершенно не обязательно разбираться в тонкостях генерации серийного номера и писать keygen, достаточно просто найти в программе тот момент, когда программа сгенерировала правильный серийник и сравнивает его с введённым, затем посмотреть содержимое нужного регистра и всё - правильный серийный номер у нас в руках !!!

Теперь от теории перейдём к практике. Прежде всего надо необходимо найти то место в программе, где программа считывает введённые регистрационные данные и сверяет их с правильными. Вариантов тут немного, в данном случае ставим бряку на GetWindowText. Итак, запускаем TRW (подойдёт и SoftIce, но мне TRW нравится больше), нажимаем кнопку Browse, выбираем C:\Program Files\Teleport Pro\pro.exe и нажимаем кнопку Load. Всплывёт окошко TRW, нажимаем F5, запускается Teleport.
(Если вы уже являетесь зарегистрированным владельцем программы, то для выполнения следующих действий найдите в реестре раздел HKEY_CURRENT_USER\Software\Tennyson Maxwell\Teleport Pro\User и удалите ключ Registration)
Теперь входим в пункт меню Help -> Register... и вводим следующие данные:
Your Name: Runtime_error
Company:
Registration Code: 1234567890
Название компании можно ввести любое или вообще не вводить - в генерации серийного номера оно не участвует. Теперь самое время запустить виндузовский калькулятор и пересчитать наш серийник в hex, у меня получилось 499602В2. Теперь нажимаем Ctrl-n всплывает окно TRW, теперь вводим pbx GetWindowText [Enter] и Ctrl-n ещё раз. Теперь нажимаем кнопку OK, TRW брякнется где-то в недрах системной библиотеки USER, жмём F12 3 раза и попадаем в код pro.exe:
       0167:0044B3CF  POP      EBP
       0167:0044B3D0  RET      0C
       0167:0044B3D3  PUSH     ESI
       0167:0044B3D4  MOV      ESI,[ESP+08]
       0167:0044B3D8  PUSH     EDI
       0167:0044B3D9  MOV      ECX,ESI
       0167:0044B3DB  PUSH     DWORD [ESP+10]
       0167:0044B3DF  CALL     0044B1AA
       0167:0044B3E4  XOR      EDI,EDI
       0167:0044B3E6  CMP      [ESI],EDI
       0167:0044B3E8  JZ       0044B400
       0167:0044B3EA  PUSH     EDI
       0167:0044B3EB  PUSH     EDI
       0167:0044B3EC  PUSH     DWORD F0
       0167:0044B3F1  PUSH     EAX
       0167:0044B3F2  CALL     `USER32!SendMessageA`
       0167:0044B3F8  MOV      ECX,[ESP+14]
       
Тут ничего интересного нет - жмём F12 ещё раз, оказываемся здесь:
       0167:00426735  POP      EBX
       0167:00426736  RET      04
       0167:00426739  MOV      EAX,004690B0
       0167:0042673E  RET
       0167:0042673F  MOV      EAX,004638F0
       0167:00426744  CALL     0042C3F8
       0167:00426749  PUSH     ECX
       0167:0042674A  PUSH     ECX
       0167:0042674B  PUSH     EBX
       0167:0042674C  PUSH     ESI
       0167:0042674D  MOV      ESI,ECX
       0167:0042674F  CALL     00440B04
       0167:00426754  MOV      EAX,[0047E484]
       0167:00426759  MOV      [EBP-14],EAX
       0167:0042675C  XOR      EBX,EBX
       0167:0042675E  MOV      [EBP-10],EAX
 	  
Тут тоже ничего интересного, жмём F12 ещё раз, попадаем сюда:
       0167:004433D6  LEAVE
       0167:004433D7  RET      04
       0167:004433DA  MOV      EAX,ECX
       0167:004433DC  MOV      ECX,[ESP+08]
       0167:004433E0  AND      DWORD [EAX+08],BYTE +00
       0167:004433E4  MOV      [EAX],ECX
       0167:004433E6  MOV      ECX,[ESP+04]
       0167:004433EA  MOV      [EAX+04],ECX
       0167:004433ED  RET      08
       0167:004433F0  PUSH     EBP
       0167:004433F1  MOV      EBP,ESP
       0167:004433F3  SUB      ESP,BYTE +60
       0167:004433F6  PUSH     EBX
       0167:004433F7  PUSH     ESI
       0167:004433F8  MOV      ESI,ECX
       0167:004433FA  PUSH     EDI
       0167:004433FB  MOV      [EBP-08],ESI
 	  
Если теперь нажать F12 ещё раз, то программа Teleport выдаст окошко:
We're sorry! The registration number you entered appears to be invalid...
Поэтому дальше будем трассировать кнопкой F10, внимательно следя за значениями регистров (если окно регистров не видно на экране, включите его командой wr). После команды RET мы попадаем сюда:
       0167:00426905  MOV      EAX,[EDI+DD]
       0167:0042690B  XOR      EBX,EBX
       0167:0042690D  PUSH     BYTE +0A
       0167:0042690F  PUSH     EBX
       0167:00426910  PUSH     EAX
       0167:00426911  CALL     0042D274
 	  
После этого вызова значение регистра EAX изменится на 499602В2. Упс, да это же наш серийный номер, смотрим дальше .....
       0167:00426916  MOV      ECX,[004820F8]
       0167:0042691C  ADD      ESP,BYTE +0C
       0167:0042691F  MOV      [EBP-18],EAX
 	  
Теперь наш серийник помещён по адресу [EBP-18].
       0167:00426922  CMP      [ECX+04DB],BL
       0167:00426928  JZ       NEAR 00426B40
       0167:0042692E  CMP      EAX,EBX
       0167:00426930  MOV      ESI,0047DA00
       0167:00426935  JZ       NEAR 00426A41
       0167:0042693B  PUSH     DWORD [EDI+D5]
       0167:00426941  CALL     004272DC
       0167:00426946  CMP      [EBP-18],EAX
 	  
Теперь регистр EAX равен 42BFA2C2 и он сравнивается с введённым серийником. Интересно, не так ли? Попробуем перевести его в десятичный формат (должно получиться 1119855298) и ввести в окошко регистрации ....

Thank you! Your copy of Teleport Pro is now registered. All limits have been removed.

Типа, всё :-)))

Обсуждение статьи: Serial fishing на примере Teleport Pro 1.29.1590 >>>


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



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


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