Охота на ведьм Николай «GorluM» Андреев Хакер, номер #078, стр. 078-104-5 Засечь подобный метод будет непросто, вылечить — сложно. Чтобы наша программа научилась детектировать detours-like перехват, надо заставить ее проверять первые байты КАЖДОЙ экспортируемой или импортируемой функции на предмет jmp и подобных инструкций. Вылечить же функцию с безусловным переходом в начале можно, только зная, какие на месте этого джампа должны быть байты. А для этого надо открыть файл модуля, лежащий на диске, и найти там эту еще не попорченную функцию, чтобы взять оттуда оригинальное начало. Нелегко, но реализовать можно. Печально только то, что тормозить такая проверка будет — это точно. [кое-что о ring0] Ну и последнее, о чем я хочу вспомнить в этом материале, — о режиме ядра. Kernel-руткит — более редкое явление, чем обычный user mode представитель, и более страшное. Обнаружить программу с грамотной ядерной stealth-технологией бывает очень сложно, а порой и вовсе невозможно. Если что-нибудь и выдает руткиты в ring0 — то это снова перехват API. В ядре он реализуется путем подмены записей в SDT. Чтобы обнаружить его, достаточно получить оригинал таблицы (читай об этом в статье 90210 на www.rootkit.com) и проверить подлинность всех записей. Однако надо признать, реализуется это не вдруг. Надо лезть в ядро, а это, как правило, значит писать драйвер. Не каждый возьмется. Автор утилиты VICE, руткит-детектора вроде нашего, взялся, и теперь его программа без проблем фиксирует перехват функций в kernel mode. Правда, не лечит. Как видишь, простор для действий большой, еще никто не написал нормальной программы, которая бы умела не только засекать, но и убивать ВСЕ невидимки по каким-то их характерным особенностям вроде перехвата. У тебя есть шанс быть первым. Дерзай. INFO Интересно, почему всякие АВП и прочие аверы до сих пор не детектируют программы со stealth-модулями? Ведь ничего не стоит написать простенький резидентный монитор для ловли абсолютно любых невидимок. INFO GetProcAddressEx — это не стандартная функция для поиска, а ее аналог, реализованный специально для внутреннего использования в нашем детекторе (ее сорец можешь найти на диске). WWW Detours-перехват живет вот тут: http://research.microsoft.com/sn/detours CD На диске к журналу ты обнаружишь пример программы детектора и новую модифицированную версию программы-невидимки. |