Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #57, АВГУСТ 2005 г.

Эффективный патчинг

MC707 (mc707@mail.ru)

Спецвыпуск: Хакер, номер #057, стр. 057-040-6


Inline-патчинг

Это довольно сложный метод. Возможно, он чем-то напомнит тебе прямой патчинг, но они схожи только по подходу к проблеме, а отличаются и принципами работы, и большинством случаев в области применения: inline-патчинг делается для программ, круто обработанных пакерами/протекторами, которые, вероятно, даже невозможно распаковать с ходу. Смысл метода в том, что в место программы, которое передает управление на OEP (на оригинальный Entry Point), то есть в место, получающее управление, когда вся программа уже распакована, встраивается код, который уже будет модифицировать некоторые байты, отучать от регистрации - собственно, производить взлом. Отработав свое, патчащий код возвращает управление на OEP уже взломанной программе. Для чего нужен этот метод? Ну, хотя бы для того, чтобы уменьшить размер крэка. Если ломаешь программу прямым патчингом, приходится раздавать крэк либо в виде взломанного exe'шника, что ужасно, особенно если вспомнить многомегабайтные Delphi-монстры, либо в виде программы-патча вместе с распаковщиком, что тоже, скорее всего, будет весить немало. Сложность метода inline-патчинга, как ты понимаешь, заключается в том, чтобы вычислить адрес прыжка на OEP и грамотно создать код, модифицирующий программу. Подробно о том, как реализуется этот метод, вместе с его примерами читай на www.cracklab.ru.

На дорожку

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

На этом я завершаю свой опус. Если возникли вопросы, пиши - постараюсь помочь. Удачного патчинга!

Назад на стр. 057-040-5  Содержание