stringtranslate.com

Взлом программного обеспечения

Иллюстрация взлома программного обеспечения

Взлом программного обеспечения (известный как «взлом» в основном в 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]

Смотрите также

Ссылки

  1. ^ Kevelson, Morton (октябрь 1985 г.). «Isepic». Ahoy! . стр. 71–73 . Получено 27 июня 2014 г. Происхождение термина, вероятно, связано с деятельностью взломщиков в тишине ночи.
  2. ^ abcd "Что мотивирует взломщиков программного обеспечения?" (PDF) . Сиги Гуд и Сэм Круз, Австралийский национальный университет, Журнал деловой этики (2006). Архивировано (PDF) из оригинала 21 октября 2022 г. . Получено 30 апреля 2022 г. .
  3. ^ Tulloch, Mitch (2003). Microsoft Encyclopedia of Security (PDF) . Редмонд, Вашингтон: Microsoft Press. стр. 68. ISBN 0735618771. Архивировано из оригинала (PDF) 10 августа 2014 г. . Получено 20 июля 2014 г. .
  4. ^ ab Kammerstetter, Markus; Platzer, Christian; Wondracek, Gilbert (16 октября 2012 г.). «Vanity, cracks and malware». Труды конференции ACM 2012 г. по компьютерной и коммуникационной безопасности . Raleigh North Carolina USA: ACM. стр. 809–820. doi :10.1145/2382196.2382282. ISBN 978-1-4503-1651-4. S2CID  3423843.
  5. ^ Крейг, Пол; Рон, Марк (апрель 2005 г.). "Глава 4: Взломщики". В Burnett, Mark (ред.). Software Piracy Exposed - Secrets from the Dark Side Revealed . Издатель: Andrew Williams, Макет страницы и иллюстратор: Patricia Lupien, Редактор по приобретению: Jaime Quigley, Редактор текста: Judy Eby, Технический редактор: Mark Burnett, Индексатор: Nara Wood, Дизайнер обложки: Michael Kavish. Соединенные Штаты Америки: Syngress Publishing. стр. 75–76. doi :10.1016/B978-193226698-6/50029-5. ISBN 1-932266-98-4.
  6. ^ ab FLT (22 января 2013 г.). "The_Sims_3_70s_80s_and_90s_Stuff-FLT". Архивировано из оригинала 14 сентября 2014 г. Получено 13 сентября 2014 г. Это может быть единственной причиной, по которой вы пришли к выводу, что измененный поток запуска такой же, как имитированное поведение защиты, как это делает EMU.
  7. ^ Shub-Nigurrath [ARTeam]; ThunderPwr [ARTeam] (январь 2006). "Cracking with Loaders: Theory, General Approach, and a Framework". Журнал CodeBreakers . 1 (1). Исследовательский проект Universitas-Virtualis. Загрузчик — это программа, способная загружать в память и запускать другую программу.
  8. ^ Нигуррат, Шуб (май 2006 г.). «Руководство по работе с памятью процессов, написанием загрузчиков и оракулами». Журнал CodeBreakers . 1 (2). Исследовательский проект Universitas-Virtualis.
  9. ^ FLT (29 сентября 2013 г.). "Test_Drive_Ferrari_Legends_PROPER-FLT". Архивировано из оригинала 14 сентября 2014 г. Получено 13 сентября 2014 г. Test.Drive.Ferrari.Racing.Legends-SKIDROW был выпущен с "Loader", а не с взломанным exe. Вот почему вы видите оригинальный exe, переименованный в "TDFerrari_o.exe". Поскольку это не разрешено и в этом случае значительно замедляет игру сообщениями Xlive при запуске и игре, вы можете понять, почему мы включили правильный взломанный.
  10. ^ SKIDROW (21 января 2013 г.). "Test.Drive.Ferrari.Racing.Legends.Read.Nfo-SKIDROW". Архивировано из оригинала 14 сентября 2014 г. Получено 13 сентября 2014 г. Да , наш "метод" — это загрузчик, и наши конкуренты использовали тот же метод для "взлома" игр xlive, подобных этой.
  11. ^ "Batman.Arkham.City-FiGHTCLUB nukewar". 2 декабря 2011 г. Архивировано из оригинала 13 сентября 2014 г. 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]
  12. ^ ab Eilam, Eldad (2005). Реверсирование: секреты реверсивного проектирования. Эллиот Дж. Чикофски. Индианаполис, Индиана: Wiley. ISBN 0-7645-9768-X. OCLC  80242141.
  13. Cheng, Jacqui (27 сентября 2006 г.). «Microsoft подает иск из-за взлома DRM». Ars Technica . Архивировано из оригинала 15 июля 2014 г. Получено 15 июня 2017 г.
  14. ^ Fravia (ноябрь 1998 г.). «Законна ли обратная разработка?». Архивировано из оригинала 5 марта 2022 г.
  15. ^ Wallach, DS (октябрь 2001 г.). «Технология защиты от копирования обречена». Computer . 34 (10): 48–49. doi :10.1109/2.955098. Архивировано из оригинала 21 января 2022 г. Получено 10 марта 2023 г.
  16. ^ Reunanen, Markku; Wasiak, Patryk; Botz, Daniel (26 марта 2015 г.). «Crack Intros: Piracy, Creativity and Communication». International Journal of Communication . 9 : 20. ISSN  1932-8036. Архивировано из оригинала 17 июня 2022 г. Получено 17 июня 2022 г.
  17. ^ Пирсон, Джордан (24 июля 2017 г.). «Программисты спешат спасти программное обеспечение Apple II, прежде чем оно исчезнет». Материнская плата. Архивировано из оригинала 27 сентября 2017 г. Получено 27 января 2018 г.
  18. ^ abcde Сайрус Пейкари; Антон Чувакин (12 января 2004 г.). Security Warrior . "O'Reilly Media, Inc.". стр. 31. ISBN 978-0-596-55239-8.
  19. ^ Вианелло, Франческо. "Домашняя страница Академии". Архивные страницы Фравии по обратному проектированию . Архивировано из оригинала 26 сентября 2022 г. Получено 17 мая 2022 г.
  20. ^ Ankit, Jain; Jason, Kuo; Jordan, Soet; Brian, Tse (апрель 2007 г.). "Software Cracking (апрель 2007 г.)" (PDF) . Университет Британской Колумбии - Электротехника и вычислительная техника. Архивировано (PDF) из оригинала 19 марта 2018 г. . Получено 27 января 2018 г. . {{cite journal}}: Цитировать журнал требует |journal=( помощь )
  21. ^ Cerven, Pavol (2002). Взломайте свое программное обеспечение: защитите свое программное обеспечение от взломщиков . No Starch Press. ISBN 1-886411-79-4.
  22. ^ "Protecting Software Codes By Guards" (PDF) . Хой Чанг, Михаил Дж. Аталлах, CERIAS, Университет Пердью (2001). Архивировано (PDF) из оригинала 10 марта 2023 г. . Получено 6 июня 2022 г. .
  23. ^ "Reversing a Self-Modifying Binary with radare2". Megabeets . 14 января 2018 г. Получено 29 июня 2023 г.
  24. ^ Фергюсон, Джастин; Камински, Дэн (2008). Обратное проектирование кода с помощью IDA Pro. Берлингтон, Массачусетс: Syngress Pub. ISBN 978-0-08-055879-0. OCLC  272383172. Архивировано из оригинала 10 марта 2023 г. . Получено 8 июня 2022 г. .
  25. ^ "Backup Protected Game CD/DVDs". GameCopyWorld . Архивировано из оригинала 5 июня 2008 г. Получено 11 июня 2008 г.
  26. ^ Канзанезе, Рэймонд Дж. младший; Ойер, Мэтью; Манкоридис, Спирос; Кам, Моше. «Обзор инструментов обратного проектирования для 32-разрядной среды Microsoft Windows» (PDF) . Инженерный колледж Университета Дрекселя. Архивировано из оригинала (PDF) 25 марта 2022 г. . Получено 7 июня 2022 г. .
  27. МакКэндлесс, Дэвид (1 апреля 1997 г.). «Warez Wars». Wired . ISSN  1059-1028. Архивировано из оригинала 16 сентября 2021 г. Получено 4 февраля 2020 г.
  28. ^ Гопал, Рам Д.; Сандерс, Г. Лоуренс (сентябрь 2000 г.). «Глобальное пиратство программного обеспечения: из репы крови не выжать». Сообщения ACM . 43 (9): 82–89. doi : 10.1145/348941.349002 . ISSN  0001-0782. S2CID  6706490.
  29. ^ Гопал, Рам Д.; Сандерс, Г. Лоуренс (1998). «Международное пиратство программного обеспечения: анализ ключевых проблем и последствий». Information Systems Research . 9 (4): 380–397. doi :10.1287/isre.9.4.380. ISSN  1047-7047. JSTOR  23011033.