double arrow

Глава 11. Утилиты файла.


Эта глава описывает ряд утилит Sysinternals, на которых сосредотачиваются управление файлом и манипулирование. Все утилиты, описанные в этой главе, являются консольными утилитами:

■                Строкиищут файлы встроенный ASCII или текст Unicode.

■                Потокиидентифицируют объекты файловой системы, у которых есть альтернативные потоки данных и, дополнительно, удаляет те потоки.

■                Стыки FindLinksсообщают относительно и управляют стыками каталога и жесткими ссылками, которые являются двумя типами ссылок NTFS.

■                DUсообщает о логических и дисковых размерах иерархии каталога.

■                PendMovesи MoveFileсообщают относительно и операции регистрового файла иметь место во время следующей системной начальной загрузки.

Строки

В программировании термин "строка" относится к структуре данных, состоящей из последовательности символов, обычно представляя удобочитаемый текст. Есть многочисленные утилиты, которые ищут файлы встроенные строки. Однако, многие из них, такие как findstr Microsoft Windows, ищут только текст ASCII и игнорируют текст Unicode, и другие, как находка Windows, не ищут двоичные файлы правильно. У Строк Sysinternals нет этих ограничений, который делает это полезным для поиска определенных файлов и смотрящих внутренних неизвестных файлов изображений для строк, которые могли бы показать информацию об их источнике и цели.




Синтаксис командной строки строк:

строки [-a] [-b байты] [-n длина] [-o] [-q] [-s] [-u] file_or_directory.

file_or_directory параметр обязателен и принимает подстановочные знаки (например, *.dll). Все файлы соответствия ищутся, и по умолчанию весь встроенный ASCII или строки Unicode больше чем трех символов пишутся стандартному выводу Строк в порядке, в котором они находятся в файле. Чтобы искать только ASCII или только строки Unicode, используйте-aили-uопцию, соответственно.-sопция ищет каталоги рекурсивно. Чтобы установить минимальную строковую длину кроме значения по умолчанию 3, определите это с-nопцией. С-oопцией Строки также сообщают о смещении в пределах файла, где строка начинается. Чтобы искать только начало файла, используйте-b, чтобы ограничить число байтов, которые исследуют Строки. Наконец,-q(тихая) опция опускает Строковый баннер от вывода; это особенно полезно, когда вывод Строк будет обработан другой утилитой, такой как вид.

 

Следующая команда ищет первые 850 000 байтов explorer.exe для строк Unicode по крайней мере 20 символов, опуская Строковый текст баннера. Те строки тогда сортируются в алфавитном порядке. Рисунок 11-1 показывает частичные результаты.

Строки РИСУНКА 11-1, извлекающие текст из explorer.exe.

Потоки

Потоки Sysinternals сообщают об объектах файловой системы, у которых есть альтернативные потоки данных и, дополнительно, позволяет Вам удалять их. NTFS обеспечивает возможность к файлам и каталогам, чтобы иметь альтернативные потоки данных (ТЕСЛА). По умолчанию у файла нет никаких ТЕСЕЛ, и его контент сохранен в его основном неназванном потоке. Но при использовании синтаксиса filename:streamname, Вы в состоянии читать и записать, чтобы чередовать потоки. Не все приложения разрабатываются, чтобы обработать ­альтернативные потоки, но можно легко демонстрировать их. Откройте командную строку, изменитесь на перезаписываемый каталог на объеме NTFS, и затем введите эту команду:



отзовитесь эхом привет> тест txt:a1tdata.

Вы только что создали поток, названный altdata, который связывается с файлом test.txt. Отметьте, что, когда Вы смотрите на размер test.txt с командой DIRили в Проводнике, о размере файла сообщают как нуль (принимающий, который test.txt не существовал прежде, чем Вы выполняли ту команду), и файл, кажется, пуст когда открыто в текстовом редакторе. (На Windows Vista и более новый, DIR/Rсообщает о ТЕСЛАХ и их размерах.), Чтобы видеть альтернативный потоковый контент, введите эту команду:

больше <тест txt:altdata.

 

Типи большекоманд не принимают потоковый синтаксис, но Cmd.exe и его операторы перенаправления делают.

