Раздел: Документация
0 ... 73 74 75 76 77 78 79 ... 169 srv-fix y2k-fix euro-fix atapi-fix netbt-fix print-fix lsa2-fix sfm-fix pptp2-fix rras20-fix ssl-fix priv-fix Число исправлений уже пошло на четвертый десяток, их установка уже давно представляет собой весьма занудный и мучительный процесс. Так что мировая общественность с нетерпением ждет выхода 4-го Service Packa, выход которого назначен на лето 1998 года (прошедшая в апреле информация о преждевременном выходе оказалась неверна — речь шла всего лишь о бета-версии). SP3 и некоторые ЬоиЯхыдля русской версии NT можно найти на ftp://ftp.microsoftxom/bussys/winnt/winnt-public/fixe Стелсы... не только самолеты Меня всегда интересовал вопрос о программах-невидимках. Представьте, есть резидентный код, который выполняет некие действия на вашем компьютере, а обнаружить его вы не можете. Возмутительно, не правда ли? А потому иметь такую программу мне очень хотелось. В Интернете эта тема также широко обсуждалась, обсуждается и, думаю, будет обсуждаться. Среди огромного количества мнений, суждений и прочего словесного мусора, мне попался вердикт одного гуру, гласивший: «Вы не можете скрыть процесс от функции NtQuerySystemInformation>. Это было похоже на окончательный приговор. Хрустальная мечта моего детства была готова разбиться раз и навсегда. Но... Очень надеюсь, что о программах-невидимках мечтал не только я. Вам, мои духовные собратья, и посвящается эта статейка. Серьезным дядям (в народе их кличут системными администраторами), работа которых заключается в удушении свободы простого наро- 230 да, виноват, простых юзеров, читать это не следует. Все дальнейшие рассуждения приводятся для процессораОС Windows NT 4.0 (SP4 или SP6). Сначала поговорим о том, как и для чего, собственно, используются программы-невидимки. Предположим, что вы зашли в Интернет и закачали замечательную программку, картинку, документ или что-то еще. А потом оказалось, что злобные хакеры заложили в эту программку вирус или троянского коня. Как опытный и продвинутый юзер, вы сразу запускаете Task Manager и видите там ЕГО. После чего ОН убивается кнопочкой End Process, и вы спокойно можете наслаждаться праведно выкачанным добром. Некоторые особо злобные и зубастые хакеры пытаются запустить драйвер, но, к счастью для нас, для этого необходимы права администратора. Это обычное развитие событий. А теперь предположим, что в Task Manager вы ЕГО не видите. Что делать? Обычныемогут подумать, что на этот раз его пронесло, и в файле трояна не оказалось. Но это не наши юзеры. Нормальный параноидальный юзер сразу почувствует подвох и будет прав. Сразу хочу отметить, речь не идет о классическом вирусе. Безусловно, вирусы — прекраснейшее изобретение человечества, но у них есть один серьезнейший недостаток. А именно: работает он всего ОДИН раз при запуске инфицированной программы. Выполнив свой кусочек кода, он вынужден отдать управление программе-носителю. Если же он хочет стать резидентом, то ему опять же надо где-то «жить», то есть создавать Так возможно ли это: быть резидентом (это звучит гордо!) и не «светиться» в Task Manager? Отвечаю: ЭТО ВОЗМОЖНО! Позвоните прямо сейчас, и всего за 49.99$ ваша мечта станет ре... Гм, простите, никак не выведу эту рекламную бациллу (язык не поворачивается назвать ее благородным словом «вирус»). Более того, что нам этот микрософтовский Task Manager или Spy++?! Любой мало-мальски серьезный программер напишет свой Task Manager. Поэтому будем прятаться от всего их порочного семейства до седьмого колена включительно. Сердцем любого Task Manager является функция NtQuerySystemlnformation. Остальное - это оболочки, рамочки и прочая мишура. Хотя эта функция и недокументирована компанией Microsoft, но в Интернете про нее написано предостаточно. Поэтому здесь в подробности вникать не будем, а скажем, что всю информацию, которую вы видите на экране, предоставляет эта, и только эта, функ- 231 .8 ваегЛ Павел Ломакин, Даниэль Шрейн ция. И увы, гуру был прав! Вы действительно не можете спрятать процесс от(по крайней мере, я не знаю, как это можно сделать). Но кто сказал, что резидентами становятся только процессы? Ведь кто такой резидент? Это всего навсего кусочек памяти, который периодически получает управление. Поэтому помимо процесса резидентом может быть драйвер, поток (thread), волокно (fiber), APC и DPC процедуры, функции обработки исключений и прерываний. Возможно, и еще куча всего такого, о чем я не знаю. (Кстати, если говорить совсем строго, то исполняется не процесс, а его потоки, поэтому процесс резидентом не является). Итак, на сегодняшний день, я знаю следующие способы прятать резидентный код. Загружать драйвер — это настолько примитивно, что обсуждать этот способ не будем. Кроме всего прочего, NtQuerySystemlnformation представляет информацию и о драйверах; хотя Manager этого не делает. Ну и потом, ведь есть Softlce! 1 Создавать поток в заданном процессе Этот способ подробно описан у Джеффри Рихтера в книге «Windows для профессионалов». Также есть информация у Мэтта Питрека и в Интернете. Этот способ намного более интересен и оригинален. Но на сегодняшний день это уже классика и удивить этим невозможно. Резидентный код обнаружить в этом случае довольно тяжело. В Task Manager у одного из процессов появляется дополнительный поток, но кто из нас на память скажет, сколько должно быть потоков у Explorer.exe? Помимо Task Manager можно посмотреть список загруженных библиотек, но опять же, кто из нас на память скажет, какие библиотеки должны быть загружены в Explorer.exe. Наконец, есть возможность посмотреть время создания потоков. А вот тут разница будет. Одним словом, будьте внимательны к потокам в резидентных процессах. Всевозможные Rootkit Это загрузка драйвера, который перехватывает обращения к NtQuerySystemlnformation и подставляет свои данные. К сожалению, подробности изложить не могу, так как сам плохо представляю себе этот предмет. Недостаток все тот же - необходимы права администратора! Если же у вас на машине все-таки запустили драйвер, то дела ваши плохи. 232 0 ... 73 74 75 76 77 78 79 ... 169
|