2009-07-26 3 views
0

Пожалуйста, расскажите, как вызвать перезагрузку w2k3 (без использования rpc-вызовов для этого) на ассемблере. Заранее спасибо!Перезапустите w2k3 на asm

+1

Зачем вам когда-либо понадобится перезагрузка машины с ассемблера? Я имею в виду, что может быть только что-то, чего я не вижу, поэтому мне любопытно. –

+0

На самом деле, мне также интересно, почему вы упоминаете «rpc-calls». RPC - это удаленный вызов процедур, который в зависимости от контекста может означать «функция API» или может означать «с другой машины по сети». Возможно, вы могли бы объяснить больше о том, что вы пытаетесь сделать. –

+0

Я имею в виду локальное требование rpc (не в сети). Но когда я пытаюсь сделать перезагрузку/r/f на telnet, это говорит мне о системе, уже идет на остановку, но она показывает мне это в течении 3хх часов. Когда я пытаюсь что-то сделать с помощью telnet command net - система говорит, что это недоступно rpc. – 2009-07-26 20:27:26

ответ

1

Функция ExitWindowsEx может быть тем, что вы ищете. Хотя это легко назвать языком высокого уровня, например C, для его вызова из языка ассемблера требуется более ручная работа.

Вы также можете найти примеры вызова функций Win32 из языка ассемблера; сложение частей вместе с вами.

+0

Программа необходима для удаленного сервера Что уже началось с перезагрузки, но во время перезагрузки что-то пошло не так. В результате у меня есть ТОЛЬКО доступ к telnet + передача файла на этот сервер. ExitWindowsEx также не работает в этом случае, также как и taskkill, а также любые другие вызовы RPC. Я думаю, что BSOD перезагрузит этот сервер, но как? – 2009-07-26 20:20:47

1

Вы упомянули причину BSOD в одном из комментариев, чтобы сбить систему (вы также можете посмотреть на тройную ошибку, это весело, но не имеют API). Это делается из земли ядра, вызывая KeBugCheck (или вызывая проблему, такую ​​как разыменование нулевого указателя).

Если вы хотите попробовать другой пользовательский вызов API земли, мне нравится InitiateSystemShutdown, передавая TRUE для последних двух параметров (чтобы принудительно закрыть программы, зависающие и перезапустимые, соответственно).

0

Если вы пытаетесь выключить удаленную систему, и что-то пойдет не так, и выключение остановится, и вы все еще хотите перезагрузить его, возможно, вы можете посмотреть на управляемую программным обеспечением схему управления мощностью. Вы можете отправить сигнал, чтобы отключить питание машины в течение нескольких секунд, а затем вернуть его в онлайн.