Самое очевидное использование альтернативных потоков данных Windows с загруженными файлами. Присоединяемая Служба Выполнения Windows добавляет Зону. Поток идентификатора, который определяет зону безопасности, с которой был загружен файл так, чтобы Windows мог продолжать обрабатывать файл как от той зоны. Один способ удалить тот индикатор из файла состоит в том, чтобы открыть свое диалоговое окно Свойств в Проводнике и нажать кнопку Unblock. Однако, та кнопка и другие пользовательские интерфейсы, чтобы удалить информацию о зоне безопасности часто скрываются от пользователей Групповой Политикой.



Потоки Sysinternals исследуют файлы и каталоги, которые Вы определяете, и сообщает об именах и размерах любых альтернативных потоков, с которыми это встречается. Можно искать структуры каталогов и перечислить все файлы и каталоги с ТЕСЛАМИ. Дополнительно, можно также удалить те потоки — например, чтобы разблокировать загруженный контент. Его синтаксис командной строки

потоки [-s] [-d] file_or_directory.

file_or_directory параметр обязателен и принимает подстановочные знаки. Например, потокикоманды *.exeисследуют все объекты файловой системы, заканчивающиеся в ".exe" в текущем каталоге, и перечисляют тех, у которых есть ТЕСЛА с выводом как следующее:

 

В этом примере у файла msvbvm50.exe есть 26-байтовый ADS, вызванный "Зона. Идентификатор". Можно видеть что контент потока, выполняя больше <msvbvm50.exe:Zone. Идентификаторв командной строке.

-sопция исследует каталоги рекурсивно, и-dопция удаляет ТЕСЛА, которые это находит. Например, команда (потоки-s-d C:\Users\Abby\Downloads) ищет в и под папкой Загрузок Абби, сообщающей относительно и удаляющей любые ТЕСЛА, которые это находит. Потоки сообщают об именах альтернативных потоков, которые это удаляет.

Рисунок 11-2 показывает Потоки, идентифицирующие Зону. ADS идентификатора на загруженном SysinternalsSuite.zip, и затем удаление тот поток. Удаление Зоны. Поток идентификатора прежде, чем извлечь утилиты позволяет им работать без предупреждений безопасности и позволяет Скомпилированному HTML (.chm) файлы выводить на экран контент справки.

Рис. 11-2. Потоковая идентификация и удаление альтернативных потоков данных.

Утилиты Ссылки NTFS.

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

Жесткая ссылка позволяет разнообразным путям обращаться к тому же самому файлу на единственном объеме. Например, если Вы создаете жесткую ссылку по имени C:\Docs\Spec.docx, который отсылает к существующему файлу C:\Users\Abby\Documents\Specifications.docx, два пути соединяются с тем же самым дисковым контентом, и можно произвести изменения в любом пути. NTFS реализует жесткие ссылки, сохраняя подсчет ссылок на данных файла на диске. Каждый раз, когда жесткая ссылка создается, NTFS добавляет ссылку имени файла на данные. Поскольку данные файла не удаляются, пока подсчет ссылок не нуль, можно удалить исходный файл (C:\Users\Abby\Documents\Specifications.docx в нашем примере) и продолжать использовать другие жесткие ссылки (C:\Docs\Spec.docx). Данные файла, совместно использованные жесткими ссылками, включают не только контент файла и альтернативные потоковые данные, но также и дескриптор безопасности файла, отметки времени, и атрибуты такой как, только для чтения ли файл, система, скрытая, зашифрованная, или сжатый.

В отличие от этого, символьные ссылки - строки, которые интерпретируются динамически и могут быть относительными или абсолютными путями, которые обращаются к расположениям файла или каталога на любом устройстве хранения, включая на различном локальном объеме или даже доле на различной системе. Это означает, что ­символьная ссылка не увеличивает подсчет ссылок исходного объекта файловой системы. Удаление исходного объекта удаляет данные и листы символьная ссылка, указывающая на несуществующий объект. У файла и каталога символьные ссылки есть их собственные полномочия и другие атрибуты, независимые от системного объекта конечного файла.

