5

Я наконец сдался и решил обновить XP до SP3. Одна из вещей, которая беспокоит меня о SP2+ и которая заставила меня так долго откладывать его, заключается в том, что он требует полностью определенных путей для типов файлов и глаголов Explorer.

Например, в SP1 вы можете сделать что-то вроде следующего:

REGEDIT4

[HKCR\txtfile\shell]
"@"="Notepad2"

[HKCR\txtfile\shell\Notepad2]
"@"="notepad2.exe %1"

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

В SP2+ это не будет работать и вместо этого откроется диалоговое окно « Открыть с помощью… ». Чтобы исправить это, вы должны использовать полный путь к исполняемому файлу:

[HKCR\txtfile\shell\Notepad2]
"@"="e:\tools\editors\text\notepad2\notepad2.exe %1"

Это изменение (которое делает переменную PATH существу бессмысленным) было улучшением безопасности, добавленным к Великому обновлению безопасности SP2, и имеет смысл в том, что оно предотвращает атаки путем внедрения пути.

Однако это больше проблем, чем стоит, потому что если вирус может изменить переменную системного пути, он уже получил доступ к системе и может делать все, что захочет. Более того, это влияет только на Explorer; запуск вещей из командной строки по-прежнему работает, как и раньше. Кроме того, он работает только для основной команды; то есть следующее работает, если путь к файлу infectednotepad.exe notepad.exe:

"@"="e:\tools\misc\shellexecute.exe /c infectednotepad.exe %1"

Это изменение не дает никакой дополнительной безопасности; вместо этого все, что он делает, - это заставляет пользователя тратить часы на сканирование реестра в каждом из 6-10 различных мест, где могут быть зарегистрированы типы файлов, приложения и глаголы Explorer, в поиске безусловных путей и замене каждого и каждый (замена только основной записи в HKCR недостаточна, потому что в других местах есть уровни, которые усугубляют проблему).

Кроме того, Microsoft, очевидно, понимает, что его «особенность» была бессмысленной, потому что они удалили ее в Vista. В Windows 7 первый пример работает так же, как в SP1.

«Исправление» элементов может быть непреодолимой задачей для системы, которая уже была настроена и использовалась в течение любого промежутка времени, особенно если были добавлены сторонние программы.

Есть ли способ отключить эту «функцию» и позволить переменной PATH снова выполнить свою работу?

1 ответ1

0
  1. Загрузитесь в безопасном режиме.

  2. Экспортируйте весь реестр.

  3. Выключить компьютер.

  4. В другом окне напишите регулярное выражение или простой скрипт для поиска токенов и вставьте FQP.

  5. Снова загрузитесь в безопасном режиме, импортируйте измененный куст реестра.

  6. Скрестите пальцы и перезагрузитесь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .