Жизнь после компиляции Bagie (bagie@bk.ru) Спецвыпуск: Хакер, номер #057, стр. 057-074-2 Свои программы по мере возможности и необходимости следует защищать всеми возможными способами. Внешний уровень защиты – это пограничный слой, который всегда первым принимает на себя вражеские атаки. Естественно, то, чем была упакована или закриптована программа, является своего рода "лицом", которое предстает перед взглядом взломщика в начале его пути. В данном типе защиты особенно важен психологический аспект, так как, например, неопытный взломщик, увидев действительно реальную и известную защиту, просто откажется от затеи украсть чужую интеллектуальную собственность. В подтверждение этому можно отметить, что многие протекторы пытаются, иногда успешно, маскироваться либо под простейшие упаковщики, к примеру UPX, либо под какое-нибудь малоизвестные, либо под очень крутые защиты. В любом случае, неправильно определив тип протектора, взломать программу с полпинка, скорее всего, не удастся. Также можно отметить, что по возможности необходимо обеспечивать связь всех уровней защиты, чтобы своевременно реагировать на любые изменения. Например, у некоторых протекторов есть одна очень полезная функция: если они обнаруживают попытку взлома (к примеру происходит отладка приложения), то, не предпринимая никаких видимых действий, протектор передает информацию на нижние уровни программы, где возможна более гибкая обработка возникшего события. Пусть, к примеру, нас отлаживают, пытаясь перехватить кусок кода, где происходит проверка правильности серийного номера. Протектор определяет это событие, затем сообщает приложению о том, что идет отладка. А ты в свою очередь можешь в этом месте написать процедуру, которая затирала бы целиком весь код, в котором происходит проверка, не подавая никаких демаскирующих признаков жизни. Получаем следующее: если неизвестно, как работает защита, отловить место, в котором решается судьба пользователя – довольно сложное дело. Некоторые современные протекторы поддерживают эту столь полезную функцию. Чтобы создать действительно хорошую защиту, также необходимо уделять внимание внутреннему устройству программы. Особо надеяться на протектор нельзя, пусть даже он самый дорогой и известный из всех. Злоумышленник не пожалеет сил, чтобы обойти или подавить навесную защиту – и спасение от таких неприятных ситуаций тоже нужно обеспечить. Вдогонку напишу, что многие крипторы, особенно платные, позволяют организовывать внешнюю регистрацию. Другими словами, это обстоятельство освобождает тебя от обязанности писать защиту: вся проверка и регистрация может осуществляться протектором. Но никогда не используй эту возможность, потому что стоит просто снять защиту - и приложение останется абсолютно "голым" и просто никаким образом не будет просить зарегистрироваться. Протекторы на практике Мы подбираемся к самому интересному – к некоторым известным и не очень протекторам исполняемых файлов, которые подходят для защиты приложений. |