T..E..A..M...5..3...T..U..T..O..R..i..A..L..S...P..A..C..K...#..1..0 ██████▀▀ ▀█▓▄ ▀▀▀▀▀▀ ▄█▓▀ ▀▀▀▀▀▀▀▀▀ ▄█▓▀ ▀▀▀▀▀▀▀▀▀ ▄█▓▀ ▀▀██████ ▓▀ ▀█▌ ▐██▌ ▐██▌ ▄ ▐██▌ ▄▓▄ ▐██▌ ▐▓▀ ▀█ ██▄▄▓▀ ▄████▓▓ ███▓█▓▄ ▀▓▀ █████▓▄ ▀ █████▓▄ ▀▓▄▄█▓ ▓▀▀ ▄▄██▓▀ ████ ████ ▀▀▓▓▄▄ ███▓ ▀▀▓▓▄▄ ███▓ ▀█▓▓▄▄ ▀▀▓ ▄▄█▓█▀██▌ ████ ████ ██▓▓ ███▓ ██▓▓ ███▓ ▐██▀█▓▓▄▄ ███▓ ██▓▄ ███▓ ███▓ ▄▄████ ████ ▄▄████ ████ ▄██▓ ███▓ ████ ███ ████ ███▓▄█▀ ▄▄▄▄ ███▓▄▓▀ ████ ████ ██▓ ███▓ ███ █████▌ ███▓ █████▌ ████ ████ ███ ████ ASCII ██▓ ▄▄ ████▀█▄ ███▓ ████▀▓▄ ████ ████ ████ -XERO ██▓ ▀█▓▀ ████ ████ ████ ███▓ ███▓ ▄ ████ -2006 ███ ███▓ ████ ███▓ ███▓ ████ ▀▓▀ ███▓ ▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ███▓▀▀▀▀▀▀▀▀▀▀▀ ▀▀█▓▄▄ ▀▀▀▀▀▀ ▄█▓▄ ▀▀▀▀▀▀ ▄▄█▓▀▀ ▀▀▀▀▀▀▀▀▀▀▀████ ████▀ ▄▓▄ ▄ ▀██▓▓▄ ▀██▓▄▀▀▄██▓▀ ▄███▓▀ ▄ ▄▓▄ ▀███▓ ███▌ ▀ ▀█▓▄ ▀▓▀ ▐████▌ ▐███▌▐███▌ ▐████▌ ▀▓▀ ▄█▓▀ ▀ ▐███ ██▀▓▄▀▓▄ ▐██▌ ▄ ▄███▓▀ ▄█▓▓▀ ▀██▓▄ ▀███▓▄ ▄ ▐██▌ ▄▓▀▄█▀██ █▄ ▄█▌▐█▌ ▄██▓▀ ▄▄▓▓▀▀▄▄█▓▀▀ ▀▀▓▓▄▄▀▀█▓▄▄ ▀██▓▄ ▐█▌▐▓▄ ▄▓ █▓▓▀▀▄███▓▀▀▄▄▓▓▀▀▄▄█▓▀▀ ▀▀▓▓▄▄▀▀▓▓▄▄▀▀▓██▓▄▀▀██▓ ▀▄▄██▓▀▀▄▄█▓▀▀ ████▓ ▄▄▄▄ ▄▄ ▄▄ ▄▄▄▄ ▄▄▄▄ ███▓▓ ▀▀▓▓▄▄▀▀█▓▓▄▄▀ ▄▓▀██▓▀▄███▓▀ ████▓ █▓ █▓ █▓ █▓ █▓▄▄ █████ ▀██▓▓▄▀███▀▓▄ ▐█▄ ▄█▌▐████▌ ▄█▓▄ █████ ██ ██▄██ ██ ▄▄█▓ █████ ▄█▓▄ ▐████▌▐▓▄ ▄█▌ ▀█▓██▓▄▀███▓▄ ▀▀ █████ ▄▄▄▄ ▄▄▄▄ ▄ ▄▄▄ █████ ▀▀ ▄███▓▀▄████▓▀ ▄▀▀██▓▄▄▀▀█▓▄▄ █████ █ ▓ █▄▄▓ ▄█▓ ██ █▓ █████ ▄▄█▓▀▀▄▄█▓▓▀▀▄ █▓█▄▄▀██▓▓▄ █████ █▓ ██ █▓ ████▓ ▄███▓▀▄▄██▓ █▀ ▀█▌▐████ ████▓ ▄▄█▓ █▓ █▓ █▓ ████▓▄▄█▓ ████▌▐█▀ ▀▓ █▓▄▓▀▄█▀███ ████▓ ▄▄▓████▓ ▀▀▀▀ ▀▀▀ ████████▓ ██▓▀▓▄▀▓▄██ ███▌ ███ ██████▓▀▀ █████ ▄▄▓▓▀▀ █████ ███ ▐███ ███▓▄ ▓▓▓ ▄██▓▀▀ █████ ▄▄█▓▀▀ █████ ▓▓▓ ▄████ ████ ▀▄ ▒▒▒ ▄███▓▀ █████ ▄███▓▀ █████ ▒▒▒ ▄▀ ████ ████ ▐▌░░░▐████▌ █████ ▐████▌ █████ ░░░▐▌ ████ ████ ▄▀ ▀██▓▓▄ ▐████▓ ▀██▓▓▄ ▐████▓ ▀▄ ███▓ ███▓▐▌ ▄▓▄ ▄█████▌ ▄█████▌ ▄▓▄ ▐▌███▓ ███▓ ▀▄ ▀ ▄▄█████▓▓▀ ▄▄█████▓▓▀ ▀ ▄▀ ███▓ ███▓▄▄▄▄▄▄▄▄ ▄▄▄▄██████▓▓▀▀ ▄▄▄▄▄ ▄▄▄▄██████▓▓▀▀ ▄▄▄▄▄▄▄▄▄▄▄████ Ionworx ICE License. Взглянем поближе. Автор..: anorganix \ ARTeam \ Март 2006 Перевод: nightcat \ TEAM-53 \ Апрель 2006 0. Pre-Вступление от НочногоКота Доброго времени суток. Я думаю будет целесообразным вас кое о чём предупредить. Дело в том, что автор данной статьи излагает свои мысли очень сжато. Т.е. он описывает путь взлома, но самих по себе объяснений "почему так, а не вот так" довольно мало. Так что вам может быть и не понятно кое-что в 4-м разделе. (Собственно мне тоже было немного не понятно) Прошу не валить всё на тупой перевод и т.д. Спасибо. 1. Вступление ICE License - это наисильнейшая и самая законченная и целостностная защита доступная на сегодняшний день для Borland Delphi и C++ Builder. Это новая инновационная защита для разработчиков на Borland, которые желают интегрировать систему защиты от копирования в своб программу и обеспечить максимальный уровень безопастности в своим приложениям. С ICE License вы можете создавать "Trial Editions" своего ПО. Генерация кейгенов присекается использованием ассиметричного криптования. Основные черты ICE License: · Anti-отладка & Anti-мониторинг (защита от тросировки кода) · Хорошая система ассиметричного шифрования (борьба с кейгенами) · Цифровая аутентификация (борьба с патчами) · Шифрование кода (защита от дампа) · Перенесение лицензии с одного ПК на другой · Возможность создания кейгена для вашего партнёра или дистрибьютора · Отлов смены даты или переустановки демо-версии · Шифрование функций с использованием AES Rijndael · Криптографическое хэширование MD5 для блокировки лицензии вашего ПО · Настраиваемая система мишинной блокировки (на основе данных от производителя) · LAN Control Защита с использованием TCP/IP · Шифрование и возможность спрятать текствовые строки в вашем приложении · Контроль ваших Лицензионных Ключей для предотвращения их незаконного использования · Использование компактных ключей для возможности регистрации с помощью ActiveKey · Добавление дополнительной информации внутрь вашей лицензии · Возможность просмотра каждой лицензии со всеми деталями · Создание специальных URL для прямого доступа к вашей странице регистрации · Невидимая софтверная защита не использующая "dongles" (аппаратные ключи) · Создание триальных копий вашего ПО с ограничением по дням, количеству запусков, часам работы или дате · Совместимость с Windows 95, 98, Me, NT, 2000, XP (SP2) · Поддержка Windows XP SP2 (начиная с ICE License v2.09) Больше информации вы можете найти на: http://www.ionworx.com/IceLicense.html 2. Что нам понадобиться Наши Цели: > Tomahawk Gold \ http://nativewinds.montana.com/software/tomahawk.html > getStarted!XP \ http://www.computentsystems.de/software.htm > TIceLicense for Delphi http://www.ionworx.com Инструменты: > OllyDbg > PEiD 0.94 > PE Explorer (или другой редактор ресурсов) 3. Tomahawk Gold 3.0 Наша первая цель запакована UPX-ом и использует ICE License. Сразу после запуска мы понимаем, что имеем дело с триальной версией программы, а следовательно с некоторыми отключёнными функциями. PEiD показывает: "UPX 0.89.6 - 1.02 / 1.05 - 1.24 (Delphi) stub -> Markus & Laszlo". Заметьте! KANAL показывает лишь "CRC32 [poly]". Достаточно легко, так что вы всё это должны распаковать быстро. Тем более, что статей на эту тему хватает. About-Box показывает нам: User Name: Trial License User Company: Evalution Product Name: Tomahawk Vendor Info: NativeWinds / Jack D. Lewis Creation Date: 2005/11/23 @ 1:24:47 AM License Expiration: 30 days Software Status: Trial Hardware Locked: No Network Protection: No Network User Allowed: No Итак, вы распаковали программу, теперь загружаем в PEiD и анализируем KANAL'ом. Видим полную хрень... 1 x BASE64 table 2 x CRC32 1 x FGInt ElGamalDecrypt 3 x MD5 Выглядит чертовски сложно, хотя на самом деле всё намного легче, чем кажется. Давайте откроем нашу цель в PExplorer и выберем "Resources Viewer/Editor". Зайдите в "RC Data" и посмотрите на формы. Нам нужна "TFORM3", глянем на компоненты, которые там есть... еще внимательней смотрим... опа, последний - "TIceLicense". Это очень большая находка для нас, т.к. мы только что обнаружили, что имеем дело с очень простой защитой. Если мы внимательно посмотрим на компонент TIceLicense, то увидим вот что: OnAppKeyIncorrect | IceLicense1AppKeyIncorrect OnTrialExpired | IceLicense1TrialExpired OnLicenseInvalid | IceLicense1AppKeyIncorrect OnLicenseFileError | IceLicense1AppKeyIncorrect OnLicenseInfo | IceLicense1LicenseInfo OnTrial | IceLicense1Trial OnRegistered | IceLicense1Registered OnTrialProgress | IceLicense1TrialProgress Теперь всё легко. Нам всего лишь нужно сделать несколько перестановок (используя PExplorer). Ваши события теперь должны выглядеть вот так: OnAppKeyIncorrect | IceLicense1Registered OnTrialExpired | IceLicense1Registered OnLicenseInvalid | IceLicense1Registered OnLicenseFileError | IceLicense1Registered OnLicenseInfo | IceLicense1Registered OnTrial | IceLicense1Registered OnRegistered | IceLicense1Registered OnTrialProgress | IceLicense1Registered После сохранения давайт протестим программу. Запуск, и... после нескольких секунд программа закрывается... Хм, странно. Чо-то мы не то сделали. Просто откройте файл "Tomahawk.key" с помощью Блокнота (не удаляйте файл), очистите весь текст и сохраните. Зачем мы это сделали? Да потому что мы его модифицировали чуть раньше ("OnLicenseInvalid >> IceLicense1Registered" и "OnLicenseFileError >> IceLicense1Registered"). Теперь программа игнорирует неверный кей-файл. Если вы не очистите этот файл, программа останется незарегистрированной! Открываем прогу, идём в about-box: о-да, мы это сделали! ICE License повержена! =) 4. getStarted!XP 4.5.6 Более новая версия ICE License отличается, и мне кажется потому авторы удалили большенство публичных событий, чтобы усовершенствовать защиту. Так что нам придётся использовать гибридный-метод, чтобы победить эту версию. Начнём с анализа нашей цели. PEiD -> "Borland Delphi 6.0 - 7.0". KANAL: 1 x BASE64 table 2 x CRC16 / CRC32 1 x FGInt MontgomeryModExp 1 x MD5 2 x Rijndael Не волнуйтесь, мы всё это обойдём, чтобы зарегистрировать программу. Теперь давайте откроем нашу цель в PExplorer. После небольшой прогулки по ресурсам мы оказываемся тут - "TFORM1". Этот ресур очень интересный, т.к. содержит уже известный нам компонент "TIceLicense". Двойной клик по нему и взглянем поближе: CodeEncryption | True AntiDebugging | True AntiMonitoring | True OnExeModified | IceLicense1ExeModified OnLicenseTrial | IceLicense1LicenseTrial Путь, которым мы пойдём не предусматривает отладку программы, но если вы хотите исследовать/пропатчить программу в Olly, то пожалуйста, убедитесь, что вы отключили защиту вот так: CodeEncryption | False AntiDebugging | False AntiMonitoring | False OnExeModified | nil OnLicenseTrial | IceLicense1LicenseTrial Так вы видите там больше нет события "OnRegistered", так что нужно найти другое решение. Перед тем, как продолжить, скачайте ICE License (trial) с сайта Ionworx's, нам это пригодится. Объясняю почему... После инсталляции ICE License, запустите файл "ICE License Manager.exe". Как вы заметите там нет триального ограничения, только наг-скрин, что не суть как важно. Теперь загрузите файл в PEiD и выберите плагин "PEiD Generic Unpacker". Нажмите "Unpack" и вы должны получить распакованный файл "ICE License Manager.unpacked.exe". Но этот файл не будет работать, хотя для нас это и не важно. Нам интересны лишь ресурсы. Откройте файл в PExplorer и найдите там "TFORM1". Заметьте, что там содержится компонент "TIceLicense", которого нет в триальном режиме. Так что нам нужно всего лишь взять оттуда значения и вписать их в триальный компонент "TIceLicense" в файле "getStarted.exe". Мы не знаем, что это за закриптованные строки, но мы знаем, что они превратят нашу программу в разегистрированную: ICE License Manager.unpacked.exe ICE_Data1 | tA3bpy6+aZPPwqsempwSxg== ICE_Data2 | Ffpb5POWZUIJ+isSre3nZ3eifl2IRJBU4H0O9MUOVmg= ICE_Data3 | AaSJTag+JmCuYNLHRrPOVw== ICE_Data4 | AaSJTag+JmCuYNLHRrPOVw== ICE_Data5 | ZoWn69d1asyJ4DLSisDfhqHjMNOxn12IzdxlmX4b9yA= ICE_Data6 | LM1/VCklnkSdi8Pd2Ejj/mYqf0qERlCpmVitejMkj68= ICE_Data7 | ilnmRK5a2otHIER+0oniUGuwEMsGg1zyR8s4hsHQLxk= ICE_Data8 | AaSJTag+JmCuYNLHRrPOVw== ICE_Data9 | AaSJTag+JmCuYNLHRrPOVw== Теперь нам нужно заменить значения из "getStarted.exe" на те, которые находятся чуть выше этого абзаца. Очевидно поле "ICE_LProtecton" не влияет на программу, но если вы желаете поэкспериментировать, то попробуйте поиграться с этими значениями... Сохраните отредактированный файл и протестируйте его. Триал исчез! 5. Заключение Итак, вот и конец истории, Я надеюсь, что всё тут сказанное будет для вас полезно в понимании последующих версий ICE License. И как всегда, я советую использовать этот материал только в образовательных целях, а не для взлома ПО. Спасибо за чтение этого туториала! 6. Greetings Спасибо, Pilli, за стою поддержку! Ты лучший! [ ARTeam ] [ EXETools ] [ all the RO scene ] [ bLaCk-eye ] [ vybez_mR ]