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

детектор лжи

КРИС КАСПЕРСКИ АКА МЫЩЪХ

Спецвыпуск: Хакер, номер #070, стр. 070-060-2


Существует не так уж много утилит, отображающих содержимое MFT в удобочитаемом виде. Одна из них — NtExplorer от Runtime Software. Грубо говоря, это Norton Disk Editor, но только под NTFS. К сожалению, NtExplorer не поддерживает ни плагинов, ни скриптов, поэтому быстро вывести список файлов с поддельными датами создания не получается и каждый из них приходится перебирать «руками». Но NTFS совсем несложная (по нынешним меркам) файловая система, а все ее основные структуры давным-давно реконструированы, документированы и выложены в Сеть: http://linux-ntfs.sourceforge.net. Создание программы, выполняющей автоматизированный поиск «поддельных» файлов, не займет много времени. Дорогу осилит идущий!

[дерево процессов]

Обычно малварь создает свой собственный процесс (реже — внедряется в чужие), при этом возникает вполне естественное желание скрыть этот процесс, убрав его из «Диспетчера Задач» и прочих системных утилит. Как это делается? Для предоставления информации о процессах NT поддерживает два механизма: набор документированных процедур TOOLHELP32 (доставшийся «в наследство» от 9x), реализованных в KERNEL32.DLL, и недокументированную функцию NtQuerySystemInformation (экспортируемая NTDLL.DLL), представляющую собой тонкую «обертку» вокруг системного сервиса 97h, реализованного в NTOSKRNL.EXE. На самом деле, главная функция TOOLHELP32 — CreateToolhelp32Snapshot — полностью опирается на NtQuerySystemInformation, так что фактически механизм у нас один, только интерфейсы разные.

Малварь может легко перехватить процедуры Process32First/Process32Next из TOOLHELP32, только это ничего не даст, поскольку практически все утилиты («Диспетчер Задач», FAR и даже примитивный tlist.exe из SDK) работают исключительно через NtQuerySystemInformation (что легко подтверждается установкой точки останова в soft ice). Однако перехватить NtQuerySystemInformation с прикладного уровня ничуть не сложнее, чем процедуры из набора TOOLHELP32. Существует несколько способов, сделать это:

Назад на стр. 070-060-1  Содержание  Вперед на стр. 070-060-3