Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/35: Рейтинг темы: голосов - 35, средняя оценка - 4.63
 Аватар для magistr011
6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164

Запуск regedit через psexec

08.06.2014, 17:24. Показов 6871. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как сделать такое
Кликните здесь для просмотра всего текста
Хочу удалить кустик реестра к которому нет доступа (HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro lSet\Enum\USBSTOR\удалить всё )...
На одном из форумов мне помогло...
Кликните здесь для просмотра всего текста
качаешь это:
http://technet.microsoft.com/e... s/bb897553

делаешь так:
psexec.exe -i -s regedit.exe

Удаляешь все в что хошь
в нашем родном Builder C++?
Хочу сделать приложение.exe, чтобы открывался редактор реестра с такими ключами, но ничего не получается((

psexec.exe -i -s regedit.exe

не работает
C++
1
2
3
4
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        //system("psexec.exe -i -s regedit.exe");
}
не работает
C++
1
2
3
4
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        ShellExecute(Handle, "open", "psexec.exe -i -s regedit.exe", NULL, NULL, SW_RESTORE);
}
работает
скаченный файл помещаем в system32, помещаем строчку: psexec.exe -i -s regedit.exe в
1) Пуск->Найти программы и файлы->Enter (открывается редактор реестра).
2) Запускаем cmd.exe вставляем туда psexec.exe -i -s regedit.exe жмём Enter - запускается редактор реестра.
3) Можно через батник... start PsExec.exe -i -s regedit.exe - тоже работает редактор реестра.

Помогите сделать тоже самое через .exe в Builder C++
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.06.2014, 17:24
Ответы с готовыми решениями:

PsExec, regedit и автоматизация
Привет всем. Помогите, пожалуйста, написать скрипт, который будет автоматически подключаться через psexec к regedit'у и производить...

Запуск psexec с параметрами
В общем есть задача написать вин приложение вместо батника вот сам бат файл он копирует и устанавливает файлы по сети от заданного имени и...

При попытке запустить редактор реестра: "psexec -s -i regedit", выдает ошибку: "error deriving session key"
Вообщем, кто может помогите пожалуйста, как всегда пытаюсь зайти в редактор реестра: "psexec -s -i regedit", выдает ошибку:...

7
Модератор
 Аватар для D1973
9908 / 6445 / 2455
Регистрация: 21.01.2014
Сообщений: 27,354
Записей в блоге: 3
08.06.2014, 19:43
Так попробуй
C++
1
ShellExecute(0, "open", "psexec.exe", "-i -s regedit.exe", NULL, SW_SHOW);
0
 Аватар для magistr011
6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164
08.06.2014, 20:16  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
ShellExecute(0, "open", "psexec.exe", "-i -s regedit.exe", NULL, SW_SHOW);
так тоже не работает
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
08.06.2014, 21:53
Цитата Сообщение от magistr011 Посмотреть сообщение
Хочу удалить кустик реестра к которому нет доступа (HKEY_LOCAL_MACHINE\SYSTEM\CurrentContro lSet\Enum\USBSTOR\уд алить всё )...
Кроме psexec, есть и другой, более традиционный способ - сделать себя
владельцем нужного ключа (используя привилегию SE_TAKE_OWNERSHIP_NAME и
права доступа WRITE_OWNER), затем дать себе права на удаление (WRITE_DAC),
после чего удалить ключ.

Добавлено через 1 минуту
Цитата Сообщение от magistr011 Посмотреть сообщение
так тоже не работает
Потому что psexec от имени админа надо запускать.
Иначе как он получит права системы ?
1
 Аватар для magistr011
6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164
09.06.2014, 19:28  [ТС]
Убежденный, ясно что опыта у тебя куча, только такие коменты наврряд ли помогут кому-нибудь... Или тут априори вопросы задают супер-программисты ? Ты бы лучше кусочек кода выложил в builder C++ а так лучше никому не стало... Что написал ты, что нет...

Это ненадо
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.06.2014, 21:31
magistr011, только не отвечай так каждому, кто не приведет готового кода. Помощники очень быстро кончатся. Тебе указали возможное решение, изучать его или нет - твое личное дело.

А по теме - просто добавь манифест для повышения прав при запуске программы. Или повышай права во время выполнения, что несколько сложнее.
0
Ушел с форума
Эксперт С++
 Аватар для Убежденный
16481 / 7444 / 1187
Регистрация: 02.05.2013
Сообщений: 11,616
Записей в блоге: 1
09.06.2014, 22:12
Лучший ответ Сообщение было отмечено magistr011 как решение

Решение

Цитата Сообщение от magistr011 Посмотреть сообщение
Ты бы лучше кусочек кода выложил в builder C++ а так лучше никому не стало...
И не станет.
А кода не будет, потому что его начнут бездумно копипастить, не вникая.

Псевдокод.

1) Получить привилегию SE_TAKE_OWNERSHIP_NAME.
Она позволяет открывать объект с правами на смену владельца (WRITE_OWNER),
даже если в разрешениях объекта это явно запрещено.

2) Сделать себя владельцем объекта.
Это очень просто. Например, создать SID группы "Администраторы" (в помощь
CreateWellKnownSid) и вызвать Set(Named)SecurityInfo на объекте, используя
этот SID для задания owner-а и флаг OWNER_SECURITY_INFORMATION.

3) Изменить разрешения объекта.
Владелец объекта может открывать его с правами на смену разрешений
(WRITE_DAC). Даже если в разрешениях объекта прописан полный запрет
всего и вся. В Win32 есть много функций работы с разрешениями, но
на мой взгляд, проще всего работать через SDDL, то есть, описать
нужные параметры на специальном языке, а затем с помощью функции
ConvertStringSecurityDescriptorToSecurit yDescriptor получить
готовенький дескриптор безопасности. Например, для данной задачи
подойдет такая строка: "D:P(A;CI;GA;;;BA)(A;CI;GR;;;WD)".

Расшифровка:

D:P - Protected DACL, защищенный список контроля доступа.
Защищенный - значит он не наследует разрешения родительского объекта.
Далее в скобках перечислены два элемента списка управления доступом:
(
A - Access Allowed, т.е. тип элемента = разрешающий (есть еще запрещающий);
CI - Container Inherit, дочерние контейнерные объекты будут наследовать
эти разрешения;
GA - GENERIC_ALL, полный доступ;
BA - данный элемент применяется для группы администраторов;
),
(
A - разрешающий тип;
CI - обсуждалось выше;
GR - GENERIC_READ - доступ только на чтение;
WD - World, группа "Все" (она же "Everyone").
)

В итоге администраторы получат полный доступ к объекту, а все
остальные только на чтение (здесь в SDDL-строке не хватает еще
информации о владельце и первичной группе, но для данного примера
они не нужны, так как используется только список контроля доступа).

Имея готовый PSECURITY_DESCRIPTOR, можно вытащить из него DACL и
задать для объекта - GetSecurityDescriptorDacl / Set(Named)SecurityInfo.
Для последней функции использовать флаг DACL_SECURITY_INFORMATION и
PROTECTED_DACL_SECURITY_INFORMATION (protected - чтобы объект не
наследовал разрешения родителя). Другой вариант - использовать
структуры типа TRUSTEE и EXPLICIT_ACCESS, а также низкоуровневые
функции для работы с ACL, например SetEntriesInAcl.

Если ключ содержит подключи, пункты 2 и 3 нужно проделать для них тоже.
Для этого можно рекурсивно обойти ветку с помощью RegEnumKeyEx.

Вот и все. Теперь можно спокойно удалять ключ и все его подключи
функцией SHDeleteKey. С помощью этого нехитрого механизма можно легко
удалять ключи, у которых очень строгие разрешения или вообще нет доступа,
где владелец SYSTEM и т.п.
2
 Аватар для magistr011
6 / 6 / 2
Регистрация: 22.10.2011
Сообщений: 164
10.06.2014, 18:04  [ТС]
Да не хотел я никого ни обижать, ни оскорблять. Прошу простить, если задел. Помощи я прошу любой, но понятной, хотя бы материал для изучения... А т.к. я не имел дела с такого рода действиями я и спрашивал именно помощи в контексте "куска кода". Но, кстати, я рад и тому, что очень опытные программисты хоть и сложными для понимания конструкциями но помогают.

Спасибо!

Добавлено через 1 минуту
Убежденный, Ну вот за это спасибище!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.06.2014, 18:04
Помогаю со студенческими работами здесь

Запуск программы на другом локальном компьютере с помощью PsExec
При запуске команды в PsExec он отвечает: не удаётся найти указанный файл. Хотя он 100% там. Нагуглил, что он якобы с 7-кой не дружит, а...

PsExec: Error establishing communication with PsExec service on LOCALHOST
Всем доброго времени суток. PsExec почему-то не желает исполнять процессы от имени системы / на рабочем столе WinLogon. При установке...

Подключение через PsExec
Доброго дня! Есть PSexec 1.98.0.0 через которую иногда подключаюсь. Но возникла проблема - не могу подключиться к компам с ХР. P.S. к...

Авто запуск сайта gangnamgame.net. Заблокирован regedit
После запуска windows запускается батник, который выводит на gangnamgame.net. Так же во время подготовки логов не мог запустить AutoLogger...

Открыть ключ через Regedit
Здравствуйте Уважаемые Форумчане! Сразу хочу предупредить, что я новичок. Подскажите пожалуйста, стоит задача открыть определенный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru