Что такое файл кряка
Кряки, представляющие собой патч, зачастую, заменяют лишь байты по определённым адресам, содержащим команды условного перехода, что позволяет избавиться от нежелательных действий со стороны программы, например, запроса регистрации или активации, наличия оригинального диска, переключения в режим ограниченной функциональности и т. п. Также, зачастую, достаточно лишь изменить одну или несколько переменных, отвечающих за информацию о регистрации/активации.
См. также
Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена.Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники.
Эта отметка установлена 13 мая 2011.
- Компьютерный взлом
- Варез
- Технические средства обхода авторских прав
Wikimedia Foundation . 2010 .
Полезное
Смотреть что такое "Кряк" в других словарях:
Кряк — I нескл. ср. разг. Крик, издаваемый уткой; кря I. II предик. разг. Обозначение крякания утки как действия. III межд. разг. Употребляется при обозначении, при передаче крякания утки. Толковый словарь Ефремовой. Т. Ф. Ефремова … Современный толковый словарь русского языка Ефремовой
КРЯК — муж. (икряк?) лягушачья икра, клек, вакотье, норост. Толковый словарь Даля. В.И. Даль. 1863 1866 … Толковый словарь Даля
кряк — сущ., кол во синонимов: 7 • вакотье (3) • крик (70) • крэк (4) • … Словарь синонимов
кряк — 1, а (кряканье) … Русский орфографический словарь
кряк — іменник чоловічого роду, істота крячок … Орфографічний словник української мови
кряк — а, м. прост. То же, что кряканье (в 1 знач.). Каждое утро Мусю будил клекот гусей, суетливый утиный кряк. Б. Полевой, Золото … Малый академический словарь
кряк — 1. кряк, кряки, кряка, кряков, кряку, крякам, кряк, кряки, кряком, кряками, кряке, кряках 2. кряк (Источник: «Полная акцентуированная парадигма по А. А. Зализняку») … Формы слов
кряк — КРАК, а, КРЯК, а м. Информация о том, как вскрыть защиту программы, системы, сети; программа, выполняющая данную операцию; процесс вскрытия защиты. Из языка программистов, пользователей компьютеров; от англ. crack … Словарь русского арго
кряк — ч. 1) род. у, розм. Те саме, що крякання. Воронячий кряк. 2) род. а, рідко. Те саме, що крячок … Український тлумачний словник
Теория:
Crack (крэк, кряк) - программа, позволяющая осуществить взлом защиты программы, установленной разработчиками для ограничения функциональных возможностей. Как правило, кряк создается для массового использования, и создается программистами-энтузиастами без преследования выгоды. Для слова кряк используются следующие выражения: лекарство, таблетка, медицина, пилюля, аптека и т.п..
Условно бесплатное ПО (shareware) - программы которые можно бесплатно скачать и использовать определенный промежуток времени по прошествию которого за программу придется заплатить, если Вы решили пользоваться ей дальше. Срок бесплатного пользования программой составляет, обычно, 30 дней.
Демо-версия (demo) - программы данного типа, как правило, предназначены для того, чтобы пользователь смог оценить возможности программы. Демо-версия обычно не полнофункциональна (часть опций программы может не работать) либо имеет ограничения на применение программы. Например, программа в демо режиме может обрабатывать всего 1 файл либо создавать какой-то чертеж, но без возможности его распечатать или сохранить результаты работы на диске. Т.е. программы данного типа позволяют лишь оценить саму программу, ее интерфейс и степень ее полезности для пользователя. Полнофункциональную версию необходимо приобретать у разработчика.
Триал- версия (trial) - в принципе, полный аналог условно-бесплатного ПО (shareware) за исключением того, что часто в trial-версиях пользователю предоставляется не определенный бесплатный срок использования программы (30, 14 дней), а определенное количество запусков программы. Можно сказать, что программы типа trial и shareware это одно и тоже.
Защита от копирования (retail software) - Эта защита препятствует только тому, чтобы пользователи не делали копии и не устанавливали программное обеспечение на нескольких компьютерах, не покупая лицензию.
Защита на дисках (игры) - эта защита обычно используются в играх; Для запуска игры вы должны иметь оригинальный компакт-диск. Типичным кряком этой защиты является NoDVD или NoCD, реже - специальный драйвер.
Существует еще множество других типов программной защиты, от очень простого до чрезвычайно сложного. Удаление, отключение или обход защиты - очень трудное и интересное занятие для крэкера. Удаляя защиту, взломщик "побеждает" программиста (или целые программные группы), ответственных за создание алгоритма защиты. После того, как программа сломана, крэкеры, обычно, выкладывают свежеизготовленный кряк на общедоступное скачивание, чтобы продемонстрировать свои способности миру.
Серийный номер, патч, генератор ключей и т.д., принято называть кряком или крэком (от англ. crack). Теперь мы расскажем о каждом подробнее.
Спойлер: Существует несколько основных типов кряков:Серийные номера aka сериалы (serial numders, s/n). Это самый простой тип кряка - последовательный специальный текстовый код, позволяющий снять ограничения или демонстрационный период работы программы. Чаще всего способен работать на нескольких компьютерах, если не проверятся разработчиком через интернет. Чтобы зарегистрировать программу, использующую этот вид регистрации, нужно: Запустить программу и, обычно на вкладке О программе -> Ввести серийный номер или регистрация, вставить этот код.
Регистрационные файлы aka ключи (regfiles, keyfiles). По существу, рег-файлы очень похожи на серийники, обычно это специальный файл с расширением *reg. Если открыть кей-файл любым текстовым редактором, то можно увидеть серийный номер, если он, конечно не зашифрован. Чтобы активирвать программу, регистрирующуюся этим способом, обычно нужно запустить *reg файл и просто согласиться с изменениями реестра. Бывают исключения среди *reg файлов, это могут быть просто файлы, не относящиеся к реестру; их нужно скопировать в папку с программой, также есть вариант типа lisence.dat и им подобных случаев. Разработчикам программы довольно легко противостоять распространению кей-фалов, поскольку, в большинсве случаев, они могут просто заблокировать ключ, добавив его в черный список. Например, ключи Касперского Антивируса блокируются таким способом.
Генератор ключей aka кейген (keygenerator, keymaker, keygen) - небольшая программа, которая генерирует криптографический ключ для кодирования данных или псевдоподлинные CD-ключи или серийные/регистрационные/активационные номера для регистрации/активирования ПО. Генератор ключей сделать намного сложнее, чем любой другой кряк, поскольку крэкер должен не только полностью понять последовательный алгоритм генерации объектного кода, но также и быть в состоянии обновить его. За частую, создание keygen'а занимает несколько дней или даже неделю. Keygen использует те же алгоритмы, что и защита, поэтому его создание - это также результат взлома защиты, а точнее успешного исследования алгоритмов защиты с помощью отладчика либо дизассемблера. Так, можно скачать бесплатную демо (trial) версию и с помощью кейгена превратить ее в полнофункциональную, введя сгенерированный серийный номер.
Разработчики ПО пытаются предотвратить пиратство, используя активацию продукта, требующую от пользователя соединиться с интернетом или позвонить по телефонному номеру для дальнейшего использования ПО, как, например, Adobe . Новейшие кейгены также содержат метод обхода активации продукта. Также, существуют программы, которые сами генерируют специальный ключ, который нужно предоставить разработчику вместе с платой, чтобы получить ключ активации. К счастью, многие крэкеры умеют обходить такую защиту. Пример такой защиты можно увидеть в программах EzGenerator, Incomedia Website X5 Evolution и др.
Patch. Патч - самый широко распространенный тип кряков - маленькая программа, которая изменяет целевые программные файлы, чтобы удалить или изменить часть кода, который ответственен за ограничения защиты или регистрационный процесс. В результате исправление или заставляет программное обеспечение "думать", что оно регистрировано; или например, открывает недоступные в демо-вериях ключевые кнопки или закрытые функции или просто удаляет модуль защиты и т.п. Патч легко создать, сравнивая двоичный код регистрированной версии и trial-версии и исправляя различия между ними. Для регистрации программы необходимо скопировать патч в папку с установленной программой и пропатчить *.exe или *.dll-файл.
Один недостаток патчей - то, что, если взломцик случайно изменит часть кода, который необходим для нормального функционирования программы, она будет работать некорректно или не будет работать вовсе. Некоторые разработчики преднамеренно "смешивают" код защиты с кодом программы, чтобы сбить с толку крэкера; однако, опытные взломщики обходят данный вид защиты без проблем.
Противостоять патчам обычно является не очень аппаратной задачей для программных изготовителей; в большинстве случаев, простое программное обновление версии делает патч бесполезным, потому что патчи изменяют двоичный код и обычно создаются, чтобы изменить определенные части в том коде, который не будет работать, если код будет отличаться (даже немного) от оригинала. Некоторые разработчики пытаются обмануть взломщиков, выпуская "тихие обновления": у программного обеспечения есть точно та же самая версия и даже дата выпуска, но различный двоичный код. Крэкеры противостоят этому выпуском нескольких версий патча, или созданием универсального патча, который работает со всеми версиями программного выпуска.
Loader - программа, предназначенная для запуска взламываемой программы. Обычно просто обходит ограничения на количество запусков или триальное время. Обычно, лоадеры используются, чтобы взломать программное обеспечение с зашифрованными двоичными файлами.
Cracked EXE - это взломанный EXE файл, в котором нейтрализован модуль защиты. Также встречаются случаи с Cracked DLL. Скопировав с заменой такой файл в папку с программой вы получите полнофункциональную версию программы. Иногда, *.exe бывают сломаны не до конца , и программа все еще требуют ввести серийный номер, то ее можно ‘добить’, введя любой набор символов, как правило это бывает 11111-11111-11111 или aaaaa- aaaaa- aaaaa.
NoCD/NoDVD - является аналогом Craсked EXE.
Лекарство - более обобщенная форма всех вышеперечисленных понятий.
Спойлер: Теперь мы знаем о типах crack'в и что они делают. Как правильно использовать их?Во-первых, проверьте загруженный кряк хорошим антивирусом, например NOD32, Kaspersky. Вообще, мы рекомендуем делать это с любым исполняемым файлом, загруженным из Интернета. Помните, что крэкеры никогда не заражают свои кряки вирусами; поскольку один известный крэкер сказал: "Я не собираюсь проводить недели работы, чтобы украсть Ваш пароль ICQ или форматировать Ваш жесткий диск". Тем не менее, советуем ВСЕГДА, проверять кряки антивирусом, перед применением.
Во-вторых, читайте NFO-файл, прилагаемый к кряку ! В этом файле, обычно содержится краткая инструкция по применению лекарства, также бывают случаи с ‘Readme.txt’, эти файлы всегда следует читать, перед тем, так использовать кряк. чтение NFO/Readme сохранит Вас от многих проблем позже.
Теперь Вы готовы распаковать и использовать кряк (если это - программа). Если это - патч или лоадер, Вы должны сначала закрыть взламываемую программу, затем открыть NFO-файл и следовать инструкции. Помните, что некоторые кряки не работают как предназначено; в кряке может быть ошибка, или целевая защита программы могла бы быть уже обновлена. В таких случаях Вы, возможно, должны или получить старшую версию программы, или более новую / рабочую версию крэка.
Если все прошло удачно, то, теперь, программа должна работать без ограничений!
Все мы любим использовать хороший софт для своих целей. Например, для обработки графики, редактирования файлов PDF, запуска хороших игр и т. д. часто необходимо приобрести право использования. Но не у всех есть возможность (или желание) выкладывать свои кровные денежки для этой цели. И в этом случае хакеры пишут специальные программы, которые позволяют обойти процедуру оплаты. Такой софт называется в народе «кряком».
Не будем сейчас заострять внимание на том, что это неправильно и противозаконно, что использовать такое программное обеспечение нельзя. Ведь это и так очевидно, но тем не менее многие пользователи с радостью используют эту возможность. Сегодня просто расскажем вам о том, что такое «кряк», о возможных последствиях его использования.
Что это?
Итак, данный термин был заимствован из английского языка. Дословное значение crack – «ломать с треском». «Кряк»-программа при запуске попросту вносит некоторые изменения в код платного программного обеспечения, которое в результате этого перестает проверять, была ли совершена оплата за использование или нет. Следует отметить, что по аналогичному принципу работают и «патчи». Их отличие заключаются в том, что последние могут как «взламывать», так и исправлять различные ошибки и недоработки в программном обеспечении.
Но вернемся к нашим «баранам». Очень часто применяется «кряк» для Windows, поскольку это самая популярная операционная система, и большинство софта пишется именно для нее. Пользователи должны помнить о том, что, помимо отмены оплаты, этот хакерский софт нередко способен навредить компьютеру. Например, при установке «кряк» через интернет связывается со своим производителем и получает соответствующие инструкции, что ему необходимо выполнить. Например, передать какие-то данные, остановить определенные службы, инфицировать конкретные файлы и так далее.
Мотивы написания
Вы уже начинаете понимать, что такое «кряк»? Его очень часто пишут не из-за каких-нибудь идейных побуждений или альтруистических наклонностей. Автор такого софта, как правило, преследует какие-то личные интересы. Нередко при его инсталляции в систему проникает «троянская» программа, которая «ворует» ваши пароли от учетных записей или каких-нибудь аккаунтов, банковские реквизиты и так далее.
Многие пользователи одной из популярных версий пиратской «Хрюши» в свое время ощутили в полной мере, что такое «кряк», и какие могут быть от него последствия. При деактивации лицензионной проверки этой операционной системы последняя заражалась «троянцем». Со всеми вытекающими последствиями. Долгое время антивирусный софт ничего не мог поделать с этой проблемой, поскольку многие передовые противовирусные программы попросту ничего не обнаруживали.
«Фаервол»
Если вы все же по каким-то причинам используете программы для взлома, настоятельно советуем вам кроме антивируса установить дополнительный «фаервол». Ведь последний позволяет обнаружить подозрительную активность в системе и предупредить вас об этом. Особое внимание стоит обращать на «кряк» для игры. Именно для игр выпускается множество «взломщиков» с вредоносными сюрпризами.
Антивирусное ПО лучше не отключать
Также нельзя оставить без внимания еще одну особенность «кряков». Каждый, кто использовал или пытался использовать этот софт, стакивался с рекомендацией о том, что необходимо отключать антивирусную программу во время его запуска. Сделать это необходимо для того, чтобы якобы не произошло ложное срабатывание тревоги, в результате которого задача «кряка» не будет выполнена.
В этом утверждение есть часть правды. Действительно «антивирусники», защищая авторские права разработчиков, относят «кряки» к вредоносному софту даже в том случае, если те действительно только обходят процедуру платной активации. Но вы должны понимать и то, что сейчас таких «безобидных» программок очень мало. И скорее всего, если вы отключите защиту вашего компьютера, в систему проникнет какой-нибудь вредоносный «агент». Надеемся, вы поняли, что такое «кряк».
Disclaimer: всё ниженаписанное написано исключительно с просветительскими и исследовательскими целями, а также понимания механизмов защиты от взлома. Автор ни в коем случае не рекомендует использовать данную информацию для взлома программ.
Перейдём, собственно, к взлому.
0. Обнуление триала
Собственно, это даже не взлом, а полулегальный способ продлить срок использования неактивированной программы. Заключается он в том, что находится место, где хранится дата первого запуска и меняется/уничтожается. После этого всё можно пользоваться программой до следующего срока.
Посмотрим на нашего подопытного рефлектором. Немного погуляв по коду, находим интересную строчку в конструкторе MainForm:
Открываем редактор реестра, идём в HKEY_CURRENT_USER\Software\Ultrapico\Expresso и видим следующие ключи:
Удаляем их и получаем ещё 60 дней работы.
Данный вариант, конечно, прост и очевиден, но если он даже был бы сложнее — потребовалось бы чуть больше времени провести в рефлекторе, чтобы выяснить все места, куда пишется информация и зачистить их.
Совет разработчикам, которые будут пытаться записать данные в потаённое место: пишите аккуратнее, а то всё может обернуться проблемами обычным пользователям, у которых почему-то не окажется данного места, или не хватит на него прав.
1. Написание keygen'а
Самый ужасный для разработчика вариант, и самый приятный для конечного злобного пользователя. Программа считает себя лицензионной, никаких страшных телодвижений не нужно делать.
Открываем рефлектор и ищем код на предмет классов содержащих License или Registration, видим:
При вводе имени и кода по имени вычисляется некий хеш, который и сравнивается с кодом.
Данный хеш использует DES и всякие префиксы
Байты конвертятся в строку с помощью данного метода.
Теперь всё выяснилось, открываем IDE и копируем все необходимые куски кода (или сами реализовываем). Осталось только выяснить, какие значения у Prefix, Suffix и параметры реализации MyDES. Я их приводить не буду, это уже технические детали.
В результате генерируем ключ на любое имя и видим:
Защита от кейгенов проста и очевида: использовать в каком либо виде ассиметричное шифрование. Т.е. сделать так, чтобы без знания приватного ключа сгенерировать код было бы невозможно, а данный ключ находится только в одном месте — у автора программы.
2. Использование враппера
Проверка корректности лицензии, достаточно хлопотное дело, и небыстрое. Поэтому разработчики программ обычно проверяют лицензию один раз, и дальше используют полученный флажок — валидна/невалидна (как вариант насколько валидна, если допускается несколько типов лицензии, отличающихся возможностями). Тут можно на этом сыграть, использовав следующий алгоритм:
- Указать программе, что лицензия уже проверена
- Указать программе, что лицензия корректна
Воспользуемся этим. Сделаем новый проект, добавим Reference на Expresso.exe и запустим его через себя:
Смотрим, что получилось:
Ну кто бы сомневался.
В данном случае всё оказалось просто, но если бы автор программы заменил публичные свойства на приватные, то всего-лишь пришлось бы использовать Reflection для доступа и всё бы свелось к исходной задаче.
Думаю понятно, как можно пробовать защититься от этого — проверять лицензию периодически, смотреть окружение из которого запущена программа, сделать невозможным установку нужной переменной.
Но все эти защиты приведут к тому, что злоумышленник будет использовать
3. Физический взлом программы
Запускаем ildasm, открываем Expresso.exe и сохраняем дамп в .il файл. Находим уже рассмотренный метод IsRegistered и добавляем немножко своего кода (без меток):
Потом берём ilasm и собираем всё назад (не забыв подключить ресурсы).
Что делает данный код: устанавливает нужное имя для регистрации (не обязательно), и возвращает статус, что всё хорошо.
Т.е. вполне очевидно, что теперь всё будет хорошо:
Немного про код в MSIL: это стековая машина, у которой нет регистров, все операции имеют вид: засунуть в стек нужное количество параметров, выполнить функцию, которая заберёт нужное количество параметров и положит результат. Ну и обратно: установить значение переменной тем, что лежит в стеке. Чтобы лучше понять работу всего этого рекомендую простой приём: пишите маленькую программу на привычном языке, компилируете, смотрите что получилось в MSILe и разбираетесь в конструкциях языка.
Чем жертвует злоумышленник: подписью программы, теперь она уже не автора, а его. В некоторых случаях это проблема, если в программе используется множество библиотек. Тогда злобному хакеру придётся разбирать их все и собирать их заново, но если он с этим справится, то у него будет «своя» версия программы подписанная его ключом.
Защиты от всего этого безобразия собственно немного: проводить обфускацию или выносить часть логики/проверки защиты в нативный код.
Читайте также: