Что значит пропатчить программу и как это сделать

Добавил пользователь Alex
Обновлено: 04.10.2024

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

Что такое патч?

Утилита patch умеет быстро и эффективно распоряжаться данными из файла-патча, используя для этого хранящиеся в нём инструкции. И таким образом выполняет все рутинные действия по редактированию. Пользователю (разработчику) необходимо лишь правильно выполнить соответствующую команду, задав все необходимые аргументы и опции.

Синтаксис и основные опции команды patch

Нет ничего удивительного в том, что утилита patch относится к категории ПО, которое обязательно должно быть установлено на любой машине для разработки программ, да и вообще для ведения разработки. Практически любой дистрибутив Linux предоставляет утилиту patch предустановленной по-умолчанию.

Стоит также отметить, что по своей функциональности, patch довольно сложна и обладает, без преувеличения, просто огромным набором опций. По этой причине в данной статье будут приведены только самые распространённые приёмы при работе с этой утилитой и только сопутствующие им опции команд. Синтаксис команды patch следующий:

Помещает неудавшиеся (отклонённые) изменения в отдельный файл rejecfile вместо файла .rej по-умолчанию.

Применение патчей к отдельным файлам

Прежде, чем начать рассмотрение практических примеров, необходимо сказать несколько слов о той самой утилите, которая и создаёт патчи — diff. Она может генерировать патчи трёх типов — простой, контекстный и контекстный унифицированный. Простой гораздо более компактный по размеру, чем контекстные, но последние гораздо более удобочитаемы и понятны для восприятия пользователем. Для того, чтобы сгенерировать простой патч, для команды diff никаких специальных опций не требуется. А для генерации контекстного или унифицированного контекстного патчей предназначены опции -с и -u соответственно:

Пусть имеется файл с кодом C++ ChildClass.cpp:

И пусть в этот файл было внесено следующее изменение: метод valueSqr() был переименован в calcSqr(). Тогда контекстный патч (файл contextpatch) будет выглядеть следующим образом:

Теперь, чтобы пропатчить старую версию ChildClass.cpp, нужно выполнить команду:

В результате будет получен файл ChildClass_new.cpp с актуальным содержимым.

Работа с проектами

С помощью утилиты patch можно также применять патчи для нескольких файлов, причём расположенных в разных каталогах. Это удобно, когда изменения проводятся в масштабах целого проекта. Но в этом случае и сам патч должен быть особым образом подготовлен утилитой diff.

Пусть имеется старый проект в каталоге base-project. Внутри него имеются подкаталоги include и src, в которых, в свою очередь находятся файлы с изменениями — ChildClass.h (в каталоге include) и ChildClass.cpp (в каталоге src). Сам изменённый (актуальный) проект был помещён в отдельный каталог new-project. Подготовка патча будет выглядеть следующим образом:

Сгенерированный файл-патч project-patch:

Как видно, вместо ключа -i можно использовать символ « Откат патчей

Если по каким-то причинам патч оказался бесполезен и необходимо вернуться к предыдущей версии файлов (проекта), то можно сделать откат изменений, используя опцию -R:

При возникновении каких-либо ошибок во время применения патча, утилита patch создаёт файлы *.rej, по которым можно восстановить исходную версию файла. Однако, следует учитывать, что восстановление содержимого файлов таким способом — довольно долгое и нудное занятие. Практичнее создавать резервные копии файлов, указывая в команде patch опцию -b:

Заключение

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как пользоваться keygen, crack, patch

Ни для кого не секрет, что в нашей стране 90% установленных программ на компьютерах не являются лицензионными. Программы уже взломаны, но чтобы их установить требуются некоторые навыки. В статье рассмотрены самые распространенные способы установки пиратских программ. Как пользоваться keygen? Как пользоваться crack? Что такое request code? Как пользоваться patch?

1. Инструкция по установке в текстовом файле

2. Серийный номер в текстовом файле

  1. Начать установку программы, пока не потребует серийный номер
  2. Открыть текстовый файл, скопировать серийный номер (Cntr+C)
  3. Вставить его в то место, где требуется (Cntr+V)
  4. Все

3. Как пользоваться keygen

  1. Начать установку программы, пока не потребует серийный номер
  2. Открыть файл Keygen
  3. Сгенерировать серийный номер и скопировать (Cntr+С)
  4. Вставить его в то место, где требуется (Cntr+V)
  5. Все

5. Как пользоваться patch

6. Файлы, для установки программы бесплатно, отсутствуют

Только что установил игру и не могу пропатчить.

Я слышал, что можно как-то патчить образ для игры по инету на пиратских дисках.

Словарь компьютерного сленга . 2014 .

Ющенко, Виктор Андреевич — Виктор Андреевич Ющенко Віктор Андрійович Ющенко … Википедия

Ющенко — Ющенко, Виктор Андреевич Виктор Андреевич Ющенко Віктор Андрійович Ющенко … Википедия

Teh rei — Интернет мем вошедшее в употребление в середине первого десятилетия XXI века название явления спонтанного распространения некоторой информации или фразы, часто бессмысленной, спонтанно приобретшей популярность в интернет среде посредством… … Википедия

В. Ющенко — Виктор Андреевич Ющенко Віктор Андрійович Ющенко Президент Украины Виктор Ющенко … Википедия

Видеомем — Интернет мем вошедшее в употребление в середине первого десятилетия XXI века название явления спонтанного распространения некоторой информации или фразы, часто бессмысленной, спонтанно приобретшей популярность в интернет среде посредством… … Википедия

QUES + Задать вопрос

что значит пропатчить файл.

Определение патча

Историческая справка

Виды патчей в компьютере

Как просто и быстро открыть документ ПДФ в Microsoft Word

Вместе с видами стоит упомянуть и выражение – пропатчить файл или программу. Это значит, что целевой файл или программу нужно определенным образом обновить.

Функции патчей

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

  • исправление предыдущих ошибок;
  • откат изменений предыдущего исправления (когда выбирается ошибочное исправление, приводящее к ещё большим проблемам);
  • улучшение графической составляющей или взаимодействия с ПО/железом;
  • добавление новых функций.

Patch Notes

Такая информация крайне важна для геймеров, но иногда доходит до абсурда. Примером служит Diablo III “Reaper of Souls”, где 2 строки было отведено, под следующую информацию:

  • уменьшено количество кучек золота, выпадающих с убитых монстров;
  • увеличено количество золота в кучках, выпадающих с убитых монстров.

Примеры использования

В классификации было указано, что есть разные виды патчей. Они могут быть ориентированы на самые разные аспекты работы программы, поэтому рассматривать их следует в комплексе с источником (программой).

Desktop.ini на рабочем столе и других папка – зачем используется и что содержит файл

Операционные системы

Программное обеспечение

В некоторых играх исправления выходят настолько часто, что появляются отдельные каналы, которые занимаются их разбором. Примером, является канал Ярослава Кузнецова (aka NS), который занимается разбором интересных моментов игры Dota 2 и нередко обозревает самые крупные патчи.

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

Программа Лаки Патчер

Обзор интерфейса Lucky Patcher

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

Чтобы было понятно как дальше пользоваться Лаки Патчером разберем более подробно его возможности:

Возможности программы

Настройки Патчера

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

Настройка программы

Далее, раздел покажет две основные группы:

  1. Просмотр (отображение информации на экране устройства).
  2. Другие.

Меню в настройках

Пользуясь блоком “Другие” можно настраивать саму работу Лаки Патчера под свои интересы. Раздел довольно большой и попробуем вкратце раскрыть суть каждого компонента:

  1. Отключать или подключать права суперпользователя через меню “Значение проверки root”.
  2. Спрятать папку с утилитой для того, чтобы некоторые приложения не могли ее выявить, позволит меню “Переместить папку”.
  3. Сортировка файлов по количеству дней, прошедших от обновления.
  4. Чтобы правильно завершать работу отметьте “Подтверждать выход”.
  5. Быстрый старт отменит загрузку ненужных иконок при включении.
  6. Ускорить работу Лаки Патчера поможет отключение изображения иконок в списке меню.
  7. Имя APK-файлов присваивается на основании названия самого приложения. Так легче пользоваться поисковой системой или находить файл в списке.
  8. Скрыть уведомления от утилиты.
  9. Отключить проверку автообновлений софта.
  10. Включать и отключать вибрацию при нажатии на кнопки в Лаки Патчере.
  11. Скрытие рекламных баннеров в ЛП.
  12. Просмотр обновлений и их подгрузка.
  13. Информация о приложении.

