_|________ ______|_ ____: /_ ____\ :______ __|____ _____|____|_________ | | \__ \_ |___ | |_ / / _| (_________________/_________________) TEAM-53 TUTORiALS PACK NUMBER EiGHTTEEN Взлом AWicons v8.8.1 -------------------- Вступление: Я коллекционирую пиктограммы(иконки) -небольшие графические изображения, которые используются в качестве значков для программ. Но иногда хочется создать что-то свое, неповторимое. Для этих целей используют редакторы пиктограмм, такие как ArtIcons, Axialis IconWorkshop и т.д. Как-то я скачал AWicons -это продвинутый редактор значков и курсоров. программа заинтересовала меня: стильный и удобный интерфейс, неплохие возможности. И все было-бы хорошо, если-бы она не требовала регистрации. Еще она грозилась перестать работать после 30 дней :( Можно конечно скачать крэк, но тогда для чего нам наш мозг? А еще у нас есть руки, которые некуда деть :) , поэтому я решил все это направить на взлом софтинки! Для этого нам понадобятся: Дизассемблер = w32Dasm, и какой-нидь HEX-едитор, советую Hiew. Кстати, ломаем мы AWicons версии 8.8.1 , язык не имеет значения. Начало: При запуске программы появляется NAG-окно. В нем есть пункт "Registration", нажмем на него. Внизу появятся 2 текстовых поля, для имени и серийного номера. Введем в них случайные данные и нажмем "Ok". Выскочил MessageBox с текстом "Error! Wrong registration code!". В русскоязычном интерфейсе программы надпись, естественно, будет другая. Но это не имеет особого значения, т.к. код программы использует только англоязычные надписи. Русский текст накладывается "поверху". Предположительно если ввести правильный серийный номер, то надпись в окне сообщения будет другая. От этого и будем отталкиваться. Взлом: Закрываем программу (если она открыта) и засылаем файл awicons.eXe в w32Dasm. Дожидаемся окончания процесса дизассемблирования. Запускаем "String Data References"(в меню "Refs" или кнопкой на панели инструментов) -это список символьных строк, которые используются программой. В списке ищем надпись "Wrong registration code!", т.к. строка "Error! Wrong registration code!" состоит из двух строк: "Error" и "Wrong registration code!". Кто знает сколько раз в программе может встречаться первая строка, а вот вторая -то что нам надо. Находим её в конце листинга и нажимаем на нее двойным кликом. По ссылке переходим в тот участок кода, где задействована эта строка. Пролистав код чуть выше мы видим что программа заслала нас на этот участок кода условным переходом из адреса 0x0040313B. Жмем Shift+F12 (переход на участок кода) и вводим этот адрес. Ну что перешли? А теперь посмотрим ниже. Опа!!! Видите текст "Registered to"? Чтобы это могло значить :) ? Теперь прокрутим немного вверх и видим следующее: :00403134 E827F7FFFF CALL 00402860 :00403139 85C0 test eax, eax можно предположить что в функции 00402860 сверяются серийный номер вычисленный программой и введенный Вами. В регистр eax записывается результат, который проверяется командой test. Если сравнение прошло удачно, значит мы идем на вывод поздравлений с успешной регистрацией, иначе выводится знакомая нам надпись ;\ Теперь зайдем в эту функцию. Обычно результат работы функции определяется в самом конце этой функции. Значит, идем вниз до тех пор, пока не увидим команду "ret" -это возвращение из функции. Дошли! Видим примерно следующее: чуть выше "ret" в регистр eax записывается единица. Вероятнее всего это число и возвращается функцией при неверном серийном номере. Далее есть два способа: 1. Можно изменить возвращаемую единицу на нуль. 2. Выйти из функции и изменить условный переход jg 004033F3 на jz 004033F3 Выбирать Вам! Теперь закрываем Dasm и запускаем Hiew. Открываем в Hiew файл awicons.eXe (не забудьте сделать резервную копию). Жмем F4 и выбираем режим Decode (F3). Далее следуем инструкции соответствующей выбранному способу. Для первого способа: Жмем F5 и вводим адрес 2CB7. Попадаем на код, в котором регистру eax(ax) присваивается "1". Нажимаем F3, затем F2. В появившемся окне вводим mov ax,00000 и нажимаем Enter. Сохраняем изменения клавишей F9. Выходим из Hiew Для второго способа: Жмем F5 и вводим адрес 313B. Нажимаем F3, далее F2. Вводим jz 000033F1 и нажимаем Enter. Фиксируем изменения клавишей F9 и выходим из программы. Конец: Вот мы и взломали программу AWicons v8.8.1. Если Вам так важно, чтобы в программе "светилось" ваше имя, то в пункте меню "Help"->"About" вызываем знакомый Nag Screen. Жмем "Registration" и в поле "Name" вводим свое имя. Поле "Code" можно не заполнять. Вот и ВСЁ! Я рассказал Вам как ломать это, а Вы попробуйте сами найти правильный серийный номер ;-) Ведь Вы настоящие КрАкеРы? А я пошел спать (пятый час утра, блин!). Теперь точно конец: Данная статья приводится только в образовательных целях! А вы как думали? :) И прошу не судить строго, ведь это моя первая статья! С уважением, MAXIMUS (mx12), тот, что из XHome.