Введение
Модификация программного обеспечения, часто с целью бесплатного использования.
Взлом программного обеспечения (известный как "взлом" преимущественно в 1980-х годах) – это действие по удалению защиты от копирования из программного обеспечения. Примеры взломов включают: применение патча или создание генераторов серийных номеров, полученных обратной инженерией, известных как keygens, что позволяет обойти регистрацию программного обеспечения и оплату, или преобразование пробной/демонстрационной версии программного обеспечения в полнофункциональную без оплаты. Взлом программного обеспечения способствует росту онлайн-пиратства, при котором пиратское программное обеспечение распространяется среди конечных пользователей. Загрузчик изменяет процесс запуска программы, не удаляя защиту, а обходя её. Хорошо известным примером загрузчика является тренер, используемый для читерства в играх. Fairlight отметил в одном из своих nfo-файлов, что такие взломы недопустимы для релизов игр warez-сцены. Nukewar показал, что защита может не активироваться ни в какой момент, чтобы взлом считался действительным. Взлом программного обеспечения тесно связан с обратной инженерией, поскольку процесс атаки на технологию защиты от копирования аналогичен процессу обратной инженерии. Использование взломанного программного обеспечения может быть законным в определенных обстоятельствах. Однако образовательные ресурсы для обратной инженерии и взлома программного обеспечения являются законными и доступны в виде программ Crackme.
История
Программное обеспечение по своей сути дорого в производстве, но дешево в копировании и распространении. Поэтому производители программного обеспечения обычно пытались внедрить ту или иную форму защиты от копирования перед выпуском продукта на рынок. В 1984 году Лэйн Хантсман, руководитель отдела разработки программного обеспечения компании Formaster, специализирующейся на защите программного обеспечения, заметил, что "ни одна система защиты не оставалась невзломанной предприимчивыми программистами более чем на несколько месяцев". В 2001 году профессор Университета Райса Дэн С. Уоллах утверждал, что "те, кто настроен обойти защиту от копирования, всегда находили и всегда будут находить способы это сделать". Большинство ранних взломщиков программного обеспечения были компьютерными энтузиастами, которые часто объединялись в группы, соревновавшиеся друг с другом во взломе и распространении программ. Взлом новой схемы защиты от копирования как можно быстрее часто рассматривался как возможность продемонстрировать свое техническое мастерство, а не как способ заработка. Взломщики обычно не извлекали материальной выгоды из своих действий, и их мотивацией была сама задача снятия защиты. Когда техническое соревнование расширилось от взлома до создания визуально впечатляющих интро, были заложены основы новой субкультуры, известной как демосцена. Демосцена начала отделяться от нелегальной "warez сцены" в 1990-х годах и теперь рассматривается как совершенно отличная субкультура. Многие взломщики программного обеспечения впоследствии стали высококвалифицированными специалистами по реверс-инжинирингу; глубокие знания ассемблера, необходимые для взлома защиты, позволяют им реверсировать драйверы для портирования их из драйверов, доступных только для Windows, в драйверы с исходным кодом для Linux и других свободных операционных систем. Кроме того, поскольку музыка и игровые интро были неотъемлемой частью игр, музыкальные форматы и графика стали очень популярными, когда аппаратное обеспечение стало доступным для домашнего пользователя. С развитием Интернета взломщики программного обеспечения создали секретные онлайн-организации. Во второй половине 1990-х годов одним из наиболее авторитетных источников информации о "реверс-инжиниринге защиты программного обеспечения" был веб-сайт Fravia. В 2017 году группа взломщиков программного обеспечения начала проект по сохранению программного обеспечения Apple II путем удаления встроенной защиты от копирования Apple II.
+HCU
Высокий Университет Крейкинга (+HCU) был основан Old Red Cracker (+ORC), считающимся гением обратной инженерии и легендарной фигурой в области реверс-кодинга (RCE), для продвижения исследований в области RCE. Он также преподавал и опубликовал множество работ на эту тему, и его труды считаются классикой в этой области и обязательны для изучения студентами RCE. +HCU ежегодно публиковал новую задачу по реверс-инженерии, и небольшое число участников с лучшими решениями получали право на обучение в университете. В настоящее время большинство выпускников +HCU перешли на Linux, и лишь немногие остались специалистами по реверсу Windows. Информация, накопленная в университете, была вновь открыта новым поколением исследователей и практиков RCE, которые начали новые исследовательские проекты в этой области. Для анализа используется OllyDbg, GDB или MacsBug до тех пор, пока взломщик не достигнет подпрограммы, содержащей основной метод защиты программного обеспечения (или путем дизассемблирования исполняемого файла с помощью программы, такой как IDA). Затем двоичный код модифицируется с помощью отладчика или шестнадцатеричного редактора, например HIEW или монитора, путем замены предыдущего условного перехода на его инверсию или на NOP-инструкцию, чтобы ключевая ветка либо всегда выполняла определенную подпрограмму, либо пропускала ее. Почти все распространенные взломы программного обеспечения являются вариациями этого подхода. Область кода, в которую нельзя входить, часто называют "плохим участком", а ту, которую нужно пройти – "хорошим участком". Разработчики проприетарного программного обеспечения постоянно разрабатывают методы, такие как обфускация кода, шифрование и самомодифицирующийся код, чтобы усложнить модификацию двоичного кода. Даже принимая эти меры, разработчикам сложно бороться со взломом программного обеспечения. Это связано с тем, что профессионалы часто публично распространяют простой взломанный EXE-файл или установщик Retrium для свободного скачивания, избавляя неопытных пользователей от необходимости взламывать программное обеспечение самостоятельно. Конкретным примером является взлом, удаляющий ограничение по времени использования пробной версии приложения. Такие взломы обычно представляют собой программы, изменяющие исполняемый файл программы, а иногда и DLL-библиотеки, связанные с приложением, и процесс изменения исходных двоичных файлов называется патчингом. Аналогичные взломы доступны для программного обеспечения, требующего аппаратный ключ. Компания также может обойти защиту от копирования программ, которые она законно приобрела, но лицензирована для конкретного оборудования, чтобы избежать простоя из-за аппаратных сбоев (и, конечно, не ограничивать себя использованием программного обеспечения только на приобретенном оборудовании). Другой метод – использование специализированного программного обеспечения, такого как CloneCD, для обнаружения использования коммерческих систем защиты от копирования. После обнаружения программного обеспечения, используемого для защиты приложения, другой инструмент может быть использован для удаления защиты от копирования с CD или DVD. Это может позволить другим программам, таким как Alcohol 120%, CloneDVD, Game Jackal или Daemon Tools, скопировать защищенное программное обеспечение на жесткий диск пользователя. Популярные коммерческие системы защиты от копирования, которые можно обнаружить, включают SafeDisc и StarForce. В других случаях может быть возможно декомпилировать программу, чтобы получить доступ к исходному коду или коду более высокого уровня, чем машинный код. Это часто возможно со скриптовыми языками и языками, использующими JIT-компиляцию. Примером является взлом (или отладка) на платформе .NET, где можно рассмотреть возможность манипулирования CIL для достижения желаемого результата. Байт-код Java также работает аналогичным образом, используя промежуточный язык перед компиляцией программы в машинный код, зависящий от платформы. Продвинутый реверс-инжиниринг для защиты, такой как SecuROM, SafeDisc, StarForce или Denuvo, требует от взломщика или группы взломщиков значительного времени на изучение защиты, выявление всех уязвимостей в коде защиты и затем создание собственных инструментов для автоматического "разворачивания" защиты из исполняемых (.EXE) и библиотечных (.DLL) файлов. В Интернете существует множество сайтов, где пользователи могут скачивать взломы, созданные warez-группами для популярных игр и приложений (хотя и с риском заражения вредоносным программным обеспечением, которое иногда распространяется через такие сайты). Хотя эти взломы используются законными покупателями программного обеспечения, они также могут использоваться людьми, которые скачали или иным образом получили неавторизованные копии (часто через P2P-сети).
Пиратство программного обеспечения
Взлом программного обеспечения привел к распространению пиратского программного обеспечения по всему миру (пиратство в сфере программного обеспечения). По оценкам, в 1996 году Соединенные Штаты потеряли 2,3 миллиарда долларов США в виде бизнес-приложений. Уровень пиратства программного обеспечения был особенно высок в странах Африки, Азии, Восточной Европы и Латинской Америки. В некоторых странах, таких как Индонезия, Пакистан, Кувейт, Китай и Сальвадор, 90% используемого программного обеспечения было пиратским.