Нахождение регистрационного кода тремя способами для Irfan View 3.17Delphi , Программа и Интерфейс , Исследование программНахождение регистрационного кода тремя способами для Irfan View 3.17Автор: Fess Target: Irfan View 3.17 Tools:
Все, кроме мозгов, можно найти на www.exetools.com Вступление Как это начиналось: Было скучно и решил я накатать какой-нибудь тьториал. Так вот давным-давно, когда я мало что умел нашел я код (подсмотрел в отладчике) для этой замечательной проги. Теперь же, поскольку я еще кой-чему научился, решил сбацать еще и кей-ген. Кстати, регистрационный код подходит к любой версии Виева, так что... ВПЕРЕД!!! Что за прога: Очень рульный (ИМХО: самый лучший) просмотрщик графических файлов, поддерживает кучу форматов, с помощью плагинов еще больше, быстрый, удобный, занимает мало места и главное БЕСПЛАТНЫЙ. Отсебятина Вы можете подумать, что я дурак ломаю бесплатную программу, но это не так! Первое: В программе все-таки предусмотрена регистрация для зарегист- рированных юзеров тех.поддержка и всякое такое. Второе: если вы сломаете эту прогу, вы тем самым не нарушите ничьи авторские права, поскольку ее стоимость равна 0$. Третье: для крэкера не важна цена, а важен процесс взлома, моральные ощущения от этого, я еще напишу об этом в каком-нибудь крэкерско-филосовском мануале "Зачем ломают программы или крэкеры на воле" Как сказал Гагарин: Пое-е-ехали! (ЗЫ: вообще-то, он сказал ЧТО У ВАС ТАМ КРЫШИ ПОЕ-Е-ЕХАЛИ?!!) Начало Хм.Хм. Перво-наперво определимся, чем защищена программа, для этого проверим не запакована ли она. Для этих целей воспользуемлся программой PeIdentifier она правильно определила это AsPack 2000 для снятия воспользуйтесь любым доступным унпакером (я пользовался сборкой UN-PACK 2.2). После этого, если вы любите дизассемблировать в Win32Dasm'e, а я люблю, то придется немного подправить таблицу импорта для этого воспользуемся программой ProcDump32 нажимает PE Editor открываем распакованый файл. Нажимаем на кнопку Section и появляемся в разделе секций. По содержащимся секциям можно предположить, что это C++ (первая секция .text). Вот ее-то и правим в поле Section Characteristics заносим E0000020 вместо C0000040. Теперь можно дизассемблировать и текст дизассемблируется нормально. Листинг дизассемблера есть проверим программу, заходим в Help\Registration и вводим любое имя и любой код, должна появится строка Incorrect Registration, если вы угадали и у Вас такая строка не появилась, то искренне Вас с этим поздравляю и направляю в казино в Лас-Вегасе (если выйграете меня не забывайте!). Строка есть, заходим в Win32Dasm и ищем ее там, и откудова она вызывается, для этого заходим в раздел строк и ищем там нашу, а после того как найдете, нажмите на нее два раза и окажитесь здесь
Из этого участка кода ясно видно, что по адресу 446597 находится процедура проверки. И в ecx и edx в нее вносятся введенный код и введенный ключ. Давайте все же определимся, что нам предстоит сделать нам предстоит три раза взломать эту программу тремя разными способами: Способы:
Подсмотр настоящего кода Самый простой и самый применяемый начинающими метод взлома, поскольку подсмотреть легко и вроде настоящий ключ на руках. (В первый раз я ее так и сломал) Сперва заходим в процедуру проверки и идем в самый конец, а там смотрим, что творится перед выходом! Запускаем любой отладчик, я использовал TRW 2000, поскольку перезагружаться не хотелось.
Тут все просто, если сравнение верное, то в ecx будет 1, если нет то 0. Но что заносится параметром edx в процедуру? Давайте посмотрим для этого запускаем отладчик, ставим бряк на этот адрес bpx 427374. Вводим любое имя и код, я использовал Fess и 11002233. Когда вываливаемся, набираем команду d edx и что мы видим? Какие-то циферки, списываем их себе на бумажку, у меня 202382506, еще раз запускаем и вводим их вместо регистрационного номера. И что мы видим - МЫ ЗАРЕГЕНЫ!!! УРА!!! Вот и все, можете успокоится, а мы продолжаем. Создание кейгена на основе самой программы Я уже много раз описывал эту процедуру, но для Вас повторюсь еще разок. Так вот вы уже видели, как подсмотреть регистрационный номер в отладчике, а теперь мы сделаем, чтобы программа сама выдавала его в MessageBox'е. Для этого нужно, посмотреть hex-представление каманды MessageBoxA. Заходим в таблицу импорта в Win32Dasme щелкаем на USER32.MessageBoxA и видим
Hex-представление FF1554834A00 запишем, нам это еще пригодится. Теперь будем думать, как это осуществить на вот этом участке кода, знаком * в конце строки, я помечу, чем можно здесь пожертвовать и выкинуть
Готово осталось написать последовательность команд не длиннее, заданного участка кода. Я решил сделать вот так: (Описание параметров функции MessageBoxA смотри в WinAPI или других моих тьюториалах)
Вы, наверно, думаете почуму я заменил sete cl на xor ecx,ecx и nop очень просто, если так оставить, то получится обыкновенный патч и он зарегистрируется на введенное вами имя и чтобы повторно использовать этот кейген вам понадобится лезть в каталог WINDOWS и удалять из файла I_VIEW32.INI информацию о регистрации, а можно и весь файл, а тут она никогда не зарегистрируется и всегда можно генерить новые ключи. Начинаем. Заходим в hex-редактор набираем для поиска такую строку 52E81613070083C404. Почему такую? Нам надо найти место правки кода, для этого мы переписываем достаточное кол-во байт исходного кода и ищем, где они встречаются. У меня все нашлось на 26774. Теперь начиная с этого места переписываем представление всех команд из блока выше. Если все выполнено правильно, то теперь после ввода регистрационных данных, в окне отображается истинный ключ для вашего имени. Гейген готов, но хочется большего, поэтому продолжаем. Написание кейгена на Делфи Для написания гейгена надо полностью исседовать код процедуры генерации и воссоздать его заново, это обычно делается в отладчике, но поскольку вы читаете этот тьюториал, я рядом с кодом буду писать, что он делает.
А дальше вы и сами разберетесь, просто иначе место много займет, а там все аналогично. Я ту попарился минут с 40 (не сложно, а писанины много) и соорудил такой кейген. Создаете новое приложение, ставите на форму два компонента Edit с именами Edit1 (для ввода имени) и Edit2 (для вывода ключа) {они по умолчанию такие}, ставите одну кнопку. Нажимаете на нее два раза, вы окажитесь в процедуре обработки нажатия на кнопку, теперь замените ее моей и разбирайтесь:
Процедура генерации опробована и проверена!! Так что ошибок нет. Сдалана на Delphi 4.5, я думаю, подойдут все версии, начиная с 4. Будем надеятся, что вы все поняли из выше сказанного, если что-то непонятно пишите на мыло. Я помогу! Спасибо за интерес к моему творчеству! Удачи в Reversing Engeneering! Послесловие Спасибо автору за предоставленный для исследования продукт. Было очень интересно. Господа, если у Вас есть деньги, то скиньте немного автору, поскольку продукт и правда замечательный. Так же выражаю ему благодарность за интересное времяпрепровождение. Вредный совет Если ночью Вы не спите, Жмете клавиши на клаве, А соседи ваши ночью Очень любят отдыхать. То купите себе принтер Матричный, обыкновенный И тогда они узнают, Что такое тишина." (Fess)
Все ругательства отправлять в null З.Ы. Возможны ошибки. Взлом игры 3 минуты. Написание статьи 50 минут, видите как старался. With best wishes Fess Трехкратный способ нахождения регистрационного кода для программы Irfan View 3.17, включающий в себя подсмотр настоящего кода, создание кейгена на основе самой программы и написание кейгена на Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Исследование программ ::
|
|||||||||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |