информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsSpanning Tree Protocol: недокументированное применениеГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Microsoft обещает радикально усилить... 
 Ядро Linux избавляется от российских... 
 20 лет Ubuntu 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / operating systems
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Хм а ты уверен что файл удалился? 07.07.03 14:38  Число просмотров: 1648
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
Вернее что удалился не только файл но и его поток? И кстати попробуй запустить chkdsk после того - не выругается ли?
<operating systems>
[NT] Процессы-призраки из NTFS streams ;-( Баг напрочь или фича для вирусописателей! 07.07.03 09:44  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 07.07.03 09:51  Количество правок: 3
<"чистая" ссылка>
Итак, имеем процесс, запущенный из файлового потока NTFS. К примеру, C:\Temp\SomeFile:SomeStream.exe. Удаляем SomeFile по F8 в FAR'е или Shift+Del в проводнике... Файл удаляется и имеем рабочий процесс-призрак! В списке процессов он виден, но файла образа у него нет ;-)

Тестировал под WinXP, но я думаю, что этому подвержены все версии NT.

Вот пошаговая инструкция, как потестить это дело:
1) скопируйте FARом notepad.exe в папку C:\TEMP.
2) Отключите параметр "Использовать системную функцию копирования"
3) Наведите указатель на regedit.exe и нажмите F5.
4) В диалоговом окне копирования вбейте путь C:\TEMP\notepad.exe:regedit.exe
и нажмите Ввод.
5) В командной строке FARa в каталоге C:\TEMP наберите notepad.exe:regedit.exe и
нажмите Ввод.
6) Должен запустится Regedit. Сверните его. Наведите указатель FARа на notepad.exe (в котором поток regedit)... Нажмите F8, Enter и получите экстаз ;-)) У вас regedit стал "призраком"...
[NT] Ха — ещё один глюк в XP ;-) 16.07.03 20:54  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
Кто тестировал глюки (в корневом посте) под XP, зайдите в каталог %SystemRoot%\Prefetch, будете удивлены.

Т.е. скорее всего будет неправильно работать механизм быстрой загрузки таких файлов.
еще один баг обнаруженный командой UINC 07.07.03 13:28  
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
<"чистая" ссылка>
если файл записать в поток к корневому каталогу (type notepad.exe >c:\:notepad.exe)
а потом его запустить
start c:\:notepad.exe
то в списке процессов получаем еще один System idle process... неплохая маскировка ;-))
NT40 SP6 - не пашет 07.07.03 14:56  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
> если файл записать в поток к корневому каталогу (type
> notepad.exe >c:\:notepad.exe)
> а потом его запустить
> start c:\:notepad.exe
вот тут появляется Messagebox о том что "e:\:note2.exe is not a valid Windows NT application"
> то в списке процессов получаем еще один System idle
> process... неплохая маскировка ;-))
Нихера себе маскировка - если я увижу у себя второй SystemIdleProcess я пожалуй обращу на это вниммание :-)
NT40 Тебя немножко дезинформировали... 07.07.03 15:03  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
> > если файл записать в поток к корневому каталогу (type
> > notepad.exe >c:\:notepad.exe)
Команда type безобразно покорёжит exe. Она же текстовая...
Попробуй FARом...

> вот тут появляется Messagebox о том что "e:\:note2.exe is
> not a valid Windows NT application"
Ну ты понял, почему not valid...

> > то в списке процессов получаем еще один System idle
> > process... неплохая маскировка ;-))
> Нихера себе маскировка - если я увижу у себя второй
> SystemIdleProcess я пожалуй обращу на это вниммание :-)
Гы. Я бы тоже ;-)
все работает 07.07.03 15:13  
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
<"чистая" ссылка>
> > > если файл записать в поток к корневому каталогу
> (type
> > > notepad.exe >c:\:notepad.exe)
> Команда type безобразно покорёжит exe. Она же текстовая...
> Попробуй FARом...
все работает без проблем
иначе не предлагал бы
система - w2k SP3

> > Нихера себе маскировка - если я увижу у себя второй
> > SystemIdleProcess я пожалуй обращу на это вниммание
> :-)
> Гы. Я бы тоже ;-)
к тем кто знает все процессы наизусть - это ясное дело не относится
однако таких не очень много
Sorry. Наверное, это косяк Диспетчера Задач Win2k, в XP его переделали и всё рулез. 07.07.03 15:16  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
NT40 Если бы :-( 07.07.03 15:04  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
> > > если файл записать в поток к корневому каталогу
> (type
> > > notepad.exe >c:\:notepad.exe)
> Команда type безобразно покорёжит exe. Она же текстовая...
это я уже заметил :-)
> Попробуй FARом...
так я и пробовал, просто не стал уточнять - сорри
> > вот тут появляется Messagebox о том что "e:\:note2.exe
> is
> > not a valid Windows NT application"
> Ну ты понял, почему not valid...
Вопрос открыт
NT40 Попробую ответить всем... 07.07.03 17:50  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
> > Попробуй FARом...
> так я и пробовал, просто не стал уточнять - сорри
> > > вот тут появляется Messagebox о том что
> "e:\:note2.exe
> > is
> > > not a valid Windows NT application"
> > Ну ты понял, почему not valid...
> Вопрос открыт
Закрываю вопрос.

