Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Наборы обновлений для Windows XP/2003/Windows 7 (http://forum.oszone.net/forumdisplay.php?f=62)
-   -   Есть идея: "обёртка" для IE (http://forum.oszone.net/showthread.php?t=71461)

VitRom 17-09-2006 18:11 485938

Есть идея: "обёртка" для IE
 
2 Mod-s: если "ошибся койкой" - перенесите плз в нужную ветку

Некоторое время назад до Майкрософта дошло-таки, что Винда - не Юникс, софта много, авторы его бывают вообще халтурщиками... В общем, что "под юзером", как ни настраивай, полноценно работать нельзя, и что народ, невзирая на увещевания, работает-таки "под админами". :) И тогда был сделан гениальный "ход лошадью" - выпущена тулза для понижения прав пользователя при запуске какого-либо приложения. Или понижения прав приложения, запущенного от конкретного пользователя с высокими правами. :) В общем, этакий su user ;)

Зовётся утилита DropMyRights и делает именно то, как зовётся. Я на неё впервые наткнулся на SecurityFix-е. Там же есть ссылка на скачку и "родную" страницу.

Использование предельно простое (но всё-же не для "домохозяек"):
  • Делаем ярлык для проги
  • Открываем свойства ярлыка
  • Перед путём добавляем "волшебное слово" (DropMyRights.exe)
  • И при желании параметр "опускания"
Параметры такие:
Код:

wchar_t *wszUsage =
                L"\n\n"
                APPLICATION L" " VERSION L" by " AUTHOR L"\n"
                L"Usage is:\n\n"
                L"\t" APPLICATION L" {path} [N|C|U]\n\n"
                L"Where: \n"
                L"\tpath is the full path to an executable to run.\n"
                L"\tN = run as normal user (default).\n"
                L"\tC = run as constrained user."
                L"\tU = run as an untrusted user.\n";

Есть, как вы поняли, сырцы (2 .cpp и 1 .h :)).

Идея проста:
Ставить это прямо в system32 и везде заменять все вызовы iexplore.exe на соответствующим образом исправленные. Можно и hh не обделить вниманием. :)

Таким образом получим почти "дефолтную" (без миграции на Фокс и пр.) и безопасную "стандартную" систему.

Как вариант развития - хранить где-нибудь, например, в реестре и считывать оттуда параметр "опускания".
Ещё вариант - интеграция в контекстное Экплорера в качестве "альтернативного RunAs".

К сожалению, как я понял, работает только с исполняемыми файлами, т.е. COM-компонент (то же "ядро" IE) не ограничишь... Но ведь есть сырцы... :)

VitRom 06-10-2006 18:54 494460

Поднимаю тему.

С "обычным" софтом типа IEXPLORE.EXE дело движется, но ведь остаётся самое неприятное - его ядро, вызываемое как COM, и аналогичные компоненты. Идея трансформируется в этакий "супер-пупер-патч" для Винды. Правда, с лёгким вирусным уклоном... :)

Ломание головы (я не программер, не пинайте!) родило такие мысли:

1. Нужно поменять GUID-ы "жертв" (просто патчить бинарники?)

2. Перерегистрить их после этого? Или просто сделать "поиск-замену" по всем классам в реестре?

3. Некая "обёртка" тоже в виде COM-а регистрит себя (или опять-таки просто правит реестр?) как сервер тех интерфейсов, которые обрабатывались "жертвами".

4. "Обёртка" при вызове соотв. интерфейса просто вызывает старый обработчик с установкой безопасности как в приведённых исходниках, и дальше весь обмен командами и данными "пропускает через себя" к старому серверу и обратно.

Надеюсь, не совсем бредово?

И найдётся ли кто, могущий это воплотить в коде?


Время: 07:01.

Время: 07:01.
© OSzone.net 2001-