Взлом программ для чайников
Время на прочтение
5 мин
Количество просмотров 434K

В данной статье я хочу рассказать про три с половиной основных способа взлома программ на .NET, цель, которую я преследую — помочь разработчикам лучше понять механизмы защиты своих программ, т.е. выяснить наиболее очевидные угрозы и предпринять соответствующие меры (или не принимать).
Я не буду углубляться в детали и использовать сложные инструменты для взлома. Всё будет расписано «для чайников», т.е. все инструменты будут простыми, легкодоступными и бесплатными. А основным будет Reflector, декомпилятор программ под .NET

Для начала краткий ликбез по структуре .NET программы, для тех кто не знаком с разработкой под данный Framework: весь код, написанный на любом .NET языке (C#, Visual Basic, F#, Delphi.NET) компилируется в особый Intermediate Language, называемый обычно IL или MSIL. Это что-то типа ассемблера, только весьма умного и обладающего весьма мощными инструкциями. И это, в принципе, такой же равноправный язык как и C#, только синтаксис похуже (а возможности больше). Кроме того, в программе на .NET активно используются метаданные, т.е. вся информация о классах, метода, пропертях, атрибутах и всём остальном сохранена в исполняемом файле.
Т.е. на самом деле, декомпиляция программы не очень верное понятие в данном случае. Она и так вся в открытом виде лежит, а инструменты в виде Reflector’а занимаются тем, что приводят конструкции MSIL к соответствующим конструкциям C# или другого языка, повышая читабельность кода.
Перейдём, собственно, к взлому.
0. Обнуление триала
Собственно, это даже не взлом, а полулегальный способ продлить срок использования неактивированной программы. Заключается он в том, что находится место, где хранится дата первого запуска и меняется/уничтожается. После этого всё можно пользоваться программой до следующего срока.
Посмотрим на нашего подопытного рефлектором. Немного погуляв по коду, находим интересную строчку в конструкторе MainForm:
Открываем редактор реестра, идём в HKEY_CURRENT_USERSoftwareUltrapicoExpresso и видим следующие ключи:
Удаляем их и получаем ещё 60 дней работы.
Данный вариант, конечно, прост и очевиден, но если он даже был бы сложнее — потребовалось бы чуть больше времени провести в рефлекторе, чтобы выяснить все места, куда пишется информация и зачистить их.
Совет разработчикам, которые будут пытаться записать данные в потаённое место: пишите аккуратнее, а то всё может обернуться проблемами обычным пользователям, у которых почему-то не окажется данного места, или не хватит на него прав.
1. Написание keygen’а
Самый ужасный для разработчика вариант, и самый приятный для конечного злобного пользователя. Программа считает себя лицензионной, никаких страшных телодвижений не нужно делать.
Открываем рефлектор и ищем код на предмет классов содержащих License или Registration, видим:
При вводе имени и кода по имени вычисляется некий хеш, который и сравнивается с кодом.
Данный хеш использует DES и всякие префиксы
Байты конвертятся в строку с помощью данного метода.
Теперь всё выяснилось, открываем IDE и копируем все необходимые куски кода (или сами реализовываем). Осталось только выяснить, какие значения у Prefix, Suffix и параметры реализации MyDES. Я их приводить не буду, это уже технические детали.
В результате генерируем ключ на любое имя и видим:
Бинго!
Защита от кейгенов проста и очевида: использовать в каком либо виде ассиметричное шифрование. Т.е. сделать так, чтобы без знания приватного ключа сгенерировать код было бы невозможно, а данный ключ находится только в одном месте — у автора программы.
2. Использование враппера
Проверка корректности лицензии, достаточно хлопотное дело, и небыстрое. Поэтому разработчики программ обычно проверяют лицензию один раз, и дальше используют полученный флажок — валидна/невалидна (как вариант насколько валидна, если допускается несколько типов лицензии, отличающихся возможностями). Тут можно на этом сыграть, использовав следующий алгоритм:
- Указать программе, что лицензия уже проверена
- Указать программе, что лицензия корректна
Как это сделать? Я уже упоминал о наличии метаданных в исполняемых файлах в начале, этим и воспользуемся. Посмотрим как запускается программа и как проверяется лицензия:
С запуском ничего интересного, а в проверке видно, что если уже программа зарегистрирована, то она считает, что всё хорошо и не делает дальнейшую работы по выяснению корректности лицензии.
Воспользуемся этим. Сделаем новый проект, добавим Reference на Expresso.exe и запустим его через себя:
Смотрим, что получилось:
Ну кто бы сомневался.
В данном случае всё оказалось просто, но если бы автор программы заменил публичные свойства на приватные, то всего-лишь пришлось бы использовать Reflection для доступа и всё бы свелось к исходной задаче.
Думаю понятно, как можно пробовать защититься от этого — проверять лицензию периодически, смотреть окружение из которого запущена программа, сделать невозможным установку нужной переменной.
Но все эти защиты приведут к тому, что злоумышленник будет использовать
3. Физический взлом программы
Тут уже всё серьёзно. Программа целиком декомилируется в MSIL а из него уже собирается обратно (помните, я писал, что MSIL это такой же язык как и C#?). Для декомпиляции нам понадобится утилита из SDK под названием ildasm, а для компиляции компилятор из .NET Framework ilasm.
Запускаем ildasm, открываем Expresso.exe и сохраняем дамп в .il файл. Находим уже рассмотренный метод IsRegistered и добавляем немножко своего кода (без меток):
Потом берём ilasm и собираем всё назад (не забыв подключить ресурсы).
Что делает данный код: устанавливает нужное имя для регистрации (не обязательно), и возвращает статус, что всё хорошо.
Чтобы было понятнее, так это выглядит в рефлекторе, в C#
Т.е. вполне очевидно, что теперь всё будет хорошо:
Немного про код в MSIL: это стековая машина, у которой нет регистров, все операции имеют вид: засунуть в стек нужное количество параметров, выполнить функцию, которая заберёт нужное количество параметров и положит результат. Ну и обратно: установить значение переменной тем, что лежит в стеке. Чтобы лучше понять работу всего этого рекомендую простой приём: пишите маленькую программу на привычном языке, компилируете, смотрите что получилось в MSILe и разбираетесь в конструкциях языка.
При этом некоторые вещи в MSIL можно сделать очень красиво, например поменять две переменные местами — 4 симпатичных строчки (на C# меньше, но некрасиво).
Чем жертвует злоумышленник: подписью программы, теперь она уже не автора, а его. В некоторых случаях это проблема, если в программе используется множество библиотек. Тогда злобному хакеру придётся разбирать их все и собирать их заново, но если он с этим справится, то у него будет «своя» версия программы подписанная его ключом.
Защиты от всего этого безобразия собственно немного: проводить обфускацию или выносить часть логики/проверки защиты в нативный код.
Заключение
Думаю я рассказал, как просто всё можно разломать на .NET, если создатель не приложил усилий для защиты своей программы. А вы уж решайте, стоит ли делать защиту и тратить на это время и ресурсы. А может просто сделать web-систему, или же бесплатную ограниченную версию. Решать разработчикам.
Для начала немного теории. Само название «КрЭк» (а в разговорном «КрЯк») переводится как «Трещина», а в разговорном английском как «Кража со взломом». Перевод говорит сам за себя(Прим. Автора — для чайников: крЭкинг – это взлом шароварного(платного, от слова «Shareware») софта(программного обеспечения), с целью получения полнофункциональной версии, разблокировки ограничений, обусловленных нелицензионной или незарегистрированной копией, а также продление/снятие триального (от слова Trial — испытательного) периода или просто убирание надоедающего окна, в котором при каждом запуске вам напоминают о регистрации). Само занятие крЭкинг появилось с появлением первого платного софта. Соответственно сразу нашлись люди(так сказать Робин-Гуды), которым очень не понравилось, что за какое-то программное обеспечение разработчики начали ещё и брать деньги. Они не просто ради практики начали ломать софт, а и свободно распространять свои «КрЯки» в интернете, наверно чтобы принести всеобщую радость халявы в мир (или чтобы дать разработчикам понять, что они смело могут полностью отказаться от всех своих защит, потому что не было ещё не сломанной защиты). Ладно, перейдём к делу…
Чтобы изучить теорию защиты от взлома ПО нужно изучить все тонкости самого взлома. Так что мы сначала начнём именно с него. Возьмём пару программ и походу разберёмся как, что и куда. Вот. В альтернативу всем остальным статьям по крЯкингу я возьму не зарубежный софт, а наш советский, то бишь софт стран бывшего СССР. Кстати, т.к. в России/Украине больше крЭкеров, чем в остальных странах, то в основном наши умельцы действительно очень хорошо защищают свой софт. Но, как известно, из всех правил всегда существуют исключения. Всё. К делу…
Начнём с самого простого. Правда не совсем с самого, потому что брать для примера такие программы, в которых пароль для её регистрации спокойно лежит в текстовых ресурсах, я не собираюсь, так как это полный примитив. Поэтому возьмём для начала такую советскую прогу, в которой постоянно просят ввести пароль, а иначе программуля совсем откажется работать.
Я взял действительно нужную программу «Зодчий», которая представляет собой менеджер базы данных СНиПов(строительные нормы и правила) и ГОСТов для архитекторов. В доказательство, что она настолько полезна, я поискал в интернете на неё уже сделанный крЯк. И очень удивился, когда не нашёл ни одного бесплатного крЯка, а самый дешёвый из них стоил порядка 312грн. Что всё равно гораздо дешевле чем лицензия(уж поверьте). Кстати, не спешите качать с Интернета все подряд крЯки на интересующий вас софт, т.к. кроме угрозы «нахватать» вирусов существуют ещё и просто «лохотроны»(пустышки), в которых вам взамен на в будущем высланный вам код вы обязуетесь пополнить крЯкеру телефонный счёт или ещё что-то на подобии этого. Не ведитесь.
Ладно, вернёмся к нашему делу. По нажатии на кнопку «Зарегистрировать» появляется поле с уже введённой половиной пароля и предложение ввести вторую половинку. Давайте попробуем ввести неправильный (вдруг программа и так запустится). К сожалению прога по нажатию на Enter тут же закрылась. «Что ж тут делать?», спросите вы. А я вам отвечу. В данном случае есть 7 подходов. Перечислим каждый из них:
Вот. Чтобы осуществить крЯк хоть одним из этих методов нужно посмотреть не сжата ли программа внешним упаковщиком. Программы часто сжимают в основном из-за защиты, из-за сохранения авторских прав и просто из-за улучшения компактности программы. Самые распространённые пакеры (от англ. pack – «упаковывать»): UPX, AsPack(и AsProtect), PECompact, WinUPack, Telock, NeoLite, Yoda, PE-Shield, Armadillo… Они сжимают как и все(или не часть) ресурсы так и сам код программы, что приводит к невозможности её дизассемблирования (декомпиляции в исходный код ассемблера), отладки(трассировки) и даже редактированию ресурсов. Поэтому перед крЯком обязательно нужно проверить подопытную прогу на «сжатость».

Как видим наш «Зодчий» (его исполняемый файл имеет имя ARM_ARH.EXE) ничем не сжат. А PEiD даже показывает нам, что он написан на языке Borland Delphi. Также они оба могут показать наглядную информацию о структуре файла, в которую вам вникать вовсе не обязательно. Т.к. наш файл ничем не сжат мы можем смело приступать ко всему остальному.
Давайте попробуем начать с самого простого, с проверки шифруется ли пароль. Для этого нам понадобится дЭбаггер(от анлг. Debugger – «отладчик»). Я поклонник «OllyDBG». Так как считаю, что эра SoftICE’а уже в прошлом(но он ещё актуален для отладки драйверов). Открываем в нём наш ARM_ARH.EXE, ждём пока Оля («Olly») проанализирует весь код и начинаем отладку. Жмём F9 (Run) , наш Зодчий запускается без exception’ов (от англ. exception – «исключение»). Это означает, что на него «не поставили» никакой анти-отладочной защиты.
Вводим вместо 2-ой половины пасса(пароля) что угодно и скрестив пальцы молимся, что сейчас отловим требуемый пароль. Жмём на Enter, перед нами «предстаёт» окно Olly, в статусной панели которого мы можем прочитать, что возник экзэпшн по адресу 0EEDFADE. В принципе это нам и надо. Теперь «шарим» взглядом по дампу памяти(правое нижнее окно). Тут мы видим всё, что произошло с программой с момента её запуска(переход по адресам, загрузка модулей, строк, вызов функций и возврат из них). Но, к сожалению, пароля мы тут так и не нашли. Но не расстраивайтесь, не всё уж так плохо.
Попробуем такую теорию, а что если полный пароль загружается только тогда, когда мы вводим пароль заново полностью, а не только 2-ю половину. Для этого жмём радио-кнопку «Повторно на этой ПЭВМ» и перед нами появляется абсолютно пустой TEdit(поле для ввода). Вводим снова что попало и жмём Enter. Опять таки вылетает exception с тем же адресом. Ошибка, скорее всего, обусловлена запросом программы на выход. Снова «проматываем» весь дамп в поисках паролей. И… натыкаемся на очень любопытные строки:
0012F0D0 |00FA2E18 ASCII «75ZS8H»
0012F0D4 |00FA2E04 ASCII "A3R6NR"
0012F0D8 |00FA2DC8 ASCII "75ZS8H2238859"
0012F0DC |00F9F170 ASCII "A3R6NR306767043" //если помните, это уже введён-
0012F0E0 |00F9F18C ASCII "A3R6NR306767043-?" ная половина нашего пароля.
0012F0E4 |00F9F128 ASCII "033005"
Хм. Не трудно увидеть, что ASCII-строка «75ZS8H2238859» очень смахивает(по длине) на вторую половину. Стоит попробовать. И… Поздравляю, у нас всё вышло! Скриншот можете посмотреть ниже.
Ну вот. С одним простым крЯком мы справились. Теперь у нас есть пароль, который мы можем продавать за 312грн. Но у нас есть ещё и мозги, поэтому мы его и сохранять не будем, т.к. знаем, что эти действия припадают под статью УК Украины. Поэтому эта статья рассматривается только как наглядный пример, в котором показывается насколько слаба бывает защита у программного обеспечения. И за любое неправомерное использование данного материала ответственность несёт только сам читатель.
Так перейдём к более сложному крЯку. Возьмём очень популярный на сегодняшний день плЭер: Light Alloy. Его сделала наша советская компания-разработчик Softella ( http://www.softella.com/ ).
Для регистрации разработчики предлагают нам отгадать одну из загадок. Но если нам очень тяжело каждый раз их угадывать, то мы можем написать крЭк. Также при запуске сначала показывается NUG-окно. То есть окно, с сообщением о демо-версии:
На заголовке окна LA красуется неприятная надпись UNREGISTERED. А сама регистрация проходит в таком виде:
Ну что ж, как вы уже догадались, нам следует искать «развилку» проверки пароля. Начнём. Сначала проверим не запакован ли чем-то наш LA.exe. Отправляем в PEiD и… видим, что он нагло сжат самым популярным пакером UPX.
Чтобы распаковать его лезьте в нЭт по линке http://upx.sourceforge.net/ и качайте распаковщик UPX’а или скачайте его вместе с GUI (графический интерфейс), мой называется UPX X-Shell 1.02 (http://www.urixsoft.nm.ru/). Откройте его в нём и нажмите кнопку «Распаковать». Если на статусной панели появится надпись «… БЕЗ ОШИБОК», значит всё в порядке.
Теперь вы увидите, что размер LA.exe увеличился с 894КБ аж до 2,75МБ и рядом с файлом появилась резервная копия LA.ex~ со старым размером. Отлично, распаковали.
Теперь к делу. Загружаем наш плЭер в Олли и запускаем(F9). Сразу же вылетает экзэпшн. Это первая противоотладочная защита. Но она легко пропускается Олли по нажатию Shift+F9.
Теперь ищём текстовые ссылки (string rпосле eferences), которые соответствуют смыслу. Для этого в главном окне отладки с ярлыком «С» и заголовком «CPU – main thread, module LA» нажмите правую кнопку мыши ->Search for->All referenced text strings и проматывайте в поисках чего-нибудь. Я напал на такую строку: ASCII «Registration is successful. Please restart application.»
Двойной клик и мы переносимся именно на тот адрес команда которого подгружает этот текст. По логике, развилка должна быть выше. Идём вверх и видим команду сравнения test и прыжок сразу же неё.
Слово short означает – короткий, то есть недалёкий прыжок. Видим что он осуществляется (это показывает маленькая галочка слева от шестнадцатеричного представления команды) и что он перепрыгивает в этом же файле(LA) на адрес 0050417А. Сама команда je означат jump if equal, то есть прыжок при равности. С адреса 0050417А идут команды присвоения/помещения mov и помещение в регистр общего предназначения edx строки о неправильности кода.
Это означает, что в будущем она по любому вызовется, скорее всего в процедуре которая вызывается командой call (от англ. call – «вызывать») по адресу 00504186. Вот. Тогда пробуем «переключить» стрелку (условный прыжок). То есть мы прыгнем на сообщение «Access code is not valid» уже тогда, когда мы введём именно правильный пароль. А при вводе любого другого пароля программа продолжит своё выполнение вниз по коду и дойдёт до требуемого «Registration is successful». Это самый стандартный и самый простой метод крЯкинга.
Сначала завершим предыдущую сессию отладки нажав Ctrl+F2. Щёлкаем дважды по строке с нашим прыжком (адрес 0050415D) и переименовываем je в jne(jump if not equal). И снова жмём Run (F9).
Увы… Как это ни странно LA показывает всё то же сообщение о неправильности пароля. А это значит, что программа там даже и не проходит… А это просто программистский обман.
Ну что ж, мы не сдаёмся. Стрелки « > », слева от кода команд, означают, что на команду по этому адресу возможен переход программы с какого-то удалённого адреса. То есть на меченый стрелкой адрес совершается прыжок или вызов процедуры.
Тогда давайте попробуем поставить брЭйк(breakpoint) на команду с адресом 0050418B. Для этого нужно «подсветить» мышкой или клавой эту команду и нажать F2. Адрес подсветится выделяющимся цветом. Жмём Ctrl+F2 и снова F9.
Программа всё так же запускается, но при вводе неправильного пароля останавливается именно так, где мы поставили брЭйк и передаёт управление в отладчик. А это значит, что мы с вами не ошибались и что всё-таки мы на правильном пути. Значит нужно подниматься ещё выше дабы найти «настоящий» участок сравнения и прыжок следующий за ним.
Находим ближайшие(впрочем и единственные в этой подпроцедуре, в которой мы находимся) условные переходы:
00504096 |. 0F84 86000000 je LA.00504122
005040E3 75 2A jnz short LA.0050410F
На обоих стоят маленькие галочки(просто они не скопировались как символ). Смело ставим брЭйки на них и перезапускаем отладку. При нажатии кнопки подтверждающей ввод пароля у нас «вылетает» наш брЭйк. То есть всё идёт по плану.
Теперь чисто для теста мы меняем его с je на jne и трассируем методом Step over (покомандная отладка программы без входа в подпроцедуру) . Когда доходим до нашего второго jump’а мы видим, что он тоже «собирается» прыгнуть (Jump is taken). А если он прыгнет мы снова попадём на «… code is invalid». То есть мы столкнулись с двойной перепроверкой пароля.
Это показывает на наличие большего числа извилин у разработчиков чем одна. Хм, но нам то что. Смело меняем jnz (всё равно, что jne) на обратный ему je и наслаждаемся результатом:
Теперь надо сохранить наши изменения в исполняемый файл. Для этого жмём правую->Copy to executable-> All modifications. Откроется окно «D», нажмите «закрыть» его. И вам предложат сохранить его. Введите что- то на подобии LA(cracked).exe.
Теперь давайте проверим на работоспособность нашу сохранённую программу. Запускаем и опа… Программа «выбивает» две ошибки. Но ведь в отладчике у нас всё работало. А это значит, что разработчики поставили ещё и двойную проверку подлинности пароля при запуске. Для этого они и просили перезапустить программу. Под видом, что она так не может обновиться.
Ну ладно. Загружаем уже LA(cracked) в Олли. Запускаем. Натыкаемся на два exception’а, пропускаем их через щифт и… перед нами красуется всё то же окно с надписью «UNREGISTERED».
Хм… А ведь почему бы не «оттолкнуться» именно от него. Рыщем в текстовых ссылках и находим:
005558A1 |. B9 6C5B5500 mov ecx,LA_c.00555B6C ; ASCII " - UNREGISTERED"
БрЭйк можно не ставить, т.к. программа точно проходит тут(эта ссылка только одна) . Идём вверх в поисках возможных полезных развилок, которых по идее должно быть две…
0055584E |. 75 70 jnz short LA_c.005558C0
0055586D |. 75 51 jnz short LA_c.005558C0
В данном случае маленькие галочки(которые обозначают эквивалентность) показывают нам, что прыжок не состоится. А значит программа «спустится» до «UNREGISTERED». Следовательно нам надо совершить эти прыжки. Меняем их на je, сохраняем изменения и запускаем уже сохранённый файл.
Всё супер. Перед нами предстаёт окошко Light Alloy’я без всяких UNREGISTERED. Отличная работа!
Так. Следующие примеры я буду описывать немного быстрее. Всё-таки вы ж уже тоже опытные…

За что мы зацепимся? Хм. Отладчик распознаёт только латинские буквы. Поищем в текстовых ссылках мыло(e-mail) разработчика… Нету.
О, кнопка xUSSR. Ищем… Есть! То, что надо. Но их есть две. Ставим брЭйк на обе.
004165D7 . BA A26C4A00 mov edx,SlyCtrl2.004A6CA2 ; ASCII «xUSSR»
00416FED . BA 2C6E4A00 mov edx,SlyCtrl2.004A6E2C ; ASCII "xUSSR"
В принципе, программа полнофункциональна, остаётся только лишить её этого NUG’а(сообщения, напоминающего о регистрации). Трассируем… Пропускаем пару экзэпшнов и «натыкаемся» на первый брЭйк(для интереса можете убедиться в том, что прога не будет проходить через второй брЭйк). Но окно регистрации ещё не появилось. Так что трассируем дальше, что бы найти именно его вызов. И доходим до:
00413D6D FF92 E8000000 call dword ptr ds:[edx+E8] ; jmp.&vcl60.@Forms@…
00413D73 . 8B0D 7CEC4A00 mov ecx,dword ptr ds:[4AEC7C]; SlyCtrl2._RegForm
В данном случае лучше пойти вверх и переключить «развилку», чем просто заполнить вызов Рег.Формы NOP’ами. Да и на главной форме красуется надпись:
Так что идём вверх… И видим одну очень примечательную структурку:
Ведь это спокойно может быть сравнение. Изменяем. К нашей с вами радости не появляется ни какого NUG’а, а заголовок формы очень изменился в лучшую сторону:
Вот так вот мы поломали пару советских программ.
А теперь я хочу вам показать как делаются NO-CD. То есть крЯки игр с целью их запуска без диска и обеспечения их полнофункциональности. Возьмём уже далеко не советскую игру «Heroes of Might and Magic V» версии 1.0 от издателя 1С. Установим. Запустим:
Как видите игра «просит» диск. Если у вас здоровенный винт и вам не в лом вставлять полтора гигабайтовый виртуальный диск, то можете ничего и не делать. Но мы её попробуем крЯкнуть.
Программа ничем не сжата и написана на «Micorsoft Visual C++ 7.0 Method2 [Debug]». Загружаем её в Олли и… из-за здорового размера (11,26Мб) Олли переглючивает и он виснет на 97,7 процентах анализа файла.
Может через пол дня он и догрузится, но я со своим PIV 640 3,2GHz решил, что 10 минут хватило, чтобы понять, что он уже не загрузится.
Тогда решаемся использовать более примитивный софт для крЯка, такой как W32Dasm и HIEW. Когда-то я «сидел» только на них. Dasm(disassembler) тужится, но буквально через 3 минуты всё-таки полностью загружает и анализирует наш H5_Game.exe.
Нажимаем Ctrl+L (Load) вместо F9 (Олли) и видим снова окошко с предупреждением о вставке диска. Переключаемся на Дасм, жмём Паузу (кнопкой или пробелом) и видим, что управление не передалось сразу Дасму.
Ну ничего, жмём на повтор и видим как Дасм нам сразу показал адрес MessageBox’а, в котором мы только что нажали «Повтор»:
Походу тут конструкция cmp/jne ответственна за наш выбор нажатия кнопок («Повтор» или «Отмена»), но сам факт, что диалог уже вызван присутствует. Значит идём вверх и натыкаемся на такие строки:
Прыжки jbe и jne можете проверить, но ничего не получится. Это значит что сюда программа «прыгает» из другого участка проги. А с какого нам показывают две строчки: Referenced by a… Jump at Addresses:
и 3 адреса прыжков, с которых может быть совершён прыжок сюда, к нашему MessageBox’у.
Ищем их в асм-листинге(можно промоткой, а можно через «Перейти» Shift+F12) и ставим на все 3 прыжка брЭйки. Буквы «(C)» и «(U)» означают «Conditional»(от англ. условный) и «Unconditional»(безусловный).
:00401181 0F8598000000 jne 0040121F
:004011AB 7472 je 0040121F
:004011F8 7525 jne 0040121F
И «гоним» прогу дальше(F9). Видим, что срабатывает первый(самый верхний) брЭйк, потом несколько раз прыгает на 2-ой, но в конечном случае на MessageBox прыгает всё-таки с самого нижнего.
Пробуем его поменять. ГыгЫ ) Не вышло?! 
Для этого открываем его в 16-ричном дизассемблерном редакторе HIEW. Я лично переименовываю файл в H5_Game(c).exe.hiew и выбираю HIEW в «открыть с помощью».
Когда открывается HIEW нажмите Enter 2 раза. Это переведёт его в режим дизассемблера.
Переходим на адрес нижнего прыжка. Для этого нажмите F5 и введите адрес с точкой: .004011F8.
Нажимаем F3(правка) и если вы хорошо разбираетесь в 16-теричной системе счисления, то можете просто заменить 5 на 4 в 2-х байтах: 75 25. А если вам тяжело это помнить, то можете нажать ещё и F2 и править саму ассемблерную команду. Сохраняем(F9). Теперь копируем с переименовкой файл H5_Game(c).exe.hiew в H5_Game(c).exe и запускаем. Но перед нами снова появляется всё то же сообщение…
Снова просматриваем код. И видим, что прыжок:
:0040121D 7533 jne 00401252
Должен перепрыгивать через MessageBox. Значит он не осуществляется.
Так давайте переключим его. Снова в HIEW. С 7533 в 7433. Сохраняем(F9). Переименовываем. И запускаем. Гы. Игра начинает загружаться.
Теперь возьмём достаточно похожий случай. Игра:«FIFA2007» (Вы скажете: «Так она у меня и так без диска идёт!». Это значит, что у вас скорее всего новая версия с русскими комментаторами или ваша игра от другого издателя). Устанавливаем, запускаем:
Посмотрим что мы сможем с этим сделать. Действуем как и в прошлый раз. PEiD нам говорит, что fifa07.exe ничем не сжат. Тут, по моему, само реально пойти самым распространённым методом отладки: ставить брЭйки на WinAPI функции, вызывающие диалог или показывающие окно. Ну, для этого их нужно знать. Вот пару самых распространённых: MessageBoxA, MessageBoxW, ShowWindow, ShowWindowEx.
Загружаем ФИФУ в Олли. Открываем, если не открыт по умолчанию, плагин «Command line» (Plugins->2. Command line). Пишем туда «bpx MessageBoxA», жмём Enter. И точно так же проделываем с MessageBoxW…
Если вы захотите выбрать брЭйк из всего списка API-функций, используемых в приложении, вы можете написать в плагин: «bpx “что угодно”». То есть не правильную API. Например: «bpx dfgsdfg». И из списка через правую поставить брЭйк куда хотите ничего не вводя. Теперь в окне «(B) Breakpoints» появится список ваших поставленных брЭйков. В нём вы можете приостановить работу одного из брЭйков или удалить любой из них. Значит брЭйки мы поставили.
Идём дальше. Запускаем программу и надеемся, что «вылетит» хоть один наш брЭйк. F9 и… УРА! Один из самых распространённых:
В окне дампа мы можем посмотреть как по частям загружалось содержимое диалога:
Теперь идём вверх(можете попробовать прыжки, но они не перепрыгивают вызов сообщения) и натыкаемся на первую строчку этой подпроцедуры. Выделим эту строчку и в статусной строке видим:
Local calls from 005EFD12, 005F0595, 005F066D, 005F0694, 005F0D6A, 005F0ED3
Это нам показывает, что наша подпрограмма вызывалась call’ами с перечисленных адресов. Теперь остаётся поставить брЭйки на все эти call’ы и поотменять вызов этой подпроцедуры. Для этого попереходим на каждый адрес вызова и понаставим брЭйки. Копируем первый адрес, жмём Ctrl+G, вставляем и жмём Enter. Олли сразу прыгнет на введённый адрес. Жмём F2 (брЭйк) и точно так же проделываем со всеми остальными call’ами.
Теперь завершим прошлую отладку нажав Ctrl+F2 (Reset). И запустим снова (F9). Видим, что выскочил брЭйк по адресу 005F0D6A. Возможно, что будут ещё и после проверки, так что не следует ещё сильно радоваться. Пробуем заNOPить этот call.
И вуалля: ФИФА отлично запустилась и без диска. Теперь можно наслаждаться гордо крЯкнутой игрой 
Ну и последний пример возьмём чуть-чуть потяжелее. Игра называется: «Deer Hunter 2004». Знающие английский догадаются, что это охота на оленей. Игра старенькая, но очень реалистичная.
Вот. Тут заморочка в том, что игра без диска идёт. Впрочем так же как и с диском. Но наши пираты, которые видимо нагло украли эту игру не посмот- рели, что игра без диска идёт только как клиент- версия. То есть в эту игру можно играть только подключившись к локальному или интернет-серверу. Об этом свидетельствует это сообщение:
Поехали… Прога ничем не сжата и написана на MS Visual C++ 7.0. Отлично.


На этом скрине(сокр. от Screenshot) видно, что кнопки «Создать сервер» и «на охоту» погашены. А не погашена только та, которая отвечает за подключение к серверу.
Ладно, за дело. Загружаем DH2004.exe в Олли и ищем текстовые ссылки. Чтоб не мучаться и проматывать весь здоровенный список ссылок, можно нажать правую->Search for text->«И ввести фразу» и если ссылка не одна то жать правую->Search for next.
Я предпочёл искать по цитате «Do you want». Кроме того сразу же рядом валялись ссылки из тех же диалогов об отсутствии дисков:
0040D232 push DH2004.00561B08 ASCII «Do you want to play without the CD-ROM?You may only join local games.»
0040D252 push DH2004.00561B50 ASCII "Deer Hunter 2004 CD-ROM not detected"
0040D257 push DH2004.00561ADC "Please Insert Deer Hunter 2004 CD-ROM!"
Двойной клик по первой ссылке и переходим на строчки:
Видим, как тут собирается сообщение. Теперь ищем не короткий прыжок. Т.к. короткий нас не выведет из диалога. Вот все прыжки, снизу вверх(в обратном порядке) до первого длинного:
0040D226 |. 74 28 | je short DH2004.0040D250
Он перепрыгивает наш диалог, но вызывает похожий:
0040D21D |. EB 56 | jmp short DH2004.0040D275
0040D21B |. 74 02 | je short DH2004.0040D21F
Цикловые прыжки… И наконец-то:
0040D1E0 |. 0F84 8F000000 | je DH2004.0040D275
Как видим, он явно не короткий. Заменяем на jne, пробуем и… УРА:
Жмём «на охоту!» и наслаждаемся игрой. Сеть тоже работает, проверено.
Если вы хотите сделать хороший крЭк, который бы много не занимал и который удобней бы крЯкал игру (то есть не заменой исполняемого файла), то можно воспользоваться утилитой «PatchCreationWizard». Которая может создавать маленькие программки, которые будут изменять в исполняемом файле именно те байты, которые изменили вы при крЯке. Тогда вам только стоит будет указать где находится, файл, который вы собираетесь пропатчить и нажать «Patch».
Давайте создадим как бы полностью завершённый крЯк для нашего «Охотника». Надеюсь вы сами догадались сохранить все изме- нения в другой файл(у меня это по традиции DH2004(с).exe).
Теперь запускаем PatchCreationWizard, жмём Next, выбираем «Byte Patch», Next, в поле «Your Handle» пишем свой гордый ник или ещё какую-нибудь немаловажную информацию, в «Target Title» тоже чёта в этом роде, ну я там привык писать «КрЯк на…», а в поле «Target File» нужно вписать имя файла, который будем патчить.
Жмём Next, нажимаем кнопку «Browse» справа от поля «Original File» и, соответственно, указываем оригинальный не крЯкнутый файл(DH2004.exe в нашем случае); потом жмём по «Browse» справа от «Patched File» и выбираем крЯкнутый (DH2004(с).exe).
Жмём в последний раз Next и ждём пока сгенерится наш патч. Теперь в папке с игрой появился файл patch.exe. Запустим его. Он отлично пропатчивает игру.
Теперь, после установки игры, стоит просто кинуть его в папку с игрой, запустить и нажать «Patch». И игра будет успешно крЯкнута. КрЯк(патч) теперь будет занимать всего 5КБ(примерно), вместо объёма всей exe’шки(1,7МВ – Deer Hunter; 5,2MB – FIFA, 15MB – Heroes of M&M). Весомая разница.
Но нужно помнить, что это не законно и преследуется УК Украины. Но всё-таки обидно, когда покупаешь игру,а она даже с диском не идёт. Приходится выкручиваться.
А теперь напишу про защиту от этого беспредела. Начну постепенно с самой слабой и самой неэффективной. Одной из самых примитивных является защита методом генерации пароля не с потолка, а исходя из имени пользователя или ID компьютера. Это исключает возможность подхода одного и того же пароля на разных компьютерах. Но при крЯке оно обходится так же легко, как и просто пароль.
Ещё для запутывания крЯкеров делают не одно поля для ввода пароля, а 3-6. Это сбивает с толку потому что там столько же и сравнений. То есть нужно искать не одну «развилку», а целых 6, которые программисты могли запихнуть в совсем разные места. Но для опытного крЯкера это всё равно не представит большой проблемы.
Трюком является после ввода пароля или просить перезапуска или хотя бы закрывать диалог ввода пароля(без всяких «Ура! Пароль верен» или «К сожалению вы даже с 132 раза не угадали пароль» 
Более хорошей защитой является активация только по Интернету, т.к. тогда крЯку остаётся перепрыгивать сам «выход» в Интернет и возвращать флаг правильности пароля или переключать прогу в самом начале, где она при запуске проверяет себя на активированность. Нужно использовать ещё антиотладочные сегменты кода. Которые следят не действует ли отладчик в системе, и если всё-таки действует, то послать программе команду отказа ра- боты. Или такие сегменты, которые вызывают не пропускаемое исключение.
Ну почти самая лучшая защита это сжимать программы какими-то неизвестными пакерами, как например Armadillo. На которых анпакер найти ооочень тяжело или практически нереально. Но всё равно, зная(видя) алгоритм кодирования, «высшим умам» не составит труда написать обратный его ход.
А так же актуально использовать утилиты, которые скрывают/подделывают заголовок(header) файла, а именно ту часть, где прописано каким пакером он сжат. То есть в PEiD вы будете видеть, что файл ничем не сжат или «типа» сжат тем пакером, название которого вы прописали в этой программе.
Вот самые известные из них: DotFix FakeSigner, StealthPE, HidePE. Последние две это оба продукта одной и той же фирмы и делают одну и ту же функцию, просто были сделаны оба с целью заработать побольше денег.
Но самый лучший из них, на сегодняшнее время, конечно DotFix FakeSigner. Он включает и подделку header’а и анти-отладочную защиту. А для игр на сегодняшнее время лучшей защитой является «StarForce», который тоже ломают, но очень мало людей. Т.к. защита построена на снижения скорости привода и отражении лазера от специальной дорожки диска под определённым углом…
Ну вот на этом и всё. На сегодня хватит. В следующей статье я вам возможно расскажу про взлом StarForce’а и про лучший метод защиты софта – виртуальную машину.
Ну ладно. До свидания и до новых встреч на нашем свободном литературном пространстве. 
З.Ы. Данную статью нужно рассматривать только в ознакомительной форме. Автор не несёт никакой ответственности.
Таблэтка (лекарство) от жадности — созданная добрыми самаритянами программа или измененный файл (чаще всего exe или dll-файл) для запуска приложения (игр, фотошопа, винды и прочего) в обход системы защиты, поставленной злобными копирастами. Kак правило, идёт в одном «релизе» (издании) например, на трекере, или на подобных свалках халявы. Таблэтка применяется к варезу после скачивания и установки, дабы излечить его от врожденного недуга копирастии и сохранить содержимое своего кошелька от ненужных трат. Часто бывает вшита из коробки, и в таком случае от пользователя вообще не требуется никаких лишних телодвижений.
Происхождение[править]
По всей видимости, необходимость замены более привычного «crack» на такое, «шоб нихто не догадался» продиктовано элементарными соображениями конспирации и примерно теми же причинами, по которым доллар называют УЕ. Очевидно, что первоисточником этого названия стала фраза из «Бриллиантовой руки», сказанная героем Папанова именно с таким произношением:
— Достаточно одной таблэтки!
В действительности, свою лепту в создание мема внёс и древний байанистый анекдот:
В аптеке:
— Дайте мне таблеток от жадности! И побольше, побольше!
В этом и заключается её действие: за один приём избавить программный продукт от нелепого выпрашивания денег («лекарство от жадности»). Изначально так и просили: «помогите вылечить» и называли «лекарство». А потом, с приходом русских варезных сайтов и торентов, стало модно писать «таблетка». Ну и, до кучи, на период становления термина был оченно популярен Trial-период как способ убедить юзера в качестве своего продукта. Такой продукт на большинстве форумов называли «больным» и «умирающим», ибо через N дней с ним должно было произойти сами знаете что.
Мем особенно пришелся по нраву релизерам в трекерах, поскольку удачно заменяет откровенные и часто запрещенные на уровне вордфильтра слова «хак», «кряк» или «кейген». Кроме того, даже самому злому копирасту сложно докопаться до невинной фразы «Таблэтка имеется» в описании торрента. А если кряка не видно, то и назвать пиратством выкладку дистрибутива (ясное дело, исключительно в ознакомительных целях, ога) не получится.
Если кряк не вложен в релиз (раздающий — ламер) или всё уже перекодено внутри релиза, обычно пишут что-то вроде «Таблэтка в ближайшей аптеке» или «Таблэтка вшита» соответственно.
Виды лекарств[править]
Перечислены в порядке увеличения желательности и полезности для здоровья варезного софта и нервов юзера.
Cracked.exe[править]
Взломанный главный исполняемый файл для замены оригинального. Обычно взлом исполнен чрезвычайно грубо; прога перестает навязчиво требовать ЖРАТ, но продолжает считать себя незарегистрированной, часто оказываются утрачены ресурсы. Игровой недоработанный варез практически всегда представляет собой cracked.exe, на который не встают официальные патчи. Это — самый поганый из возможных вариантов, личинка годного кряка.
Также есть подвид «Таблетка Вшита», где вся программа уже взломана, и ничего заменять не надо. Часто идет в релизе с продуктами компании Adobe (Photoshop и т. д.), говносборками Винды, пиратскими релизами игр и других, где процедура взлома сложна и не под силу 95% обычных юзеров. Интересно, что будучи даже вшитой, таблетка срабатывает не всегда. Так бывает с вышеупомямнутым фотошопом. Несмотря на вшитость таблетки, ключи иногда палятся и программа начинает навязчиво требовать ЖРАТ. В таком случае приходится полностью удалять и устанавливать заново, что крайне неудобно.
Разновидностью подобного вида лечения является замена инфицированных .dll-библиотек на здоровые. Такой способ часто применяется юзерами-музыкантами для приведения в работоспособное состояние разнообразных виртуальных синтезаторов и примочек (более известных как VST).
Кряк[править]
Кряк (crack) или более грамотно — патч (patch). Кряк представляет из себя инструкции по излечению софтины от жадности (в файл X записать байт со значением Y по смещению Z). Для автоматизации процесса используется маленькая прожка — патчер (который часто содержит в себе креатив хацкеров в виде демо-ролика, или доставляющую 8-битную песенку). Нубские группы пользуются универсальными патчерами, которые умеют при изменении файлов делать резервные копии и проигрывать музыку, а также поддерживают скины, в частности популярен dup v2.20 — создатель универсальных патчеров. В 99,9% случаев заломанный варез невозможно обновить, так как эффект от кряка пропадет.
Серийник[править]
Серийный номер, s/n, сериал, ключ и т. д. Любая регистрационная информация, для излечения вареза от жадности естественным путем. Наиболее годный (с точки зрения параноика) способ лечения, поскольку внедрения постороннего исполняемого кода нет, а значит гарантированно никаких троянов и червей. Чаще всего серийники — реальные, то есть позволяют невозбранно поюзать услуги по поддержке проги. Строго говоря, cерийники не являются таблэткой в канонiчным смысле слова, однако малолетние обитатели говнотрекеров об этом не знают. Некоторые копирасты проверяют введённые серийники на предмет нахождения оных в собственном чёрном списке на собственном же сервере, однако грамотные пираты либо принудительно выключают данную проверку в самой программе (тогда это уже патч + серийник), либо предлагают юзеру вручную заблокировать попытки программы обратиться к указанному серверу путём присвоения оному IP-адреса 127.0.0.1 в виндовом аналоге /etc/hosts или саму программу забанить в фаерволе антивируса.
NoCD, NoDVD[править]
NoCD (ноу-сиди, ной-сиди) — это особый вид таблэтки, придуманный ленивыми пользователями лицензионных игр для лечения патологической дискофилии. Дело в том, что многих геймеров раздражает требование игрушек вставить оригинальный диск при запуске. Позже, с появлением всяких говнозащит, после которых надо переставлять винду (вроде всеми любимого starforce), идея NoCD получила всенародное признание. ИЧСХ, NoCD до сих пор подвергаются травле в гораздо меньшей степени по сравнению с кряками (так, есть сайты, находящиеся в самом сердце Пиндостана с его реднеками, ниграми и копирастами, откуда можно невозбранно вытянуть NoCD). В лихие времена подпольные локализаторы вшивали NoCD непосредственно в свои релизы. Впрочем, некоторые лица, не желающие напрягаться с ожиданием NoCD и последующим его поиском, ставят Daemon Tools или Alcohol 120% и таким образом устраняют симптомы дискофилии. Поэтому на трекерах неспроста можно найти помимо инсталляшек ещё и iso- или mdf-образы, которые позволяют прикрутить к несуществующему в компе CD-приводу.
Алсо к NoCD можно отнести микрообразы. Суть© явления заключается в том, что .mdf формат хранит файлы отдельно от файловой системы, мета-информации и, соответственно, контрольных сумм. Поэтому путем несложных® манипуляций 24-гиговый образ превращается в двухмегабайтный с сохранением всего, кроме собственно файлов. Однако больным (программам, реже — пользователям) обычно насрать на этот факт, и они с радостью зохавывают такой образ со словами «Спасибо за покупку!». PROFIT, хуле.
Также юзается владельцами ВНЕЗАПНО лицензионных игр, чтобы не задрачивать драгоценный диск в приводе.
Кейген[править]
Keygen (киджен), генератор ключей. Децальная прожка, которая помимо музыки генерирует серийники, тысячи их. ТруЪ варезные группы делают кейгены повышенной годности с поддержкой многих версий. Можно нарваться и на псевдо-кейгены, которые ничего не генерят, а лишь показывают зашитые в себя ключи.
Поскольку в последнее время копирасты очень назойливы, информационные технологии бурно развиваются, и часто лечение приходится проводить комплексно. Например: патч от активации и кейген, собственно, от жадности.
В keygen’ах иногда попадаются трояны, в частности скачанных с сомнительных сайтов, где берут оригинальные кейгены, и делают из них «склейку» — из одного файла под видом кейгена запускается несколько троянчегов и в конце настоящий, безобидный генератор серийников. Также имеет место ложное срабатывание быдлоантивирусов, так как либо кейгены заносятся в черные списки, либо пакуются хитроумными пакерами, которые антивирям лень распаковывать.
Loader[править]
Лоудер — загрузчик программы. Небольшая программа, которая будучи запущенной сама запускает целевую софтину и патчит её во время загрузки. Применялась обычно в случае, когда патчить намертво было нельзя ввиду проверки целостности при запуске или иным причинам. Довольно неудобный (например, если надо запустить крякнутый софт с некими параметрами, то лоадер их банально съедал) и малораспространеный вид таблеток.
Trial reset[править]
Программа, которая знает, где целевой софт сохраняет информацию об испытательном сроке, и которая эти данные перезаписывает правильными значениями или просто стирает. Профит огромный: доказать, что ты прогу установил не вчера, можно, но надо разбираться в тонкостях. Так что это — любимый способ уклоняться от проверок лицензионности.
Эмулятор донгла[править]
Программа для борьбы с софтом, который привязывается к железяке: подключена железяка — запускается, не подключена — не запускается. Вместо того чтобы патчить, пишется софт, который отвечает на запросы к железяке, имитируя ее присутствие.
Пиратский сервер[править]
Если программа для своей работы требует сетевое подключение к серверу, то применяется этот способ. Пишется и поднимается свой сервер, на который программа переправляется через хостс или более хитроумными методами вроде хуков. Если сервер находится в сети и к нему подключается несколько клиентов, то обычно это сервер мультиплеера. Если сервер хостится на локальном компе, то это кастрированная, обычно отреверсенная, версия сервера разработчика программы. Именно так был взломан Assassin’s Creed 2. Исходники эмулятора сервера на питоне автор заботливо приложил, за что ему спасибо.
RegKey[править]
Ещё один способ излечения софтины естественным путем. В отличие от серийника, тут достаточно просто кликнуть по .reg файлу и внести изменения в реестр (хотя иногда софтину перед этим надо ещё пропатчить), и никакой ебли с вводом ключа (особенно там, где нельзя ключ копировать, а надо вводить вручную, то есть списывая). Используется, если софтина активируется только таким способом.
Именно таким макаром крячится самый любимый у музыкантов секвенсор FL Studio.
Portable[править]
Собственно, варез скачивается и просто распаковывается в любую папку (то есть инсталлировать ничего не надо и в системе не прописывается). Плюс в том, что портабельные программы взламывать не нужно и можно носить с собой где угодно. Однако их невозможно обновить ввиду портабельности, что вызывает баттхерт у юзеров, хотящих иметь последнюю версию продукта (проблема решается с помощью PortableApps). Это конечно немного отходит от понимания кряка, но все же софт иногда можно вылечить только так.
Песочница[править]
Программа просто устанавливается в песочницу, используется по назначению, затем сносится вместе с песочницей. Идеально для небольших редкоиспользуемых программ с несущественными ограничениями во время trial-периода. Дело в том, что шароварка должна обязательно оставлять следы в системе, иначе её можно удалять/устанавливать сколько угодно раз. Собственно песочница и чистит эти следы, вне зависимости от проги.
Побочные эффекты[править]
Как и любые вещества, таблэтки имеют выраженные побочные эффекты: от практически безвредных adware-примочек до полновесных внутриутробных червиев и троянов. Об этом все знают, но любовь к халяве всё равно сильнее.
По факту: некоторые «препараты» способны вывести программу-пациента из строя навсегда, недоделаные хак-фармацефтами таблетки иногда вызывали у окон «Синюю дверь жизни» (aka BSOD, единичные, правда, случаи). Неоднократно наблюдались баги с прогами типа FruityLoops и AbletonLive, когда после приёма лекарства ровно через пару дней софтина требовала новую дозу препарата, и так до бесконечности (что какбэ намекает, в связи с зависимостью, на правильность названия крэк-софта таблетками).
Некоторые хитрожопые копирасты умудряются делать программу недееспособной при взломе, специально создавая условия для критической ошибки. Например, ставят защиту не только на запуск игры, но и внедряют неизлечимый баг, мирно спящий, скажем до 50% прохождения игры и в самый ответственный момент, когда игрок открывает страшную дверь в страшное логово страшного босса, — игра вылетает, злорадно кекекекая. Или не вылетает и не препятствует запуску, но делает прохождение спираченной игры невозможным, как например в довольно новой игре The Talos Principle, в пиратских копиях которой игроки застревали в лифте. Расчёт идет на то, что когда первый же игрок дойдёт до этого места и пока народные умельцы просекут, что да где произошло, и выпустят очередную версию лекарства — все, кто хотят поиграть в игру на шару, но имеют деньги, плюнут и таки купят игру. Сейвы, к слову, в таких случаях несовместимы с новыми версиями игры — таким образом «воров» наказывают, заставляя проходить игру заново. Хотя по сути недоломанность игры свидетельствует о недалёкости формацевта, ибо он не соизволил разобраться до конца и лечил лишь симптомы, а не причину. Да и фармацевты между собой соревнуются, кто быстрее выпустит лекарство к популярной игре, то есть цель в скорости, а не в качестве.
В случае компьютерных игр, наиболее распространенными побочными эффектами является невозможность играть на официальных серверах, а так же невозможность обновить версию игры, так как многие официальные патчи проверяют рабочие файлы игры на каноничность. Как правило, под каждый патч выпускается новая таблэтка.
Другой отличный пример подлости разработчиков — известная в своё время качалка Flashget. Программа была популярна, часто патчилась недобросовестными пользователями, но, обнаружив при очередном сеансе связи с разработчиками тот факт, что взломана, не ругалась и не отказывалась работать. Зато начинала намеренно вносить рандомные ошибки в скачиваемые файлы, особенно в архивы. Представьте себе лицо человека, усердно качающего всю ночь на модеме архив с порно только для того, чтобы узнать утром, что файлы смертельно испорчены и не могут быть распакованы. Тут уж хочешь не хочешь, а купишь лицензию.
Reget поступал аналогично, но с особым цинизмом: вместо искомого прона в архиве оказывался txt-файл с приветами от разработчиков. Дополнительный плюс — быдло могло и не догадаться, что это не «прога плохая», а именно защита от халявы, а это, сами понимаете, покупке не способствовало. С Reget’ом же двусмысленности не было.
Пара советов по крякам[править]
NoCD своими руками
- Чтобы не подцепить вирусню, качайте таблэтки с официальных сайтов крэкерских груп (Razor1911, Reloaded): список последних выпущенных релизов, списки ДРМ и где используются
- Ввиду того, что за все эти прошедшие годы перевес между «светлой» стороной сил (производителями DRM и подельщиками защит) и взломщиками склонился явно в сторону последних (яркий тому пример), пошла некоторая тенденция на ослабление самих встроенных DRM (ибо эффективность уже не та, как это было лет 10 назад). Соответственно ломать их стало на порядок проще.
Как следствие, возьмите отладчик и займитесь производством таблэток самостоятельно.
Алсо[править]
- Таблеткой именуется вид лаптопов без клавиатуры и с сенсорным дисплеем (с поворачивающимися вокруг своей оси дисплеем именуется трансформер).
- Таблеткой именуется запасное недоколесо, которым комплектуются малолитражки и иногда спортивные машины. Как правило, яркого цвета, чтобы владелец помнил, что это не колесо и рассекать на нем рекомендуется от места поломки до ближайшего шиномонтажа. Автовладельцы же в свою очередь именуют его «докаткой» или «костылём», а праворульщики, вследствие того, что в ниппонских авто «докатка», как правило, желтого цвета — «бананом».
- Таблеткой еще, как правило, называют регулятор напряжения в генераторе, ИЧСХ, если напряжение маленькое, то и эту таблэтку тоже можно крякнуть.
- Также кряк — единичный акт голосовой самоидентификации утки © Bash. Соответственно, электронные автомобильные девайсы, изрыгающие похожие звуки, часто именуются «крякалками».
- УАЗ-452 / УАЗ-3741 (в народе именоваться «Буханка», военные модификации — «Таблетка», так как их использовали медики) — специальный грузопассажирский, полноприводный, двухосный автомобиль повышенной проходимости, с колесной формулой 4х4, производимый Ульяновским автозаводом с 1965 года. Двигатель — вариант двигателя ГАЗ-21.
Ссылки[править]
- Музыка из кейгенов, кряков etc.
- Практическая статья по написанию кейгена
См. также[править]
- Wishmaster
- Волшебная таблетка
| Жанры | Аркада • Браузерка • Рогалики • Эроге • Порно-игры • FPS • RPG (MMORPG • MUD) • Rhythm game • RTS • TBS • Quest • MOBA • Онлайн-игры • Скурвившиеся игры • Клоны X-COM • Tower Defense |
| Платформы | Неигровые (PC • MSX • Спектрум • Amiga) • Консоли (Игры • Dreamcast • NES • PSP) • Brick Game • Тамагочи • Игровые автоматы • Dance Dance Revolution • Pump It Up • Платформосрач |
| Корпорацъи | 1С • 3dfx • Адамант • Акелла • Иннова • Нивал • Фаргус • BioWare • Blizzard • Ice-Pick Lodge • id Software • Neogame • Nintendo • Sony DADC SecuROM • StarForce • Steam • Type-Moon • Иксолла • CD Projekt Red • Tencent • Steam • NetEase • Exorsus |
| Особенности | 10 заповедей геймдева • Alignment • Dungeons and Dragons • Hit-and-run • One-liner • PunkBuster • Жестокость в компьютерных играх • Классические игры для DOS • Компьютерный клуб • Корейская система крафта • Машинима • Метод Мартингейла • Оружие в компьютерных играх • Пасхальные яйца • Пиратские игры девяностых • Рандом • Русефекации • Мобильные игры • Летсплей • Продажа аккаунтов в видеоиграх • Баланс (видеоигры) • Микротранзакции • New Game+ • Имба • Power creep • Нерф • MMR • Античит • Автобаттлер • Фарм • Энергия (мобильные игры) • Режим Ironman • Serana Dialogue Add-On • Поражение • Ранний доступ • Игровой стаж |
| Термины | Barrens chat • Powerleveling • Spectator • Босс • Геймерский сленг • Донат • Ебай • Жаргон MMORPG • Жаргон MUDаков • Искусственный идиот • Кемпер • Мультоводство • Отыгрыш • Плюшки • Твинк • Фаербол • Фарминг • Читер • PC-гейминг • Кат-сцена • Симуляция жизни • Тильт • A-Life • Incorporated • OG Loc • Type 59 • M19 |
| Геймеры | Биллибой • Геймер • Железнодорожный симмер • Задрот • Казуал • Манчкин • Мариобой • Симмер • Сонибой • Тракторист • Казуал • Вхале • Подпивас • Ума (Ведьмак) • Wheelman • Папич • Рандом • Баттлпасс • Геймер • Доцент Пиколан |
| Персонажи | Конкретные: Bridget • Dopefish • Earthworm Jim • I.M. Meen • Slenderman • Sonic the Hedgehog • Uboa • Айрис • Артас • Дирижабль Киров • Император Человечества • Индиана Джонс • Кейн • Лара Крофт • Мамонт-танк • Марио • Солид Снейк • Сырно • Тали • Неизвестный полубог (Elden Ring) • Марика • Маления, Клинок Микеллы • Пудж • Цирилла Собирательные: Вампиры • Зомби • Паладины • Орки • Оборотни • Роботы • Эльфы • Золотой порядок • Древо Эрд • Босс • Треш-монстр • Гоханц Чернейший • Херобрин • Капитан Прайс |
| Люди | Angry Video Game Nerd • Boomer • GamerSuper • GoHa • Levelord • Maddyson • SupLisEr • Twixt • Yahtzee • Аегоров • Алевиус • Американ МакГи • Ваномас • Врен • Гамаз • Гульмэн • Кармак • Котик • Номад • Петрик • Роммель • Сир • Ставицкий • Фингерут • Шульц • Мамкодолбы • Sir Troglodyte • Нуб • Уголок Твистера • Ролевики • Adolf RA • Джон Кармак • Гейб Ньюэлл • Патрик Ламберт • Дмитрий Кунгуров |
| Мемы | A challenger appears • AYBABTU • Bitches and whores • Did he drop any good loot? • DOOM: Repercussions of Evil • Falcon Punch • GAME OVER • Giant Enemy Crab • HL Boom • IDDQD • Immolate Improved! • It’s dangerous to go alone! Take this. • Leeroy Jenkins • Merely a setback • PS3 has no games • TIME PARADOX • Xbox 360 Kid • Xyzzy • YOBA • Zerg rush • Бронелифчик • Вомгла • Высшее Благо • Гном • Жестокая Голактика • Зелёные титизены • Корованы (Грабить корованы) • Миниган • Рандом • Таблэтка • Убить дракона голыми руками • Фоллаут-онлайн • Шар Свиборга • Эльф 80-го уровня • Horn of the Abyss • Ведьмак 3 и педофилия • Игру убили • Pay to lose • Black Lotus • Промахи в X-COM • Почему титаны слишком большого размера? (Хроники Хаоса) • San Andreas Multiplayer • Пожилуха • Назгул убит • Проблемы у уруков • Сравнение игры на эмуляторе с резиновой женщиной • Игра закукарекала • Ты разбудил Газебо • Застройка башнями • Вархаммер-словарь • 16 лет игрового стажа • Nanomachines, son • Ah shit, here we go again • Или живите дальше в проклятом мире, который сами и создали • Jvk1166z.esp • Go woke, go broke • RNGJesus • Грим оптимист |
| Сообщества | GameDev.ru • ДТФ • GoHa.Ru • Half-life.ru • Prodota.ru • Twitch.tv • Vg • Outland • GoodGame • Sc2tv.ru • Watch Dogs vs GTA 5 |
| Игрожур | Печатные (Game.exe • MegaGame • Великий Dракон • Виртуальные радости • Страна игр • Игромания • Ксакеп • ЛКИ • Навигатор) • Онлайновые (Playground.ru • StopGame.ru • Zero Punctuation • Аг.ру) • Let’s play • От винта • Физика мира героев |
| Мета | Больница • Вестник ЗОЖ • Дурдом • Скорая помощь |
| Терминология | Клятва Гиппократа • Клиническая смерть • Когнитивный диссонанс • Комплексы • Латынь • Разрыв шаблона • Священная корова • Синдром • Сонный паралич • Средняя температура по больнице • Стволовые клетки • Эффект Манделы • Юношеский максимализм |
| Представители профессии | Врачи-убийцы • Доктор • Медик • Патологоанатом • Психолог • Стоматолог • Чумной доктор Silvy • Булгаков • Горин • Лектер • Лем • Лукьяненко • Менгеле • Онищенко • Райх • Соковня • Фрейд • Хагенс • Хаус • Че Гевара • Шаов • Юнг |
| Великие шаманы | Бронников • Грабовой • Жданов • Кашпировский • Малахов • Молодильное яблоко • Мулдашев • Попов • Слюсарчук • Хилеры • Чумак • Шахиджанян |
| Пациенты | Chris-chan • Биша Муда • Ван Гог • Василевский • Вербицкий • Гамаз • Граждане СССР • Грета Тунберг • Евсюков • Киркоров • Коэльо • Летов • Лобанов • Лукашенко • Новодворская • Ревякин • Рыжий Тарзан • Стомахин • Тимати • Хармс • Хасигути • Чумазик • Фомин • Ющенко |
| Болезни | Акне • Анорексия • Белая горячка • Венерические болезни • Депрессия (Кризис среднего возраста) • Дисбактериоз • Импотенция • Инфекции • Наркомания • Ожирение • Пандемия (Коронавирус) • Паразиты человека • Паранойя • Рак / Рак мозга • СДВ • Свиной грипп • СПИД • Синдром Туретта • Фимоз • Шизофазия • Шизофрения |
| Вымышленные болезни | Бокланопоцтит • Кровь из носа • Лурчанка • Недоёб • Одержимость • Опухание гондураса • ПГМ • Педоистерия • Преждевременная эякуляция • Пиздецома • Рукожопие • Синдром вахтёра • Синдром навязчивой мелодии • Синдром французского борделя • Словесный понос • СПГС • Спермотоксикоз • Троллефобия • Фаллический редукционизм • Фаллометрия в интернете • ФГМ • ЧСВ |
| Панацеи | Аборт • Антипсихиатрия • БАДы • Баклофен • Бессмертие • В морг • Вазелин • Волшебная таблетка (Таблэтка) • Галоперидол • Гипноз • Гомеопатия • Диета • Звёздочка • Иммуномодулятор • Йога • Карательная проктология • Карательная психиатрия • КЛБ • Когнитивная психология • Лоботомия • НЛП • Обрезание • Осознанные сновидения • Психокульт • Пиздюль • Презерватив • Прививки • Секс (Оргазм) • Синтон • Сок Нони • Укол в голову • Финский армейский тест • Фуфломицины • Холотропное дыхание • Эвтаназия |
| Мета | Варез • Компьютерные пираты • Копирайт (Копираст • Кописрач) • Радиопираты |
| Пираты | Труъ (Фаргус • Хакеры) • Позёры (GamerSuper • Кулхацкеры • Попов) • Neogame • One Piece • Морские пираты • Сомалийские пираты |
| Протоколы и cайты | I2P • P2P (DirectConnect • EDonkey2000 • NoNaMe • The Pirate Bay • Torrents.ru) • Файлообменники (Infostore • Rapidshare • RGHost) • Зайцев.нет • Либрусек • Нойзбункер • Direct Connect |
| Противники | Акелла • Активные (1С • Apple • DRM • Metallica • Microsoft • Nintendo • SecuROM • SOPA • StarForce • Единый реестр запрещённых сайтов • Михалков • РАО • РЩ • Denuvo) • Пассивные (Линукс) |
| Прочее | Горбушка • Диски с приколами • Пиратские игры девяностых • Распечатать лицензию на Линукс • Русефекации • Таблэтка • Экранка • Крякер инета |
кряк
→
кряк — существительное, именительный п., муж. p., ед. ч.
↳
кряк — существительное, винительный п., муж. p., ед. ч.
Часть речи: существительное
| Единственное число | Множественное число | |
|---|---|---|
| Им. |
кряк |
кряки |
| Рд. |
кряка |
кряков |
| Дт. |
кряку |
крякам |
| Вн. |
кряк |
кряки |
| Тв. |
кряком |
кряками |
| Пр. |
кряке |
кряках |
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как правильно пишется слово «кряк»
- кряк1, -а (кряканье)
- кряк2, неизм.
Источник: Орфографический
академический ресурс «Академос» Института русского языка им. В.В. Виноградова РАН (словарная база
2020)
Делаем Карту слов лучше вместе
Привет! Меня зовут Лампобот, я компьютерная программа, которая помогает делать
Карту слов. Я отлично
умею считать, но пока плохо понимаю, как устроен ваш мир. Помоги мне разобраться!
Спасибо! Я стал чуточку лучше понимать мир эмоций.
Вопрос: пашмина — это что-то нейтральное, положительное или отрицательное?
Ассоциации к слову «кряк»
Синонимы к слову «кряк»
Предложения со словом «кряк»
- Большая утка зашипела, издала пронзительный кряк, и вся гвардия отступила.
- Известными протоками, где низко над водой склонились деревья, купают в ней листья, где порой темно, как в зелёном тоннеле, где взлетает неожиданно со скрипучим кряком вспугнутая утка, где плеснёт мощным пятнистым туловом столетняя щука и блестят при ветерке солнечные пятна на тёмной воде – быстро добрались ребята до старой ветлы с «тарзанкой».
- И что было странным, он издавал звуки похожие на утиные кряки.
- (все предложения)
Цитаты из русской классики со словом «кряк»
- Как быстро упал с поднебесья внезапный крик пролетавшей журавлиной стаи, так быстро, услыхав этот кряк, Истомин выпрыгнул из таратайки, стал на ноги и, прижав к груди руки, затрясся от внутреннего зноба.
- (все
цитаты из русской классики)
Отправить комментарий
Дополнительно
Смотрите также
КРЯК, -а, м. Прост. То же, что кряканье (в 1 знач.).
Все значения слова «кряк»
-
Большая утка зашипела, издала пронзительный кряк, и вся гвардия отступила.
-
Известными протоками, где низко над водой склонились деревья, купают в ней листья, где порой темно, как в зелёном тоннеле, где взлетает неожиданно со скрипучим кряком вспугнутая утка, где плеснёт мощным пятнистым туловом столетняя щука и блестят при ветерке солнечные пятна на тёмной воде – быстро добрались ребята до старой ветлы с «тарзанкой».
-
И что было странным, он издавал звуки похожие на утиные кряки.
- (все предложения)
- кряканье
- ореховка
- рябок
- сизарь
- свиристель
- (ещё синонимы…)
- скрудж макдак (дядя скрудж)
- (ещё ассоциации…)
- Склонение
существительного «кряк»

