Другие настройки

В настройках есть также раздел под названием “Решение проблем”, в котором можно перейти в следующие пункты меню, настройка которых позволит более комфортно пользоваться программой:

  1. Установить СуперСУ.
  2. Обновить Базибокс.
  3. Создать лог для cоre-libart.jar.
  4. Создать лог для services.jar.

Раздел

Внимание! Утилита не относится к вирусному софту, но из-за того, что она направлена на патчинг, антивирусники считают ее потенциально опасной. Поэтому не пугайтесь предупреждений системы.

Панель инструментов программы

Вдоль нижнего края Лаки Патчера располагается меню инструментов, пользоваться которым легко, прокручивая его. Триггеры включают в себя:

  1. Переключатели. Позволяет настроить автоматическую работу (различные варианты эмуляции, резервное копирование, проверки, зеркала).
  2. Инструменты (удаление покупок, блокировка баннеров, создание виртуальных папок, определение по умолчанию места установки).
  3. Поиск. Резервные копии (поиск по меню Лаки Патчера, хранение запасных копий).
  4. Пересобрать/установить (перенастрайка приложения и игры).

Панель инструментов

Переключатели

Данный триггер располагается внизу строки меню и помогает пользоваться дополнительной настройкой Лаки Патчера:

  1. Эмуляция проверки лицензии Гугл (раздает приложениям лицензии).
  2. Сервисная проверка и выдача лицензий для Гугл Плей Стор.
  3. Копирование Биллинга, позволяющего правильно отображать цены и описания при совершении бесплатных покупок.
  4. Зеркало для ИнАпп.
  5. Сервис покупок на Плей Стор.
  6. Автоматическое резервное копирование новых и обновленных приложений.
  7. Подключение автоматического переноса новых файлов на SD-носитель или в память гаджета.

Дополнительные настройки

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

Меню приложений

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

Меню приложений

  1. Информация. Здесь отображается все системные сведения о конкретной программе или игре.
  2. Запуск приложения. Нажав на эту кнопку, произойдет открытие файла.
  3. Меню патчей. Основной раздел, собственно для чего и создана утилита.
  4. Инструменты (заморозка, перенос, создание резервных копий).
  5. Удалить приложение.
  6. Очистить или сбросить все установленные настройки.
  7. Перенести на SD-карту.
  8. Панель управления (перенос пользователя в настройки приложения Андроид).

Меню патчей

Чтобы окончательно понять, как пользоваться Лаки Патчером нужно обратиться к его меню. Именно в нем находится главное данного софта.

Меню патчер

  • Удалить проверку лицензии. Можно использовать для тех приложений, которые могут работать в оффлайне, но их разработчики решили, что без интернета программа не включится. Например, подойдет для карточных игр, гонок, прослушивания музыки.
  • Удалить рекламу. Лаки Патч разрешит пользоваться установленным приложением без просмотра назойливой рекламы.
  • Патч поддержка для inAPP и LVL эмуляции. Использование этого меню помогает совершать различные покупки в магазине Гугл Плей.

Важно! Меню для inAPP и LVL эмуляции не позволяет пользоваться им в онлайн-играх.

  • Изменить компоненты приложения. В данном разделе есть несколько вариантов, которые позволят пользоваться Лаки Патчер более комфортно:
  1. Ручное отключение компонентов, то есть самостоятельный выбор файлов из списка.
  2. Изменение с сохранением оригинальной подписи, поможет настроить определенные приложения по своему усмотрению. Например, отключение от интернета, перевод в спящий режим, запись на SD-карту и прочее.
  3. Изменение разрешения и активити с сохранением оригинальной подписи. Позволяет менять даже компоненты. А также доступна функция сборки приложения и дальнейшая его установка.
  • Создать измененный APK. Автоматизированный раздел, дающий возможность вырезать лицензии, рекламу, изменять внутренние настройки и активити, пересобирать программы.

Как пользоваться утилитой: гайд по основным функциям

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

Заморозка программ

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

  1. Включите Лаки Патчер и в его списке выберите искомые файлы.
  2. Разворачиваем меню софта, длинным нажатием на его название и выбираем “Инструменты”.
  3. Кликнуть по “Отключить приложение (заморозить)”.

Заморозить программы

Для того чтобы опять начать пользоваться замороженной программой, необходимо пройти те же шаги. Только вместо “Отключить” высветиться “Разморозить”.

Как удалить рекламу из приложений с помощью Патчера

Постоянно всплывающая и отвлекающая картинка, спам рассылки мешают пользоваться софтом или играть в игры. Но Лаки Патчер предлагает решить эту проблему следующим образом:

  1. Загрузить Lucky Patcher.
  2. Найти и кликнуть по интересующему файлу в списке ЛП.
  3. Выбрать “Меню патчей”.
  4. Перейти в раздел “Удалить рекламу”.
  5. Внутри провалиться в “Удалить рекламу патчем”.
  6. В открывшемся списке ничего не изменять, а только нажать внизу на “Пропатчить”.

Удаление рекламы

Наглядно познакомиться с инструкцией и узнать, как пользоваться меню Лаки Патчера можно в данном видеоролике:

Удаление проверки лицензии Лаки Патчером

Отключение лицензий позволяет использовать программу бесплатно и вносить в нее изменения для улучшения работы и настройки меню под свои требования. Для этого нужно:

  1. Запустить Лаки Патчер и найти в его списке искомый софт.
  2. Провалиться внутрь файла и в меню выбрать “Удаление проверки лицензии”.
  3. После этого кликнуть по “Автоматический режим” и “Пропатчить”.

Существует и еще один способом отключения проверки лицензий – установка модифицированной версии Гугл Плей.

Выбрать

  • Откроются все версии Гугл Плей, из которых лучше выбирать и устанавливать самую новую.

Выбрать новую версию

Более наглядно познакомиться с пошаговой инструкцией удаления лицензии можно через данное видео:

Как совершать бесплатные покупки в играх и приложениях с помощью Lucky Patcher

Одной из самых востребованных функций утилиты является возможность получать игровую валюту безвозмездно и без ограничений (не доступно для онлайн-игр). Чтобы пользоваться приложением в неограниченном объеме и не тратить финансы на дополнительные возможности в нем совершите следующие действия:

  1. В Лаки Патчер найти искомую программу и нажать по ней.
  2. Выбрать “Меню патчей”.
  3. В открывшемся меню кликнуть по строке “Патч поддержка для InApp”.
  4. Ничего не изменяя, внизу страницы нажать по “Пропатчить”.

Покупки на Андроид

Загрузка и использование пользовательских патчей

Для подключения персональных патчей, которые дают возможность пользоваться дополнительными функциями, разблокировками, необходимо войти в приложение.

Более подробно и наглядно как пользоваться меню Лаки Патчер представлено в видео:

Создание резервной копии приложения Патчером

Иногда требуется клонирование или сохранение загруженных из Google Play программ с расширением apk. И в этом поможет Лаки Патчер. Рассмотрим пошаговую инструкцию, как пользоваться ЛП для установки резервной копии:

  1. Зайти в утилиту и из ее меню найти нужный файл.
  2. Нажимаем на ее название и выбираем “Инструменты”.
  3. Затем кликаем по “Создать резервную копию”.
  4. В открывшемся окне выбрать один из вариантов: копия файла или его настроек.

Создать копию приложения

LVL-эмуляция

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

Меры предосторожности при использовании программы

Утилита очень востребована среди геймеров, но не нужно недооценивать ее функционал. Он способен улучшить работу устройства за счет правильного подбора настроек в скачанных программах, замораживании малоиспользуемых. Чтобы безопасно пользоваться Лаки Патчер нужно соблюдать несколько правил:

  1. Предварительно создавайте резервную копию файла, который планируете патчить.
  2. Скопируйте на внешний флеш-накопитель файлы из папки System.
  3. Обязательно устанавливать антивирусник, в настройках которой включить Лаки Патчер в исключения.
  4. Если пропатченная игра или приложение работают с ошибками, торможениями и зависаниями, то лучше их переустановить.
  5. При работе данная утилита пользуется рут правами, поэтому необходимо открыть доступ. Но здесь заключается опасность, если пользователь начнет изменять программные файлы, то могут возникнуть проблемы в работе операционной системы смартфона.

Важно! Обязательно перед установкой Лаки Патчера рекомендуется скачать и загрузить с Гугл Плей одну из предложенных утилит: KingRoot, OneClickRoot, Nexus Root Toolkit, Unlock Root.

Определение патча

Историческая справка

Виды патчей в компьютере

Вместе с видами стоит упомянуть и выражение – пропатчить файл или программу. Это значит, что целевой файл или программу нужно определенным образом обновить.

Функции патчей

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

  • исправление предыдущих ошибок;
  • откат изменений предыдущего исправления (когда выбирается ошибочное исправление, приводящее к ещё большим проблемам);
  • улучшение графической составляющей или взаимодействия с ПО/железом;
  • добавление новых функций.

Patch Notes

Такая информация крайне важна для геймеров, но иногда доходит до абсурда. Примером служит Diablo III “Reaper of Souls”, где 2 строки было отведено, под следующую информацию:

  • уменьшено количество кучек золота, выпадающих с убитых монстров;
  • увеличено количество золота в кучках, выпадающих с убитых монстров.

Примеры использования

В классификации было указано, что есть разные виды патчей. Они могут быть ориентированы на самые разные аспекты работы программы, поэтому рассматривать их следует в комплексе с источником (программой).

Операционные системы

Программное обеспечение

В некоторых играх исправления выходят настолько часто, что появляются отдельные каналы, которые занимаются их разбором. Примером, является канал Ярослава Кузнецова (aka NS), который занимается разбором интересных моментов игры Dota 2 и нередко обозревает самые крупные патчи.

Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
(c) на правах рекламы

Теоретические основы крэкинга: Глава 12. Патчить или не патчить?

call [eax] ; Вызываем "одалживаемую" функцию

Однако вызовами статически импортированных функций API возможности метода "функций взаймы" отнюдь не ограничиваются. "Заимствовать" из исследуемой программы можно совершенно любые функции - от элементарного сравнения строк до функций извлечения файлов из архива неизвестного формата или генерации серийных номеров (изредка встречаются программы с такой ошибкой в защите). Единственное, что для этого необходимо - выяснить тип передаваемых функции параметров и используемое соглашение вызова. Однако нужно понимать, что заимствование функций из программы или из несистемных DLL не вполне известного назначения - операция более опасная, чем использование импортированных функций документированных API. Дело в том, что работа функций API не привязана ни к каким переменным и функциям внутри программы (если, конечно, не считать callback-функции), а вот к функциям программы это в общем случае не относится. Их работа может зависеть от состояния локальных или глобальных переменных, а также других объектов, созданных в процессе работы программы; более того - сами программные вызовы тоже вполне могут изменять состояние переменных, критически важных для работы программы. Поэтому если какой-либо объект в момент вызова окажется в "неправильном" состоянии, результат вызова будет совершенно непредсказуем. Точно таким же образом никто не может гарантировать, что "несвоевременный" вызов не нарушит функционирование всей программы. Хотя, с другой стороны, встроенные процедуры, как правило, достаточно корректно обращаются с переменными и объектами, созданными программой. Так что если Вам вдруг понадобится форсировать загрузку какого-либо плагина, лучше попытаться это сделать это "родными" для программы средствами, и лишь если это у Вас не получится, прибегнуть к средствам API. В любом случае, при заимствовании из основной программы функций в качестве постоянного решения следует быть очень осторожным, хотя сам по себе этот метод нередко бывает полезен.

Патчинг позволяет решать и обратную задачу: "отклонение" вызовов из исследуемой программы на внедряемый крэкером код. Цели этой операции могут быть различными:

Как Вы можете видеть, приведенный список возможных целей покрывает весьма широкую область - от предотвращения нежелательных вызовов до наблюдения за вызовами функций (частным случаем этого являются API-шпионы). Собственно, некоторые техники, используемые в API-шпионах, и основаны на патчинге "переходников" к функциям API, осуществляемом сразу после загрузки программного модуля. Принцип действия большинства API-шпионов следующий:

Однако патчинг и перехват системных вызовов - отнюдь не прерогатива одних лишь крэкеров. Разработчики защит, хотя и с изрядным опозданием, тоже взяли на вооружение идею перенаправления системных вызовов на собственный код. Как я уже упоминал, сравнительно недавно в большом количестве появились навесные защиты, которые позволяют упрятывать любую программу и все необходимые для ее работы файлы в упакованном и зашифрованном виде внутрь одного-единственного EXE. При этом сама программа может обращаться к своим файлам как средствами Win32 API, так и при помощи высокоуровневых функций (которые по сути являются "обертками" для все тех же системных вызовов). О том, каким образом работают такие защиты, Вы уже наверняка догадались: в исполняемый файл дописывается секция, где хранится код, обрабатывающий вызовы системных функций для работы с файлами. Необходимые для работы программы файлы упаковываются и цепляются в "хвост" программы, а таблица импорта дорабатывается таким образом, чтобы вызовы функций работы с файлами перенаправлялись на обработчики, находящиеся во внедренной секции. Когда защищенная программа попытается обратиться к файлу, задача обработчиков заключается в том, чтобы проверить, к какому именно файлу происходит обращение, и либо передать это обращение операционной системе в неизменном виде (если программа обращается к файлу вне "хранилища"), либо имитировать работу системного вызова, но в действительности считывание данных осуществлять из упакованного "хранилища". Однако ирония судьбы заключается в том, что метод взлома полностью аналогичен методу защиты. Действительно, если разработчик "отклонил" вызовы функций работы с файлами на собственный код, то и почему бы и крэкеру не проделать ту же самую операцию? То есть вклинить между программой и обработчиком свой собственный "обработчик обработчика", который будет сбрасывать все "спрятанные" файлы в надежное место. Основную проблему составляет поиск входных и выходных точек этих обработчиков, но здесь могут помочь "особые приметы", которые способны выдать чужеродный код:

Все эти внедрения в чужой процесс, поиски переходников и прочее вполне способны повергнуть в шок начинающего. Это не страшно - даже если Вы никогда не напишете собственный API-шпион, знания о том, как они работают, вполне могут Вам пригодиться в дальнейшем. Как Вы уже догадались, написание приложений, перехватывающих системные вызовы - занятие далеко не самое простое и требующее определенных знаний и навыков. С другой стороны, большинство API-шпионов ограничиваются лишь ведением журнала системных вызовов и не позволяют активно вмешиваться в работу программы. Для начинающего крэкера, у которого есть желание перехватить какой-нибудь системный вызов, но нет опыта в системном программировании, это звучит как приговор. Но ведь так хочется иногда не только подсмотреть, откуда взялись те или иные параметры, но еще и поменять их "на лету", если они Вам чем-то не понравились…

Я уже говорил, из любой безвыходной ситуации существует как минимум два выхода. Этот афоризм верен и в нашем случае, однако от Вас все же потребуются определенные навыки в программировании. Итак, наша задача - вклинить свой код между системной DLL и программой, которая ее вызывает. Одна из первых идей, которые приходят в голову, заключается в том, чтобы вместо "родной" DLL подсунуть свою собственную, которая содержала бы функции с такими же именами, что и "настоящая". Эта библиотека должна помимо вызова "родных" функций из оригинальной библиотеки выполнять еще и те операции, которые Вы в нее заложите. А уж в собственной DLL Вы вольны запрограммировать все, что угодно - от сбора статистики вызовов до анализа и подмены параметров функций. Такой подход к перехвату вызовов из DLL, основанный на подмене оригинальных библиотек, называется DLL wrapping'ом. Чисто технически создание подменной DLL выполняется следующим образом:

Читайте также: