Файлы альтернативных потоков данных исчезают в Windows 10
Я экспериментирую со странным поведением в Windows 10 с метаданными альтернативных потоков данных (ADS). Я загрузил исполняемый файл из Интернета, и, поскольку он был загружен в раздел NTFS, у него есть соответствующий файл ADS, помеченный как Зона 3.
Когда я пытаюсь запустить его, Windows предупреждает меня о происхождении файла, по крайней мере, это происходит в Windows 7, 8 и 8.1. Какое поведение ожидается?
На Windows 10 происходит что-то странное. Когда я пытаюсь запустить его, при первой попытке Windows удаляет этот файл ADS и не предупреждает меня о происхождении файла. Поскольку этот файл больше не существует, при последующих запусках предупреждение не запускается. Такое поведение присутствует во всех Windows 10, где я смог попробовать (около 5).
Это нормальное поведение? Если мне нужно предупреждение, можно ли его включить?
Обновление: с помощью Process Monitor мне удалось обнаружить, что Explorer.exe открывает файл ADS с помощью Delete Desire Access, который производит удаление файла. Таким образом, мой текущий вопрос должен быть: Почему Explorer.exe удаляет файл ADS? Можно ли этого избежать?
Обновление 2: Я обнаружил, что эта проблема не воспроизводится в Windows 10 версии 1607, где я получаю предупреждение. Это присутствует в версии 1703.
Соответствующая строка из Process Monitor
4:28:27.4451881 PM Explorer.EXE 7120 CreateFile C:\Users\admin\Downloads\putty.exe:Zone.Identifier SUCCESS Desired Access: Read Attributes, Delete, Disposition: Open, Options: Non-Directory File, Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened
4:28:27.4454276 PM Explorer.EXE 7120 QueryAttributeTagFile C:\Users\admin\Downloads\putty.exe:Zone.Identifier SUCCESS Attributes: A, ReparseTag: 0x0
4:28:27.4454961 PM Explorer.EXE 7120 SetDispositionInformationFile C:\Users\admin\Downloads\putty.exe:Zone.Identifier SUCCESS Delete: True
4:28:27.4455650 PM Explorer.EXE 7120 CloseFile C:\Users\admin\Downloads\putty.exe:Zone.Identifier SUCCESS
4:28:42.0470995 PM Explorer.EXE 7120 CreateFile C:\Users\admin\Downloads\putty.exe:Zone.Identifier NAME NOT FOUND Desired Access: Read Attributes, Disposition: Open, Options: Open Reparse Point, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a
Полный журнал здесь. Это не слишком долго.
1 ответ
Обсудив эту проблему на форумах MSDN, я обнаружил, что моей проблемой является поведение нового Защитника Windows SmartScreen.
Начиная с Windows 10 версии 1703, Защитник Windows изменил свое поведение. Теперь SmartScreen проверяет, является ли исполняемый файл надежным, и если это так, он позволяет запускаться без отображения предупреждений и удаляет свой файл ADS.
Поэтому решение состоит в том, чтобы отключить опцию "Проверять приложения и файлы" для SmartScreen в Защитнике Windows.