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


Взлом программного обеспечения (англ. software cracking) — действия, направленные на устранение защиты программного обеспечения (ПО), встроенной разработчиками для ограничения функциональных возможностей. Последнее необходимо для стимуляции покупки такого проприетарного ПО, после которой ограничения снимаются.

Крэк (также искажённое кряк и, крайне редко, крак) (англ. crack) — программа, позволяющая осуществить взлом программного обеспечения. Как правило, крэк пригоден для массового использования. По сути, крэк является воплощением одного из видов взлома, зачастую, это обычный патч.

Для слова кряк используются следующие эвфемизмы: «лекарство», «таблэтка», «аспирин» и т. п.[1] Крякер (англ. cracker) — человек, который занимается созданием кряков.

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

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

Как правило, в основе работы крэкера лежит исследование ассемблерного кода, полученного из машинных инструкций с помощью специально предназначенной для этого программы-дизассемблера. В зависимости от выбранного способа взлома результат исследования может использоваться, например, для построения генератора ключей или для внесения необходимых изменений в исполняемый файл. Последний способ в большинстве случаев наиболее лёгкий, так как не требует изучения алгоритма проверки правильности ключа: зачастую взлом сводится к поиску проверки нескольких условий (наподобие «ВведённоеЧисло равно ЭталонномуЧислу?») и замене такого условия на безусловный переход (goto, jmp), или, реже, на противоположное (то есть для данного примера на «Введённое Число не равно Эталонному Числу?»).