Jump to content

Кодовая пещера

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

Обычное использование

[ редактировать ]

Концепция пещеры кода часто используется хакерами и обратными инженерами для выполнения произвольного кода в скомпилированной программе. Это может быть полезным методом внесения изменений в скомпилированную программу, например, путем включения дополнительных диалоговых окон, изменения переменных или даже удаления проверок ключа программного обеспечения. Часто используя команду вызова, обычно встречающуюся во многих архитектурах ЦП , код переходит к новой подпрограмме и помещает следующий адрес в стек. После выполнения подпрограммы можно использовать команду возврата для извлечения предыдущей ячейки из стека в счетчик программ. Это позволяет существующей программе перейти к вновь добавленному коду без внесения существенных изменений в сам поток программы.

Преимущества

[ редактировать ]
  • Легко и быстро. Это означает, что процесс модификации выполняется быстро и легко. При изменении существующего кода с помощью таких инструментов, как Ollydbg , добавленные функции можно собрать и протестировать без каких-либо внешних зависимостей.
  • Нет необходимости в исходном коде. Использование пещер кода может быть чрезвычайно эффективным, даже если исходный код программисту не предоставлен . Это позволяет программисту вносить такие изменения, как добавление или удаление функций в коде, без необходимости переписывать всю программу или связывать какие-либо внешние зависимости с существующим проектом.

Недостатки

[ редактировать ]
  • Легко сломать программу. Во многих случаях исполняемый файл модифицируется. Это означает, что в существующем скрипте может не быть выделенного кода для любого внедрения кода из-за нехватки ресурсов, предусмотренных в скрипте. Любая замена существующего скрипта может привести к сбою/вылету программы.
  • Отсутствие универсальности. Внедрение кода в существующий сценарий означает, что ограниченное пространство позволяет вносить только простые изменения инструкций, а в качестве языка используется только ассемблер. Это можно смягчить с помощью инжекторов общих библиотек ( внедрение DLL [Windows] или LD_PRELOAD [Linux]), так что внедренная библиотека содержит уже скомпилированный код, а существующие инструкции в целевом двоичном файле просто изменяются для его использования.

Инструменты

[ редактировать ]
  • pycave : простой инструмент для поиска кодовых пещер в файлах Portable Executable (PE). [1]
  • Ollydbg : отладчик для анализа кода. Он отслеживает вызовы и выполнение скриптов, а также отображает любые итерации в библиотеках и двоичных файлах. Код можно вставлять или удалять из EXE-файла непосредственно с помощью этого отладчика.
  • PE: Explorer : позволяет пользователю открывать и редактировать исполняемые файлы, называемые PE-файлами (переносимые исполняемые файлы). Сюда входят файлы .EXE, .DLL и другие менее распространенные типы файлов.
  • Cheat Engine : мощный инструмент, который читает память процесса и записывает память процесса. Это означает, что любые значения данных на стороне клиента можно изменять и редактировать. Он также может отображать изменения значений.
  • TSearch : мощный инструмент, который читает память процесса и записывает память процесса. Как и Cheat Engine, он может изменять данные значений на стороне клиента. [2] [3] [4] [5]
  1. ^ «Пикейв» . Гитхаб . 27 октября 2021 г.
  2. ^ Руководство для начинающих по Codecaves - CodeProject
  3. ^ Изменение двоичных файлов: добавление диалогового окна-заставки. Архивировано 7 апреля 2014 г. на Wayback Machine.
  4. Взлом игр с использованием кодовых пещер. Архивировано 7 апреля 2014 г. на Wayback Machine.
  5. ^ Теории и методы Кодовых пещер.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ab63ebbe8c47a4d1d45f99a0768849c8__1714599660
URL1:https://arc.ask3.ru/arc/aa/ab/c8/ab63ebbe8c47a4d1d45f99a0768849c8.html
Заголовок, (Title) документа по адресу, URL1:
Code cave - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)