Интеллектуальный мегаполис
Информационная безопасность
Взлом программного обеспечения 04.12.2023 Как происходит «взлом» компьютерных программ, что такое «кейгены» и «патчи»? Для чего используются дебаггеры и дизассемблеры, от чего защищает обфускация кода? Обо всём этом и не только поговорим в статье. Немного теории по работе компьютераЛюбой привычный компьютер имеет оперативную память (RAM), в которую предварительно загружаются все запускаемые программы, и процессор (CPU), который их потом выполняет. При этом процессоров и их ядер (фактически, нескольких процессоров внутри одной микросхемы) может быть много, но оперативная память для запущенных программ всегда одна. Именно это обстоятельство является источником проблем, которые обсудим далее. Оперативная память глазами хакераКонечно, компьютерная программа может тщательно зашифровать все данные, а также свой собственный алгоритм (последовательность команд процессора), по которому она работает. Все эти ухищрения имеют смысл лишь до того момента, пока программа не будет загружена в оперативную память. Разумеется, там-то она будет в расшифрованном виде, иначе процессор не сможет её выполнить! Параллельно хакеры запустят свои инструменты – дизассемблеры и дебаггеры (отладчики), позволяющие изучать программный код, мониторить RAM и пошагово отслеживать каждое действие программы. Существует целое направление – обфускация (или запутывание) программного кода, которое иногда позволяет защитить коммерческую программу от создания «кейгена» (key generator, keygen – генератор серийных ключей). Но хакеры часто ограничиваются лишь созданием «кряка» (crack – трещина, взлом), «патча» (patch – заплатка) или просто «лекарства», которое нелегально активирует программу даже без ввода ключа. Подробнее о работе патчейНевероятно, но факт – часто патч меняет в коде программы всего лишь несколько байт! Для этого хакерам достаточно найти в программном коде две точки (точнее их адреса), которые назовём для простоты A и B. При первом запуске оригинальная программа просит ввести ключ активации – эту точку в программном коде обозначим за A. Предположим, что хакеры заранее приобрели лицензию, поэтому вводят ключ активации и благополучно попадают на окно с поздравлением «Активация прошла успешно!» – эту точку обозначим за B. Далее создаются «кряк», заменяющий в оригинальном программном коде адрес точки A на адрес точки B, а также «взломанная» версия программы. Конечно, помимо рассмотренной схемы существуют и многие другие, в том числе без покупки хакерами лицензии на программу-«жертву». Вместо заключения«Крэкинг», то есть взлом программного обеспечения, является преступлением, нарушающим авторские права разработчиков программ! Разумеется, целью данной статьи является лишь ознакомление с работой процессора и оперативной памяти, основами системного программирования и отладки. Как могут повлиять на работу компьютера вредоносные программы, загруженные в его оперативную память, можно прочитать в следующей статье. |