Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #77, МАЙ 2005 г.

EXE в заложниках

Крис Касперски ака мыщъх

Хакер, номер #077, стр. 077-116-5


Как определить, какие потоки содержатся внутри файла? Штатными средствами – никак! Функции работы с потоками недокументированны и доступы только через Native API. Это: NtCreateFile, NtQueryEaFile и NtSetEaFile.

Создание нового потока осуществляется вызовом функции NtCreateFile, среди прочих аргументов принимающей указатель на структуру FILE_FULL_EA_INFORMATION, передаваемый через EaBuffer. Как вариант, можно воспользоваться функцией NtSetEaFile, передав ей дескриптор, возращенный NtCreateFile, открывающей файл обычным образом. Перечислением (и чтением) всех имеющихся потоков занимается функция NtQueryEaFile. Прототипы всех функций и определения структур содержатся в файле NTDDK.H, в котором присутствует достаточное количество комментариев, чтобы со всем этим хозяйством можно было разобраться.

Подробнее о Native API и конкретно этих функциях ты можешь прочесть в «The Undocumented Functions Microsoft Windows NT/2000» Tomasz'а Nowak'а. Электронная копия этой книги может быть бесплатно скачена с сервера NTinterlnals.net. Также очень советую почитать статью "Win2k.Stream" из пятого номера вирусного журнала #29A.

WWW

Если тебе хочется больше информации по разработке вирусов, смело шагай на http://vx.netlux.org. Это гигантская коллекция вирусов и учебников по их написанию.

CD

На диске, прилагающемуся к журналу ты сможешь найти полный исходный код программы, рассмотренной в статье, а также компилятор FASM последней на момент написания статьи версии.

WARNING

Следует отдавать себе отчет в том, что эта статья была написана исключительно в исследовательских целях и любые твои действия, нарушающие законы страны, в которой ты проживаешь, могут привести к уголовной ответственности.

Назад на стр. 077-116-4  Содержание