Стыки очень подобны каталогу символьные ссылки, за исключением того, что они могут только указать на локальные объемы. Стыки широко используются Windows Vista и более новые для ­совместимости приложения. Например, на английской установке US по умолчанию Windows 7, имя "C:\Documents и Настройки" является стыком к C:\Users. Это позволяет много программ, которые трудно кодировали пути к файлам наследства, чтобы продолжать работать. Полномочия на этих стыках совместимости приложения не позволяют перечислять контента стыка, так, чтобы резервные программы, которые не осведомлены о стыке, не поддержали те же самые файлы многократно. Эти стыки также отмечаются Скрытые и Система, таким образом, они обычно не появляются в списках каталога.

Можно создать жесткие ссылки, символьные ссылки, и стыки в Windows Vista и более новый с mklink командой, созданной в Cmd.exe. Неадминистраторы могут создать жесткие ссылки и стыки, используя mklink. Создание файла или каталога символьные ссылки требует Создавания Символьного полномочия Ссылок, предоставленного по умолчанию только администраторам. Отметьте, что mklink не доступен в Windows XP или Windows Server 2003. Жесткие ссылки могут также быть созданы, используя fsutil hardlink команда, и fsutil reparsepoint может вывести на экран подробную информацию об или удалить существующие стыки и символьные ссылки. Однако, fsutil всегда требует административных прав.

Sysinternals предлагает две утилиты, которые заполняют некоторые из разрывов в управлении ссылкой, оставленном Windows: Стык и Находит Ссылки.

Стык

Стык позволяет Вам создавать, удалять, поиск, и выводить на экран информацию о стыках. Пока Вы имеете необходимые права в каталоге, где стык создается или удаляется, Стык не требует административных прав, и это работает над всеми поддерживаемыми версиями Windows.

Синтаксис для того, чтобы создать стык:

стык JunctionName JunctionTarget,

где JunctionName - путь нового стыка, и JunctionTarget - существующий каталог, на который указывает новый стык.

Синтаксис для того, чтобы удалить стык:

стык-d JunctionName.

Отметьте, что можно также удалить стык с командой резерфорда, созданной в Cmd.exe. Удаление стыка с резерфордомне удаляет файлы или подкаталоги в целевом каталоге, пока Вы не используете/Sопцию.

Чтобы определить, является ли каталог стыком и, если так, чтобы вывести на экран его цель, используют этот синтаксис: стык [-s] [-q] JunctionName,

где JunctionName - спецификация пути, которая может включать подстановочные символы. Стык не сообщает "Ни о каких точках повторного анализа, найденных", если имя не определяет стык. Используйте-s, чтобы рекурсивно вызвать в подкаталоги, соответствующие спецификацию. Используйте-q, чтобы определить, чтобы не сообщить об ошибках. Для
пример, эта команда перечисляет все стыки, найденные на диске C:

стык-s-q C:\.

Эта команда перечисляет стыки в папке профиля пользователя:
стык %USERPROFILE %\*.

Эта команда перечисляет все стыки, начинающиеся "с Моего", которые находятся где угодно в пользователе
профиль:

стык-s-q %USERPROFILE %\My*.

Рис. 11-3. Стык.




FindLinks

FindLinks перечисляет другие жесткие ссылки, указывающие на данные файла. Просто выполненное fmdlinks имя файла; если на файл, который Вы определяете, сошлются от других жестких ссылок, то FindLinks перечислит их. Например, у Windows 7 x64 есть одна копия 64-разрядной версии Notepad.exe, трудно соединенный от многократных расположений. Рисунок 11-4 показывает вывод от fmdlinks System32\Notepad.exe, и затем от fmdlinks SysWOW64\notepad.exe.

Рис. 11-4.indLinks.

Поскольку можно видеть, четыре экземпляра Notepad.exe в каталогах System32 и Windows
и в двух winsxs каталогах фактически только один файл. Кроме того, есть 32-разрядная версия
в папке SysWOW64, соединенной с копией в winsxs папке. FindLinks также показывает файл
индекс, 64-разрядный идентификатор, который NTFS присваивает каждому уникальному файлу и каталогу на объеме.

Начиная с Windows 7, можно счесть другие жесткие ссылки связанными с файлом, используя
fsutil hardlinkкоманда имени файла списка, но снова, fsutilвсегда требует административный
права.












Сейчас читают про: