Взлом программного обеспечения (известный как «взлом» в основном в 1980-х годах [1] ) — это действие по снятию защиты от копирования с программного обеспечения. [2] Защиту от копирования можно снять, применив определенный взлом . Взлом может означать любой инструмент, позволяющий взломать защиту программного обеспечения, украденный ключ продукта или угаданный пароль. Взлом программного обеспечения обычно подразумевает обход лицензионных и эксплуатационных ограничений коммерческого программного обеспечения незаконными методами. Эти методы могут включать в себя непосредственное изменение кода путем дизассемблирования и редактирования битов, распространение украденных ключей продукта или разработку программного обеспечения для генерации ключей активации. [3] Примерами взломов являются: применение патча или создание реверсивных генераторов серийных номеров, известных как кейгены , таким образом обходя регистрацию программного обеспечения и платежи или преобразуя пробную/демонстрационную версию программного обеспечения в полностью функционирующее программное обеспечение без оплаты за него. [4] Взлом программного обеспечения способствует росту интернет-пиратства , когда пиратское программное обеспечение распространяется среди конечных пользователей [2] через сайты обмена файлами, такие как BitTorrent , One click hosting (OCH), или через загрузки Usenet , или путем загрузки пакетов оригинального программного обеспечения с кряками или кейгенами. [4]
Некоторые из этих инструментов называются keygen , patch , loader , или no-disc crack . Keygen — это самодельный генератор серийных номеров продуктов, который часто предлагает возможность генерировать рабочие серийные номера на ваше имя. Патч — это небольшая компьютерная программа, которая изменяет машинный код другой программы. Это дает взломщику преимущество не включать большой исполняемый файл в релиз, когда изменено всего несколько байтов. [5] Загрузчик изменяет поток запуска программы и не снимает защиту, а обходит ее. [6] [7] Известный пример загрузчика — трейнер, используемый для мошенничества в играх. [8] Fairlight указал в одном из своих файлов .nfo , что такие типы кряков не допускаются для релизов игр варезной сцены . [9] [6] [10] Nukewar показал, что защита может не сработать в любой момент, чтобы это был действительный кряк. [11]
Взлом программного обеспечения тесно связан с обратным проектированием , поскольку процесс атаки на технологию защиты от копирования похож на процесс обратного проектирования. [12] Распространение взломанных копий незаконно в большинстве стран. Были судебные иски по поводу взлома программного обеспечения. [13] Использование взломанного программного обеспечения может быть законным при определенных обстоятельствах. [14] Образовательные ресурсы по обратному проектированию и взлому программного обеспечения, однако, являются законными и доступны в виде программ Crackme .
Программное обеспечение изначально дорого производить, но дешево копировать и распространять. Поэтому производители программного обеспечения обычно пытались внедрить какую-либо форму защиты от копирования перед выпуском его на рынок. В 1984 году Лэйнд Хантсман, руководитель разработки программного обеспечения в Formaster, компании по защите программного обеспечения, прокомментировал, что «ни одна система защиты не оставалась невзломанной предприимчивыми программистами дольше нескольких месяцев». [2] В 2001 году Дэн С. Уоллах, профессор из Университета Райса , утверждал, что «те, кто решил обойти защиту от копирования, всегда находили способы сделать это — и всегда будут». [15]
Большинство ранних взломщиков программного обеспечения были компьютерными любителями, которые часто формировали группы, которые соревновались друг с другом во взломе и распространении программного обеспечения. Взлом новой схемы защиты от копирования как можно быстрее часто рассматривался как возможность продемонстрировать свое техническое превосходство, а не как возможность заработать деньги. Взломщики программного обеспечения обычно не получали материальной выгоды от своих действий, и их мотивацией была сама задача снятия защиты. [2] Некоторые низкоквалифицированные любители брали уже взломанное программное обеспечение и редактировали в нем различные незашифрованные строки текста, чтобы изменить сообщения, которые игра могла бы сказать игроку, часто что-то считавшееся вульгарным. Загрузка измененных копий в файлообменные сети давала повод для смеха взрослым пользователям. Группы взломщиков 1980-х годов начали рекламировать себя и свои навыки, прикрепляя анимированные экраны, известные как вступления к крэку , к программам, которые они взламывали и выпускали. [16] Как только техническая конкуренция расширилась от задач взлома до задач создания визуально ошеломляющих вступлений, были заложены основы для новой субкультуры, известной как демосцена . Демосцена начала отделяться от нелегальной "варезной сцены" в 1990-х годах и теперь считается совершенно другой субкультурой. Многие взломщики программного обеспечения позже стали чрезвычайно способными реверс-инженерами программного обеспечения; глубокие знания сборки, необходимые для взлома защиты, позволяют им реверс-инженерить драйверы , чтобы портировать их из двоичных драйверов для Windows в драйверы с исходным кодом для Linux и других свободных операционных систем. Также, поскольку музыка и игровые вступления были неотъемлемой частью игр, музыкальный формат и графика стали очень популярными, когда оборудование стало доступным для домашнего пользователя.
С развитием Интернета взломщики программного обеспечения создали секретные онлайн-организации. Во второй половине девяностых одним из самых уважаемых источников информации о «реверсировании защиты программного обеспечения» был веб-сайт Фравии .
В 2017 году группа взломщиков программного обеспечения начала проект по сохранению программного обеспечения Apple II путем снятия защиты от копирования . [17]
High Cracking University (+HCU) был основан Old Red Cracker (+ORC), считающимся гением обратного инжиниринга и легендарной фигурой в Reverse Code Engineering (RCE), для продвижения исследований в области RCE. Он также преподавал и был автором многих статей по этой теме, и его тексты считаются классикой в этой области и являются обязательным чтением для студентов RCE. [18]
Добавление знака «+» перед прозвищем реверсера означало членство в +HCU. Среди студентов +HCU были лучшие реверсеры Windows во всем мире. [18] +HCU ежегодно публиковал новую задачу по реверс-инжинирингу, и небольшое количество респондентов с лучшими ответами получали право на должность бакалавра в университете. [18]
+Fravia был профессором в +HCU. Сайт Fravia был известен как «Страницы обратного проектирования +Fravia», и он использовал его, чтобы бросить вызов программистам, а также обществу в целом, чтобы «обратно разработать» «промывание мозгов коррумпированного и безудержного материализма». В лучшие времена его сайт посещали миллионы посетителей в год, и его влияние было «широко распространено». [18] На своем сайте +Fravia также поддерживал базу данных учебных пособий, созданных студентами +HCU для потомков. [19]
В настоящее время большинство выпускников +HCU перешли на Linux, и лишь немногие остались реверсерами Windows. Информация в университете была заново открыта новым поколением исследователей и практиков RCE, которые начали новые исследовательские проекты в этой области. [18]
Наиболее распространенный взлом программного обеспечения — это модификация двоичного файла приложения для вызова или предотвращения определенной ключевой ветви в выполнении программы. Это достигается путем обратного проектирования скомпилированного программного кода с использованием отладчика , такого как SoftICE , [20] OllyDbg , GDB или MacsBug , пока взломщик программного обеспечения не достигнет подпрограммы , содержащей основной метод защиты программного обеспечения (или путем дизассемблирования исполняемого файла с помощью такой программы, как IDA ). [21] Затем двоичный файл модифицируется с использованием отладчика или шестнадцатеричного редактора, такого как HIEW [22] или монитора таким образом, чтобы заменить предыдущий код операции ветвления его дополнением или кодом операции NOP , так что ключевая ветвь либо всегда будет выполнять определенную подпрограмму , либо пропускать ее. Почти все распространенные взломы программного обеспечения являются вариациями этого типа. Область кода, в которую нельзя входить, часто называют «плохим мальчиком», в то время как та, которую следует выполнить, — «хорошим мальчиком». [23]
Разработчики проприетарного программного обеспечения постоянно разрабатывают такие методы, как обфускация кода , шифрование и самомодифицирующийся код , чтобы сделать двоичную модификацию все более сложной. [24] Даже принимая эти меры, разработчики изо всех сил пытаются бороться со взломом программного обеспечения. Это связано с тем, что профессионалы очень часто публично выпускают простой взломанный EXE или установщик Retrium для публичной загрузки, устраняя необходимость для неопытных пользователей взламывать программное обеспечение самостоятельно.
Конкретным примером этой техники является взлом, который удаляет срок действия ограниченной по времени пробной версии приложения. Эти взломы обычно представляют собой программы, которые изменяют исполняемый файл программы, а иногда и .dll или .so, связанные с приложением, а процесс изменения исходных двоичных файлов называется патчингом. [12] Аналогичные взломы доступны для программного обеспечения, требующего аппаратного ключа . Компания также может сломать защиту от копирования программ, которые они легально приобрели, но которые лицензированы для определенного оборудования, так что нет риска простоя из-за отказа оборудования (и, конечно, нет необходимости ограничивать себя запуском программного обеспечения только на купленном оборудовании).
Другой метод — использование специального программного обеспечения, такого как CloneCD, для сканирования на предмет использования коммерческого приложения защиты от копирования. После обнаружения программного обеспечения, используемого для защиты приложения, может быть использован другой инструмент для снятия защиты от копирования с программного обеспечения на CD или DVD . Это может позволить другой программе, такой как Alcohol 120% , CloneDVD , Game Jackal или Daemon Tools , скопировать защищенное программное обеспечение на жесткий диск пользователя. Популярные коммерческие приложения защиты от копирования, которые могут быть просканированы, включают SafeDisc и StarForce . [25]
В других случаях может быть возможно декомпилировать программу, чтобы получить доступ к исходному коду или коду на уровне выше машинного кода . Это часто возможно с языками сценариев и языками, использующими JIT- компиляцию. Примером является взлом (или отладка) на платформе .NET, где можно рассмотреть возможность манипулирования CIL для достижения своих потребностей. Байт-код Java также работает аналогичным образом, в котором есть промежуточный язык, прежде чем программа будет скомпилирована для запуска на машинном коде, зависящем от платформы . [26]
Продвинутая обратная разработка для таких защит, как SecuROM , SafeDisc , StarForce или Denuvo, требует от взломщика или многих взломщиков потратить гораздо больше времени на изучение защиты, в конечном итоге найти все уязвимости в коде защиты, а затем написать собственные инструменты для автоматического «распаковывания» защиты из исполняемых (.EXE) и библиотечных (.DLL) файлов.
В Интернете есть ряд сайтов, которые позволяют пользователям загружать кряки, созданные группами варезистов для популярных игр и приложений (хотя и с опасностью приобретения вредоносного программного обеспечения, которое иногда распространяется через такие сайты). [27] Хотя эти кряки используются легальными покупателями программного обеспечения, их также могут использовать люди, которые загрузили или иным образом получили несанкционированные копии (часто через сети P2P ).
Взлом программного обеспечения привел к распространению пиратского программного обеспечения по всему миру (пиратство программного обеспечения). Было подсчитано, что Соединенные Штаты потеряли 2,3 миллиарда долларов США на программном обеспечении для бизнеса в 1996 году. Уровень пиратства программного обеспечения был особенно высок в странах Африки, Азии, Восточной Европы и Латинской Америки. В некоторых странах, таких как Индонезия, Пакистан, Кувейт, Китай и Сальвадор, [28] 90% используемого программного обеспечения было пиратским. [29]
Происхождение термина, вероятно, связано с деятельностью взломщиков в тишине ночи.
может быть единственной причиной, по которой вы пришли к выводу, что измененный поток запуска такой же, как имитированное поведение защиты, как это делает EMU.
Загрузчик — это программа, способная загружать в память и запускать другую программу.
Test.Drive.Ferrari.Racing.Legends-SKIDROW был выпущен с "Loader", а не с взломанным exe. Вот почему вы видите оригинальный exe, переименованный в "TDFerrari_o.exe". Поскольку это не разрешено и в этом случае значительно замедляет игру сообщениями Xlive при запуске и игре, вы можете понять, почему мы включили правильный взломанный.
, наш "метод" — это загрузчик, и наши конкуренты использовали тот же метод для "взлома" игр xlive, подобных этой.
UNNUKED: game.plays.full no.issues crack.is.fine no.single.byte.patch.used protection.bypass.means.not.active.means.removed protection.does.kick.in.in.any.point.это.или.удаление.не.имеет.никакой.разницы [ZoNeNET]
{{cite journal}}
: Цитировать журнал требует |journal=
( помощь )