|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Как перезагрузить НТ (win 2000) ??? |
|
|
Как перезагрузить НТ (win 2000) ???
|
Новый участник Сообщения: 41 |
Профиль | Отправить PM | Цитировать воть:
практически всё переписывал из мсдн на сайте мелко-мягких token_handle dd 0 mashine_process_handle dd 0 token_privileges dd 1 ;privilege count luid dd 0 ;luid lo dd 0 ;luid hi attributez dd SE_PRIVILEGE_ENABLED token db 'SeShutdownPrivilege',0 TOKEN_QUERY equ 8 TOKEN_ADJUST_PRIVILEGES equ 20h SE_PRIVILEGE_ENABLED equ 2 EWX_REBOOT equ 2 EWX_SHUTDOWN equ 1 EWX_FORCE equ 4 start: call GetCurrentProcess ; установка привилегий на ребут mov mashine_process_handle,eax push offset token_handle push TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY push mashine_process_handle call OpenProcessToken or eax,eax mov token_flag,eax jz short mashine_nt ; если не НТ то привилегии пофиг push offset luid push offset token ; собсно установка привилегий push offset system call LookupPrivilegeValueA push 0 push 0 push 0 push offset token_privileges push 0 push token_handle call AdjustTokenPrivileges <--- вот тут ошибка ERROR_NOACCESS и следовательно ExitWindowsEx посылает к билу гейтсу push 0FFFFh push EWX_FORCE or EWX_REBOOT or EWX_SHUTDOWN call ExitWindowsEx or eax,eax jz short mashine_no_reboot push 0 call ExitProcess пробовал на win 2000 на разных машинах срабатывает только если запускать этот код через телнет |
|
------- Отправлено: 15:20, 20-09-2002 |
Модер Сообщения: 1716
|
Профиль | Сайт | Отправить PM | Цитировать ukms
погляди у меня на сайте исходник для платформы Win32 (то есть, не Native). Заменить ZwShutdownSystem опционально на ExitWindowEx. а че же не в машинных кодах? |
------- Отправлено: 16:01, 20-09-2002 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать погляди у меня на сайте исходник для платформы Win32 (то есть, не Native). Заменить ZwShutdownSystem опционально на ExitWindowEx.
ээээ ... чего-то я не понял твой исходник дурак наверное.... а че же не в машинных кодах? типа 3A E6 A1 00 ??? |
------- Отправлено: 16:29, 20-09-2002 | #3 |
Модер Сообщения: 1716
|
Профиль | Сайт | Отправить PM | Цитировать ukms
Rtl* - получает привилегии. Zw* - грохает. че-там не ясно-то? |
------- Отправлено: 16:33, 20-09-2002 | #4 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Ц на таком уровне я не знаю
да и функций таких у мелко-мягких я не видел ни на сайте ни в мсдн как стандартным способом перезагрузить ? ведь моя последовательность должна работать (и работает из под телнета) ! Добавлено: extern говоришь ? а дизасм или исходник этого extern-a где мона найти ? Rtl, Zw.... хм.... Добавлено: мдя.... нашел... конечно заманчиво эту dll использовать но интересно все-же, ПАЧУМУ НЕ РАБОТАЕТ ! |
|
------- Отправлено: 17:08, 20-09-2002 | #5 |
Модер Сообщения: 1716
|
Профиль | Сайт | Отправить PM | Цитировать ukms
почему у тебя твой код не работает - не знаю, как-то лень все эти пуши считать напиши на сях, глядишь, и разберемся. |
------- Отправлено: 10:39, 24-09-2002 | #6 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать вот ! за 5 мин написал и собака - работает ! как часы !
все дело в том что надо на асме ;( так что вопрос остается открытым #include <windows.h> #include <stdio> #include <stdlib> #include <iostream> #pragma argsused int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow) { HANDLE hToken; TOKEN_PRIVILEGES tkp; DWORD ReturnLength; OpenProcessToken ( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken); LookupPrivilegeValue(NULL, "SeShutdownPrivilege", &tkp.Privileges[0].Luid); tkp.PrivilegeCount=1; tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, NULL, &ReturnLength); ExitWindowsEx(EWX_REBOOT | EWX_FORCE, 0); } |
------- Отправлено: 10:34, 25-09-2002 | #7 |
Модер Сообщения: 1716
|
Профиль | Сайт | Отправить PM | Цитировать Цитата:
|
|
------- Отправлено: 11:12, 25-09-2002 | #8 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать Понимаю, что это изврат, но что делать ?
Придется заняться ida ком цу мир ! |
------- Отправлено: 15:10, 25-09-2002 | #9 |
Новый участник Сообщения: 41
|
Профиль | Отправить PM | Цитировать короче плюнул и сделал как у тебя
ничо шо я дизасемблер твоей проги поковырял ? класно ребутит и главное - быстро ! вот только приходится отдельно dll грузить - хочу чобы и на 98 работала вот а с примером мелкомягких я разберусь, блин достало хоть из ида готовый копируй Добавлено: пример мелкомягких Короче как я не бился, работать он отказывается я переписал дизасемблированный код из ida в свою программку и о боже - она заработала Ничо не понимаю ! Скомпилированный бц код делает все то же что и я, получает все тоже что и я (те же значения). Отличие лишь в том что его код (ВС) создает временные структуры на стеке. Это TOKEN_PRIVILEGES , LUID_AND_ATTRIBUTES и иже с ними. я же делаю и заполняю эту структуры в отдельной области памяти. |
------- Отправлено: 17:54, 25-09-2002 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Как решить проблему в win 2000? | Rusman | Microsoft Windows NT/2000/2003 | 4 | 31-08-2006 10:20 | |
Перезагрузить Windows 2000 | AlexK47 | Microsoft Windows NT/2000/2003 | 2 | 19-03-2006 00:18 | |
Как реализовать вход в win 2000 server ? | Rommsht | Microsoft Windows NT/2000/2003 | 7 | 23-07-2005 12:37 | |
DOS Клиент Для WIN 2000 Prof, Win 9x,Win NT4 | Leonardo | Сетевые технологии | 10 | 28-04-2004 09:44 |
|