Пример взлома: WinRAR Крис Касперски ака мыщъх Спецвыпуск: Хакер, номер #057, стр. 057-048-5 Просматривая дизассемблерный листинг, ищем такую функцию SetDlgItemTextA, чьим аргументом будет идентификатор 66h. В конечном счете мы находим ее по адресу 4447ECh: 004447E6 call sub_4113DC 004447EB push eax ; lpString 004447EC push 66h ; nIDDlgItem 004447EE push [ebp+hDlg] 004447F1 call SetDlgItemTextA Функция sub_4113DC возвращает указатель на выводимую строку, которая тут же передается SetDlgItemTextA. Исследовать саму sub_4113DC мы не будем. Имя зарегистрированного пользователя берется из ключевого файла, над которым можно просидеть всю оставшуюся жизнь. Лучше внедрить свою строку в исполняемый файл и подменить указатель. Внедряться будем в секцию данных, в хвосте которой практически всегда имеется свободное место. Размещать выводимую строку в секции кода нельзя, поскольку RAR требует, чтобы она была доступа на запись. Открываем HIEW, переходим в HEX-режим, давим <F8> для отображения заголовка файла и вызываем таблицу объектов (object table) клавишей <F6>. За секций .data расположена секция .tls. Подгоняем сюда курсор и нажимаем на <ENTER>, а затем перемещаемся на несколько строк вверх, следя за тем, чтобы не залезть в значимые данные, которые начинаются там, где кончается цепочка нолей. В нашем случае это будет адрес 49D7B0h (хотя при желании также можно выбрать 49D7AEh, 49D7AFh и т.д.). Нажимаем <F3> для перехода в режим редактирования и записываем "registered version hacked by nezumi" (nezumi - это "мыщъх" по-японски). Теперь переходим по адресу 4447E6h, возвращаясь к нашей диалоговой процедуре, и заменяем call sub_4113DC (E8 F1 CB FC FF) на mov eax, 49D7B0 (B8 B0 D7 49 00), где 49D7B0h – адрес хакнутой строки. Сохраняем изменения в файле, и… работает! Теперь взломанная версия ничем не отличается от легально зарегистрированной! Разумеется, это еще не означает, что теперь RAR'ом можно пользоваться и ничего за это не платить (а законов никто не отменял), поэтому сразу же после экспериментов взломанный файл должен быть удален с жесткого диска. Заключение Многие разработчики используют электронные подписи и прочие криптографические механизмы, надеясь, что так уберегутся от зловредных хакеров. Как бы не так! Криптография - конечно, мощная штука, но к ней нужен свой подход. Если программа опирается на флаг регистрации (а так поступает большинство программ), она элементарно взламывается правкой нескольких байт, на поиск которых уходит совсем немного времени. Зачем искать в Сети крэки, которые еще не факт что заработают. Гораздо интереснее и быстрее взламывать программы самостоятельно! Подопытный WinRAR можно скачать по адресу www.rarsoft.com/rar/wrar342.exe. На диске ты можешь найти как сам WinRAR, так и утилиты, необходимые для его взлома. |