Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Файловые потоки


Loader

Рекомендуемые сообщения

Удалил каспера, забыл удалить файловые потоки. Теперь собираюсь их удалить но не знаю как это сделать

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

Нет ли утилиты для работы с потоками?

Ссылка на комментарий
Поделиться на другие сайты

Здорова

Loader:

Удалил каспера, забыл удалить файловые потоки. Теперь собираюсь их удалить но не знаю как это сделать

Первое что приходит на ум это поставить опять КАВ и правильно все посносить а затем опять его грохнуть.

Иначе нада лесть в ГУГЛУ

http://forum.kaspersky.com/index.php?showtopic=5921

http://www.google.com.ua/search?hl=ru&...AV+&spell=1 :doh:

Ссылка на комментарий
Поделиться на другие сайты

Loader:

Есть утилиты для работы с потоками. Например, ADS Spy для сканирования файловой системы, показа найденных потоков и их удаления.

Ссылка на комментарий
Поделиться на другие сайты

Утиль, так сказать, от создателя :)

ftp://ftp.kaspersky.ru/utils/klstreamremo...reamremover.zip

Скопируй в корень диска, с которого удаляются потоки, загрузись

в безопасном режиме и выполни в командной строке: klstreamremover -r

Изменено пользователем ser208
Ссылка на комментарий
Поделиться на другие сайты

спасибо всем, хотелось бы узнать можно ли самому создавать такие потоки? В принципе удобно прятать информацию, что особенно актуально на переносных носителях ( у меня усб винчестер)

Изменено пользователем Loader
Ссылка на комментарий
Поделиться на другие сайты

Loader: Изучаем "MSDN API WIN32/64" Или скачиваем тут MSDN около 1.8 - 2Гб

Ссылка на комментарий
Поделиться на другие сайты

Loader:

Поскольку в Windows есть ограничения на работу с потоками через оконный интерфейс, с ними надо работать через командные строки и пакетные файлы. Что не исключает и вызовов кое-каких обычных программ, понимающих потоки. Например, соорудим файл test.bat с содержанием

notepad test.txt:hide.txt
Теперь можно запустить этот файл, он вызовет текстовый редактор и с его помощью создаст файл test.txt с дополнительным потоком с именем hide.txt. После ввода в редакторе желаемого текста он будет записан в поток hide.txt файла test.txt. После сохранения файла (просто "Сохранить", имя мы ему дать иначе, как в командной строке, не можем) и закрытия редактора можно попробовать открыть файл test.txt - он будет пустым (фактически это основной, безымянный, поток файла test.txt) и с ним можно работать, как обычно. Но если мы снова запустим наш пакетный файл, он откроет в редакторе созданный нами дополнительный поток hide.txt этого файла, и мы увидим и сможем редактировать то, что было записано в нем. Можно создать у одного файла и несколько дополнительных потоков. А вообще с потоками надо работать средствами командной строки. Имя дополнительного потока отделяется от имени файла двоеточием.

Кстати, имя файла test.txt было выбрано только чтобы просто показать, что в его основной поток можно записывать и читать независимо от основного потока. Можно было назвать файл test:hide.txt, тогда основной поток будет не привязанным ни к чему файлом. А можно и использовать вместо него уже имеющийся файл какой-нибудь игрушки или программы, только если она не в той папке, в которой наш пакетный файл, надо указать в нем путь к этой программе, чтобы текстовый редактор смог найти ее файл. И тогда новый файл создаваться не будет, а просто у этого exe файла создастся новый поток, который в нашем примере будет открываться текстовым редактором. То есть файл game.exe (например) останется файлом game.exe с игрушкой, и в нее можно будет играть, и никто не будет знать, что если этот файл послать в текстовый редактор как game.exe:hide.txt, то откроется дополнительный поток этого файла, содержащий обычный текст.

P.S.

у меня усб винчестер
Часто USB винчестеры допускают разметку только в FAT, а там файловых потоков не создать, и при копировании они потеряются. Так что надо сначала проверить, можно ли на твоем винчестере использовать NTFS. Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Продолжу, да простит меня Тролль

Процессом (process) называется экземпляр вашей программы, загруженной в память. Этот экземпляр может создавать потоки (thread), которые представляют собой последовательность инструкций на выполнение. Выполняются не процессы, а именно потоки. Причём любой процесс как минимум один поток. Каждый поток квантуется по времени или же по событиям те по прерываниям. Всё это сделанно что бы обеспечить многозадачность. Квантование по времени происходит по вычислению скорости логического источника и приёмника ( в случаи асинхронной передачи) и скорости обмена между ними. Как пример это участок ОЗУ и участок HDD. По событиям немного сложнее, прерывание принимается, ему выстанавливается приоритет, оно ставится в очередь идентичных прерываний, а далее оно квантуется.

пример работы с объектом-взаимоисключением. Взято из mfc sdk (источник MSDN)

#include <windows.h>

#include <iostream.h>

void main()

{

dword res;

// создаем объект-взаимоисключение

handle mutex = createmutex(null, false, "appname-mtx01");

// если он уже существует, createmutex

// вернет дескриптор существующего объекта,

// а getlasterror вернет error_already_exists

// в течение 20 секунд пытаемся захватить объект

cout<<"trying to get mutex...n"; cout.flush();

res = waitforsingleobject(mutex,20000);

if (res == wait_object_0) // если захват удался

{

// ждем 10 секунд

cout<<"got it! waiting for 10 secs...n"; cout.flush();

sleep(10000);

// освобождаем объект

cout<<"now releasing the object.n"; cout.flush();

releasemutex(mutex);

}

// закрываем дескриптор

closehandle(mutex);

}

Изменено пользователем Indomito
Ссылка на комментарий
Поделиться на другие сайты

Indomito:

Вообще-то имелись в виду не потоки команд, а файловые потоки. Файл NTFS - это группа файлов в понимании FAT, и отдельные файлы этой группы теперь именуются потоками файла NTFS.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Тролль: но любой потокзависит от прерывания или я не прав?

Ссылка на комментарий
Поделиться на другие сайты

Indomito:

Поток - слово многозначное. Есть потоковый ввод-вывод. Есть потоки процессов (потоки команд). Есть потоки файловой системы. Ничем иным, кроме как словом "поток", они не объединены. Есть и еще масса потоков - информационный поток, поток магнитного поля, определенное психическое состояние (например, в игре), в конце концов герои какого-то литературного произведения могут даже пересечь поток вброд :book: - все это разные потоки.

Прерывания - это для тех потоков, на которые делятся процессы. А потоки NTFS - из другой оперы.

Файл в NTFS - не последовательная цепочка данных, которой является файл FAT, а более сложная структура данных. Вообще-то это даже не какая-то определенная структура данных, а просто абстракция уровня хранения информации, вроде папки в Windows. Деталями ее реализации занимается NTFS и может это делать по-разному. Содержимое файла может быть отдельно хранящейся разветвленной структурой данных, может целиком помещаться в таблице NTFS, все это внутренние дела NTFS. Важно, что файл NTFS - это группа из нескольких частей, называемых потоками и соответствующих обычным файлам или полям в каталогах FAT. Кроме стандартных, к файлу можно добавить свои собственные потоки (ADS - Alternate Data Streams), которые могут использоваться для хранения информации как обычные отдельные файлы FAT - через имя файла NTFS с уточнением через двоеточие, какой именно из потоков файла имеется в виду. Если уточнения нет, то имеется в виду основной поток.

Возникли дополнительные потоки как наследство предшественницы NTFS из файловой системы Макинтошей и долгое время не использовались, но свято место (как и четвертый байт в 32-битном формате цвета, сначала пустовавший, а затем принявший в себя альфа-канал), не бывает пусто - со временем туда полезли вирусы, за ними антивирусы и так далее, место постепенно обживается... :blink:

Посмотри в статье Файловая система NTFS раздел Файлы и потоки, хотя там ИМХО есть некоторые погрешности, но источника лучше не помню.

Ссылка на комментарий
Поделиться на другие сайты

Спасибо Тролль многое прояснилось. Винт давно в NTFS, теперь осталось понять как из файла сделать поток, а из потока файл. Сделать два батничка и в принципе от большинства юзеров информация (а это не только текстовые файлы) защищена

Ссылка на комментарий
Поделиться на другие сайты

Тролль: а как же разквантование потоков, ведь ФС надо ставить потоки в очередь, а другого метода обеспечения многозадачности я не вижу. А прерывание таймерное, которое делит ресурсы. В чем я не прав?

Ссылка на комментарий
Поделиться на другие сайты

Indomito:

Слово "потоки" в файловой системе NTFS не имеет никакой связи с потоками в операционной системе, многозадачностью, приоритетами, прерываниями и так далее.

Потоками в NTFS называются существующие в ней, по умолчанию скрытые от пользователя, части файла. И квантование у них соответственно, как у любого файла, не по времени, а по дисковому пространству: байты, секторы диска, кластеры...

ФС не ставит файловые потоки в очередь, она, как и ее части - файлы и файловые потоки - статичное понятие. Поскольку файловые потоки, как и сама ФС - структуры данных. А потоки ОС - совершенно другое, это потоки (очереди) направляющихся в процессор команд, они квантуются по времени выполнения с использованием таймерных прерываний.

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...