Как-то видел в нете статью описывающую реализацию простого криптора для драйверов. Сейчас потребовалось, ищу - ищу не могу найти. Может кто видел эту статью?
TermoSINteZ Да. Не вижу разницы. Отрубаем бит WP размещаем образ в памяти Биндим импорт (вручную парсим ядро в поисках нужных апи) Фиксим релоки правим пеб передаем управление на оригинальную точку входа На каком этапе может возникнуть сложность то, обяъсни?
zoool А еще : Здесь будут тоже сложности - драйвер может юзать неэкспортируемые функции. А еще как вы собираетесь криптить paged регионы (секции помеченые как paged). Здесь не все так просто. Хотя конечно если драйвер имеет 2 функции DriverEntry, DriverUnload. И ничего толком не делает...
IceStudent Да, с этим ошибся) Не имеет Кстати какая цель - просто криптить? Все равно момент раскриптовки поймать можно. А вот запутать реверсера, то есть запротектить весь код. Вот это уже мега сложно.
Чем сложнее криптовка, тем проще обнаружить уникальную сигнатуру или ряд определенных признаков. Все закриптованоые бинарники все-равно будут декриптованы. И я не понимаю зачем юзать тяжелые алгосы, если можно обойтись простыми xor/add/rol ? Если стоит цель защитить код, а не скрыть сигнатуру - это другой вопрос. Сделать более-менее нормальный протектор (а не криптор!) для драйверов без потери стабильности работы криптуемого драйвера - очень сложно. И вероятнее всего нецелесообразно. Крякер, который будет вскрывать твой драйвер, вероятнее всего не ламер и твоя защита задержит атакующего не более чем на 2е-4ро суток. Далее выйдет статья, как ломать твою защиту, разойдется по форумам, и несколько месяцев твоей тяжелой работы псу под хвост.
Пока моя цель - отсечь "дурака", т.е., человека который просто открыл драйвер в IDA и поверхностно просматривает его.