Под NT4 Wks SP6 такие дела:
Start notepad.exe.exe:regedit.exe не работает по причине глюкавости команды Start ;-)
CreateProcess() работает, процессы создаются, "призраки" остаются ;-)
Диспетчер задач показывает вместо реального имени (или хотя бы regedit.exe) notepad.exe ;-) Вот где маскировка — пиши поток в internat.exe или в explorer.exe — не всякий догадается, ху из ху ;-)
В случае же с файлом 'C:\:notepad.exe' не работает ни CreateProcess, ни CreateProcessW с префиксом «\\?\» — ошибка 193.
Причём это не работает не только для потока из корневого каталога, но и для потока «C:\Temp:notepad.exe» тоже, т.е. для любого каталога.

Под Win2k ситуация похожая, исключая только то, что могут создаваться процессы из потоков, которые в каталогах. Причём Диспетчер Задач показывает вместо реального образа имя каталога (у меня для процесса из C:\Temp:notepad.exe показывал «Temp»).
Причём прикол — команда start не позволяет запускать процессы из потоков, которые в файлах, но позволяет из тех, которые в каталогах ;-)
Ну, и наконец, для случая с C:\:notepad.exe появляются два System Idle процесса, причём это так думает только Диспетчер Задач. Far'овский плагин просмотра процессов работает корректно (показывает «:notepad.exe»), правда не показывает его свойства.

Ну вот такие дела, если кого это обрадует ;-)
NT40 И ещё один вопрос :-) 07.07.03 18:29  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
> В случае же с файлом 'C:\:notepad.exe' не работает ни
> CreateProcess, ни CreateProcessW с префиксом «\\?\» —
> ошибка 193.
Это я и сам заметил. Есть какие-нибудь идеи по поводу тогопочемуименно такая ситуация? Я пока дошел только до NtCreateSection - сейчас дальше не могу копать - закачка отвалится :-) Если кто-то расскажет в чем там дело буду рад. Просто интересно.
Хм... Под XP всё нормально. Может уже исправили? 07.07.03 13:52  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
Мля. Ламерский вопрос, но все же 07.07.03 14:24  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
Как его теперь удалить. Не усечь до 0, а именно удалить стандартными средствами. В гугле советуют перенести файл на фат и обратно. Но не буду же я корень тащить на фат :-)

Цитата: "In addition, streams cannot be deleted - to delete a stream you must delete its parent."
Фигня всё это. Вызови DeleteFile("C:\:notepad.exe") 07.07.03 14:30  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
О! Почти юниксовое поведение :)))) Всем пользовать файлпотоки в повседневной жизни! :) 07.07.03 11:11  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
Мне вот другое интересно — как NT его будет пейджить? 07.07.03 12:20  
Автор: HandleX <Александр М.> Статус: The Elderman
Отредактировано 07.07.03 12:55  Количество правок: 1
<"чистая" ссылка>
Чудится мне, если exe будет большой, а процесс будет долго работать, и NT будет ещё чем-то напрягаться, то упадёт в синий экран через время, когда надо будет восстановить страницу из образа ;-)
Хм а ты уверен что файл удалился? 07.07.03 14:38  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
Вернее что удалился не только файл но и его поток? И кстати попробуй запустить chkdsk после того - не выругается ли?
[NT] По вере вашей да будет вам... 07.07.03 14:56  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
Ну, после перезагрузки после проверки диска видим вот что:
--------------------------------------
Checking file system on C:
The type of the file system is NTFS.

A disk check has been scheduled.
Windows will now check the disk.
Cleaning up 1 unused index entries from index $SII of file 0x9.
Cleaning up 1 unused index entries from index $SDH of file 0x9.
Cleaning up 1 unused security descriptors.
--------------------------------------
Кстати, постоянно такая фигня в XP. Откуда берутся — сам большой Билл, наверное, не знает ;-)
В корне диска лишнего ничего не появляется, в каталоге, где велись эксперименты, тоже всё чисто. Выходит, удаляется он ;-)
[NT] По вере вашей да будет вам... 07.07.03 15:40  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
> В корне диска лишнего ничего не появляется, в каталоге, где
> велись эксперименты, тоже всё чисто. Выходит, удаляется он
> ;-)
совсем не выходит. если открытый файл какойлибо файл переписать в другой каталог хэндл не теряется и программа прекрасно работает с этим файлом даже не зная что файл уже в другом месте. Так что если твой файл вообще пропал из списка файлов не значит что он стерт Ж). имхо надо почитать доки по нтфс.
[NT] А может и выходит ;-) 07.07.03 16:07  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
> совсем не выходит. если открытый файл какойлибо файл
> переписать в другой каталог хэндл не теряется и программа
> прекрасно работает с этим файлом даже не зная что файл уже
> в другом месте. Так что если твой файл вообще пропал из
> списка файлов не значит что он стерт Ж). имхо надо почитать
> доки по нтфс.
С хендлами не так всё просто. Они суть ссылки на объект ядра, а при вызове MoveFile() система выставляет правильный путь в полях самого объекта. И сделано это для обновления запущенного софта, имхо.
я тут эксперимент провел 07.07.03 16:20  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
взял прогу свою, довольно специфическую - написана на билдере и многие окна создаются только когда надо, а потом удаляются. прогу скорировал в поток как ты сказал запустил и сразу удалил. Удалилась нормально и полностью. У меня сп4 стоит. Далее стал открывать окошки - фиг вам - говорит Invalid strem но вообще пашет.Ок. Закрыл ее, записал опять. Запустил и на этот раз пооткрывал все что можно. Затем все закрыл и свернул (9Mb в RAM-> 1.5Mb). Удалил, развернул - и все равно пашет все нормально.
ЗЫ а баг действительно есть. Нo не фатальный Ж). Пиши в M$ если лицензия на винду есть Ж).
1  |  2 >>  »  




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach