Как сделать таблетку для программы

Взлом программ для чайников

84d30e1aDisclaimer: всё ниженаписанное написано исключительно с просветительскими и исследовательскими целями, а также понимания механизмов защиты от взлома. Автор ни в коем случае не рекомендует использовать данную информацию для взлома программ.

Т.е. на самом деле, декомпиляция программы не очень верное понятие в данном случае. Она и так вся в открытом виде лежит, а инструменты в виде Reflector’а занимаются тем, что приводят конструкции MSIL к соответствующим конструкциям C# или другого языка, повышая читабельность кода.

Перейдём, собственно, к взлому.

0. Обнуление триала

Собственно, это даже не взлом, а полулегальный способ продлить срок использования неактивированной программы. Заключается он в том, что находится место, где хранится дата первого запуска и меняется/уничтожается. После этого всё можно пользоваться программой до следующего срока.

Посмотрим на нашего подопытного рефлектором. Немного погуляв по коду, находим интересную строчку в конструкторе MainForm:

ea18f496

Открываем редактор реестра, идём в HKEY_CURRENT_USER\Software\Ultrapico\Expresso и видим следующие ключи:

c66c1d75

Удаляем их и получаем ещё 60 дней работы.

Данный вариант, конечно, прост и очевиден, но если он даже был бы сложнее — потребовалось бы чуть больше времени провести в рефлекторе, чтобы выяснить все места, куда пишется информация и зачистить их.

Совет разработчикам, которые будут пытаться записать данные в потаённое место: пишите аккуратнее, а то всё может обернуться проблемами обычным пользователям, у которых почему-то не окажется данного места, или не хватит на него прав.

1. Написание keygen’а

Самый ужасный для разработчика вариант, и самый приятный для конечного злобного пользователя. Программа считает себя лицензионной, никаких страшных телодвижений не нужно делать.

Открываем рефлектор и ищем код на предмет классов содержащих License или Registration, видим:

b853538b

При вводе имени и кода по имени вычисляется некий хеш, который и сравнивается с кодом.

dbd0ca6f

Данный хеш использует DES и всякие префиксы

1065e362

Байты конвертятся в строку с помощью данного метода.

Теперь всё выяснилось, открываем IDE и копируем все необходимые куски кода (или сами реализовываем). Осталось только выяснить, какие значения у Prefix, Suffix и параметры реализации MyDES. Я их приводить не буду, это уже технические детали.

В результате генерируем ключ на любое имя и видим:

3c2561e9

Защита от кейгенов проста и очевида: использовать в каком либо виде ассиметричное шифрование. Т.е. сделать так, чтобы без знания приватного ключа сгенерировать код было бы невозможно, а данный ключ находится только в одном месте — у автора программы.

2. Использование враппера

Проверка корректности лицензии, достаточно хлопотное дело, и небыстрое. Поэтому разработчики программ обычно проверяют лицензию один раз, и дальше используют полученный флажок — валидна/невалидна (как вариант насколько валидна, если допускается несколько типов лицензии, отличающихся возможностями). Тут можно на этом сыграть, использовав следующий алгоритм:

46dcd6bc

5ac1ee65

С запуском ничего интересного, а в проверке видно, что если уже программа зарегистрирована, то она считает, что всё хорошо и не делает дальнейшую работы по выяснению корректности лицензии.

Воспользуемся этим. Сделаем новый проект, добавим Reference на Expresso.exe и запустим его через себя:

61d00252

Смотрим, что получилось:

3627dc37

Ну кто бы сомневался.

В данном случае всё оказалось просто, но если бы автор программы заменил публичные свойства на приватные, то всего-лишь пришлось бы использовать Reflection для доступа и всё бы свелось к исходной задаче.

Думаю понятно, как можно пробовать защититься от этого — проверять лицензию периодически, смотреть окружение из которого запущена программа, сделать невозможным установку нужной переменной.

Но все эти защиты приведут к тому, что злоумышленник будет использовать

3. Физический взлом программы

e5800cdd

Потом берём ilasm и собираем всё назад (не забыв подключить ресурсы).

Что делает данный код: устанавливает нужное имя для регистрации (не обязательно), и возвращает статус, что всё хорошо.

Чтобы было понятнее, так это выглядит в рефлекторе, в C#

49dbcad4

Т.е. вполне очевидно, что теперь всё будет хорошо:

ea25d8c8

Немного про код в MSIL: это стековая машина, у которой нет регистров, все операции имеют вид: засунуть в стек нужное количество параметров, выполнить функцию, которая заберёт нужное количество параметров и положит результат. Ну и обратно: установить значение переменной тем, что лежит в стеке. Чтобы лучше понять работу всего этого рекомендую простой приём: пишите маленькую программу на привычном языке, компилируете, смотрите что получилось в MSILe и разбираетесь в конструкциях языка.

При этом некоторые вещи в MSIL можно сделать очень красиво, например поменять две переменные местами — 4 симпатичных строчки (на C# меньше, но некрасиво).

Чем жертвует злоумышленник: подписью программы, теперь она уже не автора, а его. В некоторых случаях это проблема, если в программе используется множество библиотек. Тогда злобному хакеру придётся разбирать их все и собирать их заново, но если он с этим справится, то у него будет «своя» версия программы подписанная его ключом.

Защиты от всего этого безобразия собственно немного: проводить обфускацию или выносить часть логики/проверки защиты в нативный код.

Источник

LiveInternetLiveInternet

Рубрики

Метки

Цитатник

Скажите, Вы когда-нибудь любили? Скажите, Вы когда-нибудь любили? Скажите, в Вашем доме плыл.

Творожно-лимонное печенье с глазурью (быстро и легко) Творожно-лимонное печенье с глазурью (бы.

Кабачковый рулет с фаршем Кабачковый рулет с фаршем — нарядная закуска на каждый день и украшен.

Музыка

Приложения

Подписка по e-mail

Поиск по дневнику

Статистика

Как пользоваться keygen, crack, patch

Ни для кого не секрет, что в нашей стране 90% установленных программ на компьютерах не являются лицензионными. Программы уже взломаны, но чтобы их установить требуются некоторые навыки. В статье рассмотрены самые распространенные способы установки пиратских программ. Как пользоваться keygen? Как пользоваться crack? Что такое request code? Как пользоваться patch?

1298910679 patch

1. Инструкция по установке в текстовом файле

Первое, на что надо обратить внимание, есть ли в этой папке файл «readme.txt» или «прочти меня.txt» (могут быть и другие названия). Очень часто в нем написана инструкция по правильной установке программы. Если файл с инструкцией есть, то, смело, открываем его и следуем инструкции. Если файла нет, то ситуация немного усложняется.

2. Серийный номер в текстовом файле

Для подтверждения прав на программу иногда требуется серийный номер. Имея его, вы сможете установить программу бесплатно.

Серийный номер может потребоваться либо при установке программы, либо при первом запуске уже после установки. Пропустить этот шаг вы не сможете, дальше программа не пойдет, пока вы не введете серийный номер (рис.1).

1

Пример серийного номера: ADE-R119-F196-k9BA-17CD

В папке с программой (в той же папке что и установочный файл) может находиться файл с серийным номером. Чаще всего он называется «Серийный номер», «Serial number», «Ключ», «key», «crack». Открываем этот файл, копируем серийный номер и вставляем его в нужное место.

3. Как пользоваться keygen

Вот пример такой программы, если ее запустить (рис.2):

03

Нажимаем на кнопку «Generate» (рис.3)

04

4.Получение доступа при помощи «Request code»

Еще один вариант. Во время установки программы или после запуска установленной программы, на экране появляется окно с регистрацией. В папке с установочным файлом должен быть keygen.exe, crack.exe или что-то еще.
Пример окна регистрации (рис.4):

05

Иногда нужно выбрать режим регистрации, например, выбрать «ввести серийный номер». На экране появляется окно для ввода серийного номера. (рис.5)

В данном случае:
— Get an activation code – получить код активации
— Enter an activation code – ввести код активации (нужный нам вариант)

06

07

Теперь нам нужно скопировать «Request code» из окна на рис.4 (рис.5) и вставить в окно на рис.6. Выделяем Request code и нажимаем Cntr+C (горячая клавиша копировать).
Вставляем в последнее окно скопированный код (Cntr+V).

Обратите внимание.
Код скопировался не полностью, а только первая строчка. Вторую строчку кода нужно скопировать отдельно, в окне на рис.6 нужно поставить пробел, скопировать и вставить оставшуюся часть «Request code». Должно получиться так (рис.7):

08

После этого в программе на рис.7 нажимаем кнопку «Calculate» (иногда называется Generate). Должно получиться так (рис.8):

09

Копируем «Auth code» из программы рис.7 в окно на рис.5 и получаем так (рис.9):

071

Нажимаем Next или Ok. Нам должны сообщить, что регистрация прошла успешно. Теперь программой можно пользоваться бесплатно.

Такая ситуация встречается довольно часто. Главное не забывайте, что Request code состоит из двух строчек.

5. Как пользоваться patch

Первое, что мы должны сделать, это установить программу (ту, которую мы хотим сделать бесплатной). После установки открывать программу не надо.

Дальше, надо переписать patch (или другой файл-патч) в папку, в которую мы установили программу. Скорее всего это диск С, папка Program files, папка с название программы (C:/Program files/«название программы»).

Дальше открываем файл patch (или другой файл-патч)

Вот пример файла patch.exe (рис.10):

10

Чаще всего в этом файле только одна кнопка. В данном случае это кнопка Apply patch. В некоторых случаях она может называться Crack. Нажимаем на эту кнопку и программой можно пользоваться бесплатно.

6. Файлы, для установки программы бесплатно, отсутствуют

Может быть и такое, что программу вы скачали без пиратского «лекарства». То есть, без готовых серийных номеров, кейгенов или патчей. Тогда задача усложняется. Лучше конечно скачивать программы с готовыми «лекарствами». Но что если все-таки такая проблема встала?

Источник

Таблэтка

300px TrjddZPtoWI

magnify clip

Таблэтка (лекарство) от жадности — созданная добрыми самаритянами программа или измененный файл (чаще всего exe или dll-файл) для запуска приложения (игр, фотошопа, винды и прочего) в обход системы защиты, поставленной злобными копирастами. Kак правило, идёт в одном «релизе» (издании) например, на трекере, или на подобных свалках халявы. Таблэтка применяется к варезу после скачивания и установки, дабы излечить его от врожденного недуга копирастии и сохранить содержимое своего кошелька от ненужных трат. Часто бывает вшита из коробки, и в таком случае от пользователя вообще не требуется никаких лишних телодвижений.

Содержание

[править] Происхождение

По всей видимости, необходимость замены более привычного «crack» на такое, «шоб нихто не догадался» продиктовано элементарными соображениями конспирации и примерно теми же причинами, по которым доллар называют УЕ. Очевидно, что первоисточником этого названия стала фраза из «Бриллиантовой руки», сказанная героем Папанова именно с таким произношением:

В действительности, свою лепту в создание мема внёс и древний байанистый анекдот:

В аптеке: — Дайте мне таблеток от жадности! И побольше, побольше!

В этом и заключается её действие: за один приём избавить программный продукт от нелепого выпрашивания денег («лекарство от жадности»). Изначально так и просили: «помогите вылечить» и называли «лекарство». А потом, с приходом русских варезных сайтов и торрентов, стало модно писать «таблетка». Ну и, до кучи, на период становления термина был оченно популярен Trial-период как способ убедить юзера в качестве своего продукта. Такой продукт на большинстве форумов называли «больным» и «умирающим», ибо через N дней с ним должно было произойти сами знаете что.

Мем особенно пришелся по нраву релизерам в трекерах, поскольку удачно заменяет откровенные и часто запрещенные на уровне вордфильтра слова «хак», «кряк» или «кейген». Кроме того, даже самому злому копирасту сложно докопаться до невинной фразы «Таблэтка имеется» в описании торрента. А если кряка не видно, то и назвать пиратством выкладку дистрибутива (ясное дело, исключительно в ознакомительных целях, ога) не получится.

Если кряк не вложен в релиз (раздающий — ламер) или всё уже перекодено внутри релиза, обычно пишут что-то вроде «Таблэтка в ближайшей аптеке» или «Таблэтка вшита» соответственно.

[править] Виды лекарств

Перечислены в порядке увеличения желательности и полезности для здоровья варезного софта и нервов юзера.

[править] Cracked.exe

Взломанный главный исполняемый файл для замены оригинального. Обычно взлом исполнен чрезвычайно грубо; прога перестает навязчиво требовать ЖРАТ, но продолжает считать себя незарегистрированной, часто оказываются утрачены ресурсы. Игровой недоработанный варез практически всегда представляет собой cracked.exe, на который не встают официальные патчи. Это — самый поганый из возможных вариантов, личинка годного кряка.

Также есть подвид «Таблетка Вшита», где вся программа уже взломана, и ничего заменять не надо. Часто идет в релизе с продуктами компании Adobe (Photoshop и т. д.), говносборками Винды, пиратскими релизами игр и других, где процедура взлома сложна и не под силу 95% обычных юзеров. Интересно, что будучи даже вшитой, таблетка срабатывает не всегда. Так бывает с вышеупомямнутым фотошопом. Несмотря на вшитость таблетки, ключи иногда палятся и программа начинает навязчиво требовать ЖРАТ. В таком случае приходится полностью удалять и устанавливать заново, что крайне неудобно.

[править] Кряк

Кряк (crack) или более грамотно — патч (patch). Кряк представляет из себя инструкции по излечению софтины от жадности (в файл X записать байт со значением Y по смещению Z). Для автоматизации процесса используется маленькая прожка — патчер (который часто содержит в себе креатив хацкеров в виде демо-ролика, или доставляющую восьмибитную песенку). Нубские группы пользуются универсальными патчерами, которые умеют при изменении файлов делать резервные копии и проигрывать музыку, а также поддерживают скины, в частности популярен 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-приводу.

[править] Кейген

200px Best ever

magnify clip

Keygen (киджен), генератор ключей. Децальная прожка, которая помимо музыки генерирует серийники, тысячи их. ТруЪ варезные группы делают кейгены повышенной годности с поддержкой многих версий. Можно нарваться и на псевдо-кейгены, которые ничего не генерят, а лишь показывают зашитые в себя ключи.

Поскольку в последнее время копирасты очень назойливы, информационные технологии бурно развиваются, и часто лечение приходится проводить комплексно. Например: патч от активации и кейген, собственно, от жадности.

В кейгенах иногда попадаются трояны, в частности скачанных с сомнительных сайтов, где берут оригинальные кейгены, и делают из них «склейку» — из одного файла под видом кейгена запускается несколько троянчегов и в конце настоящий, безобидный генератор серийников. Также имеет место ложное срабатывание быдлоантивирусов, так как либо кейгены заносятся в черные списки, либо пакуются хитроумными пакерами, которые антивирям лень распаковывать.

[править] Loader

Лоудер — загрузчик программы. Небольшая программа, которая будучи запущенной сама запускает целевую софтину и патчит её во время загрузки. Применялась обычно в случае, когда патчить намертво было нельзя ввиду проверки целостности при запуске или иным причинам. Довольно неудобный (например, если надо запустить крякнутый софт с некими параметрами, то лоадер их банально съедал) и малораспространеный вид таблеток.

[править] Trial reset

Программа, которая знает, где целевой софт сохраняет информацию об испытательном сроке, и которая эти данные перезаписывает правильными значениями или просто стирает. Профит огромный: доказать, что ты прогу установил не вчера, можно, но надо разбираться в тонкостях. Так что это — любимый способ уклоняться от проверок лицензионности.

[править] Эмулятор донгла

Программа для борьбы с софтом, который привязывается к железяке: подключена железяка — запускается, не подключена — не запускается. Вместо того чтобы патчить, пишется софт, который отвечает на запросы к железяке, имитируя ее присутствие.

Например, эмулятор USB-ключа повсеместно использовался даже владельцами полностью лицензионных версий 1С для избавления от технических заморочек с лицензированием сервера, который установлен на виртуальной машине.

[править] Пиратский сервер

Если программа для своей работы требует сетевое подключение к серверу, то применяется этот способ. Пишется и поднимается свой сервер, на который программа переправляется через хостс или более хитроумными методами вроде хуков. Если сервер находится в сети и к нему подключается несколько клиентов, то обычно это сервер мультиплеера. Если сервер хостится на локальном компе, то это кастрированная, обычно отреверсенная, версия сервера разработчика программы. Именно так был взломан Assassin’s Creed 2. Исходники эмулятора сервера на питоне автор заботливо приложил, за что ему спасибо.

[править] RegKey

[править] Portable

Собственно, варез скачивается и просто распаковывается в любую папку (то есть инсталлировать ничего не надо и в системе не прописывается). Плюс в том, что портабельные программы взламывать не нужно и можно носить с собой где угодно. Однако их невозможно обновить ввиду портабельности, что вызывает баттхерт у юзеров, хотящих иметь последнюю версию продукта (проблема решается с помощью PortableApps). Это конечно немного отходит от понимания кряка, но все же софт иногда можно вылечить только так.

[править] Песочница

Программа просто устанавливается в песочницу, используется по назначению, затем сносится вместе с песочницей. Идеально для небольших редкоиспользуемых программ с несущественными ограничениями во время trial-периода. Дело в том, что шароварка должна обязательно оставлять следы в системе, иначе её можно удалять/устанавливать сколько угодно раз. Собственно песочница и чистит эти следы, вне зависимости от проги.

[править] Побочные эффекты

Как и любые вещества, таблэтки имеют выраженные побочные эффекты: от практически безвредных adware-примочек до полновесных внутриутробных червиев и троянов. Об этом все знают, но любовь к халяве всё равно сильнее.

Некоторые хитрожопые копирасты умудряются делать программу недееспособной при взломе, специально создавая условия для критической ошибки. Например, ставят защиту не только на запуск игры, но и внедряют неизлечимый баг, мирно спящий, скажем до 50% прохождения игры и в самый ответственный момент, когда игрок открывает страшную дверь в страшное логово страшного босса, — игра вылетает, злорадно кекекекая. Или не вылетает и не препятствует запуску, но делает прохождение спираченной игры невозможным, как например в довольно новой игре The Talos Principle, в пиратских копиях которой игроки застревали в лифте. Расчёт идет на то, что когда первый же игрок дойдёт до этого места и пока народные умельцы просекут, что да где произошло, и выпустят очередную версию лекарства — все, кто хотят поиграть в игру на шару, но имеют деньги, плюнут и таки купят игру. Сейвы, к слову, в таких случаях несовместимы с новыми версиями игры — таким образом «воров» наказывают, заставляя проходить игру заново. Хотя по сути недоломанность игры свидетельствует о недалёкости формацевта, ибо он не соизволил разобраться до конца и лечил лишь симптомы, а не причину. Да и фармацевты между собой соревнуются, кто быстрее выпустит лекарство к популярной игре, то есть цель в скорости, а не в качестве.

В случае компьютерных игр, наиболее распространенными побочными эффектами является невозможность играть на официальных серверах, а также невозможность обновить версию игры, так как многие официальные патчи проверяют рабочие файлы игры на каноничность. Как правило, под каждый патч выпускается новая таблэтка.

Reget поступал аналогично, но с особым цинизмом: вместо искомого прона в архиве оказывался txt-файл с приветами от разработчиков. Дополнительный плюс — быдло могло и не догадаться, что это не «прога плохая», а именно защита от халявы, а это, сами понимаете, покупке не способствовало. С Flashget’ом же двусмысленности не было.

Источник