Как я могу спровоцировать окна повесить (заморозить)?

Мне нужно проверить поведение оборудования в том случае, если Windows hard зависания / freezes (например замороженный экран, отсутствие моргать Сид, отсутствие реакции к входным сигналам, включая Ctrl+Alt+Del, etc.). Для того, чтобы иметь достаточно экспериментов в течение достаточно короткого времени, мне нужно инициировать эти зависания либо программно, либо иным образом.

меня интересует:Windows 10 в частности, но любой работающий способ для других версий высоко ценимый.

каждый поиск, который я сделал на эту тему, не удивительно, приводит меня к дискуссиям о том, как ликвидировать эти ситуации, а не провоцировать их. Поэтому вопрос может показаться достаточно странным.

обратная связь:
Я пробовал многие из рецепты предлагается в ответах и комментариях. Прежде всего, меня не интересовали сбои, которые приносят BSoD (вот почему я описал замораживание, а не сбой).

Я должен признаться, что Windows 10 64-бит показал хорошую устойчивость ко многим способам. Он справляется практически с любым CPU-load способ (в том числе форк-бомбу, петли, etc.) весьма неплохо. Методы, которые вызывают немедленные ошибки (большинство методов зависания NotMyFault), обрабатываются ОС с перезагрузкой или завершением работы (что не то, что я преследовал). Лучшие результаты были достигнуты утечка памяти способы NotMyFault - реальное замораживание без шанса перезагрузки.

наконец, я был впечатлен количеством документации Microsoft, которая говорит о замораживании Windows. Похоже, они знают эту часть гораздо лучше, чем противоположную (боевые заморозки); -)

1
задан Luke Sawczak
04.12.2022 14:21 Количество просмотров материала 3211
Распечатать страницу

13 ответов

возможно, это может помочь: принудительный сбой системы с клавиатуры

с клавиатурами USB, необходимо включить клавиатуру инициировал сбой в реестр. В разделе реестра Система реестра HKEY_LOCAL_MACHINE\\CurrentControlSet на\услуги\kbdhid\параметры, создайте значение с именем CrashOnCtrlScroll и установите его равным a Значение REG_DWORD 0x01.

необходимо перезагрузить систему, чтобы эти настройки вступили в силу.

после это завершено, авария клавиатуры может быть начата с помощью следующую последовательность клавиш: удерживая нажатой клавишу правый Ctrl и дважды нажмите клавишу блокировки прокрутки.

или вы могли бы начать бомбить вилки: смотри так вопрос

появилась NotMyFault

Notmyfault-это инструмент, который можно использовать для аварийного завершения работы, зависания и утечки памяти ядра в системе Windows. Это полезно для обучения, как выявляйте и диагностируйте проблемы с драйверами и оборудованием устройств, а также используйте его для создания файлов дампа синего экрана в системах с неправильным поведением.

230
отвечен duenni 2022-12-05 22:09

похоже, вы тестируете реакцию внешнего устройства на то, что ОС перестает отвечать.

Если ваше оборудование может быть подключено к виртуальной установить Windows, то вы можете приостановить и возобновить работу виртуальной машины столько раз, сколько вам нравится. Установите нужную ОС в среде VirtualBox (или другой виртуализации рабочего стола), предоставьте виртуальную машину доступ к любому используемому аппаратному интерфейсу (USB, Ethernet или любому другому).

тут вы можете пауза и резюме виртуальная машина по желанию.

25
отвечен barbecue 2022-12-06 00:26

по крайней мере, в старой версии Windows (несколько лет назад) работали:

Я написал программу на Си с бесконечным циклом:

while(1) {}

... затем я дал этой программе "приоритет в реальном времени" в диспетчере задач (есть также API, который может это сделать).

в многоядерной системе мне нужно было бы сделать это несколько раз, поэтому на каждом ядре выполняется один цикл...

24
отвечен Martin Rosenau 2022-12-06 02:43

самое сильное ядро зависает (т. е. нет отслеживания мыши и т. д.)- когда код переходит в бесконечный цикл в режиме ядра с прерываниями.

это возможно достичь с помощью драйвера устройства, и даже лучше, вы можете написать драйвер, чтобы он запускал и останавливал зависание под вашим контролем (при условии, что бесконечный цикл проверяет условие, которое вы контролируете).

Как написать и установить этот драйвер будет тема другой вопрос или три, но вот такой подход я бы выбрал.

10
отвечен Dylan McNamee 2022-12-06 05:00

пожалуйста, проверьте следующий вопрос на StackOverflow, который похож на ваш:Как заставить Windows замерзнуть на короткий промежуток времени

tl; dr-это то, что нет никакого способа (надежно) сделать это.

вместо того чтобы замерзнуть или получить, что окна повиснуть, возможно вы можете как раз прервать сообщение с вашим оборудованием.

Я понятия не имею, что ваше оборудование и как его подключить. Если это USB или Ethernet адаптер, e.g, вы смогли легко отключить его в Диспетчере устройств или отключить? Если вы решительно аварии или повесить систему, вы можете повредить вашу систему различными способами, так что будьте осторожны с тем, что вы делаете.

9
отвечен Ralf 2022-12-06 07:17

режим отладки ядра не вариант?

Я установил его в Windows 7, и связанные инструкции в этом ответе указывают XP или более поздней версии, поэтому он должен работать с Windows 10.

Я установить поверх FireWire / 1394, так как это самый простой, на мой взгляд. Но вы также можете сделать это по сети или USBmore).

по сути,

настройте целевой компьютер, запустив команды в командной строке с повышенными привилегиями (выбор канала n):

bcdedit /debug on
bcdedit /dbgsettings 1394 channel:n

, который так же, как собирается на вкладке загрузки msconfig и выбрать кнопку "Дополнительно":

enter image description here

enter image description here

затем (после перезагрузки целевого компьютера) запустите WinDbg на главном компьютере, используя ту же разрядность WinDbg целевого компьютера.

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

5
отвечен Nick 2022-12-06 09:34

Я не знаю, если это квалифицируется как полное замораживание, потому что курсор мыши по-прежнему движется на экране, но Windows 7 пользовательский интерфейс перестает отвечать на запросы, если у вас есть устройство ввода/вывода ошибки более конкретно сбой жесткого диска. Один из моих жестких дисков был самоотчет неизбежного отказа диска через смарт и Windows 7 будет монтировать его, но повесить всякий раз, когда я пытался получить доступ к определенным файлам, сохраненным на нем. Пользовательский интерфейс будет блокироваться (за исключением движения курсора мыши) до 5 минут, пока он либо не сможет прочитать файл или отключен диск после истечения времени ожидания. Я не знаю, использует ли Windows системные часы для тайм-аута, но, возможно, если вы каким-то образом заморозите время, вы можете продлить продолжительность тайм-аута? Может быть, это поможет вам частично есть, но не 100% ответ, который вы ищете.

2
отвечен Dotes 2022-12-06 11:51

эта ошибка замораживает окна довольно быстро из-за исчерпания ресурсов. Легко воспроизвести.

Как оказалось, это на самом деле a bug в том, как командная строка (точнее cmd.exe) разбирает партию файлы и может привести к быстрому отказу в обслуживании типа атаки; положить следующая строка в пакетном файле (без новых строк) будет использовать огромные объемы памяти очень быстро из-за этой ошибки (как example):

^ nul<^

короче говоря, когда курсор находится в конце файла, фактический конец файла "игнорируется" и дескриптор файла "сброс" до 0 (по существу), чтобы пакет снова анализировался (до бесконечности).

2
отвечен beatcracker 2022-12-06 14:08

вот исходный код приложения, которое я использую в своих уроках отладки. Он показывает, как приложение пользовательского режима может выполнять своего рода DoS-атаку.

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

Он работает с помощью бесконечного цикла и установки наивысшего приоритета процесса (0x100 "в реальном времени") и ставит перед собой максимальные приоритет к потокам (15 "критический момент"). Запустится 8 из них, чего вполне достаточно для компьютеров i7. Если вам нужно больше, то приспособьте петлю. Больше из них потенциально замедлить вещи больше.

#include "stdafx.h"
#include <windows.h>
#include <string>
#include <sstream>
#include <iostream>

void WasteTime()
{
    int priority = 15;
    ::SetThreadPriority(::GetCurrentThread(), priority);
    while (true)
    {
    }
}

int _tmain(int argc, _TCHAR* argv[])
{
    ::SetPriorityClass(::GetCurrentProcess(), 0x100);
    for(int i=0; i<7; i++)
    {
        LPDWORD threadid = 0;
        ::CreateThread(NULL, 64*1024, (LPTHREAD_START_ROUTINE)&WasteTime, NULL, 0, threadid);
        ::Sleep(2000);
    }

    WasteTime();

    return 0;
}
2
отвечен Thomas Weller 2022-12-06 16:25

вы пробовали CPUEater утилиты, что в комплекте с Процесс лассо ? Ps. Я не работаю на bitsum.

0
отвечен beppe9000 2022-12-06 18:42

Если вы действительно хотите повесить компьютер, полностью вызывая его просто freeze, просто использовать все его памяти и силой ее памяти страницы. Это будет выходить за рамки простого замораживания и на самом деле просто перегружать вещь, так что вы даже не можете использовать Диспетчер задач, даже не с помощью клавиатуры. Даже когда процесс будет завершен, потребуется много времени для восстановления ПК. (Это самое лучшее!)

вы могли бы, например, создать класс с указателем на себя и в в то время как цикл, создать новый экземпляр этого класса навсегда, сохраняя каждый новый экземпляр в указателе предыдущего экземпляра. Может быть, добавить несколько двойников или векторов к классу тоже, чтобы потреблять память быстрее. Тогда у вас может быть таймер, который выходит из цикла while и деконструирует все; конечно, вам придется немного подождать, пока он восстановится.

-2
отвечен Andrew 2022-12-06 20:59

Я бы предложил просто создать пакетный файл со следующим кодом:

@echo off
:x
start cmd.exe
start explorer.exe
start calc.exe
start notepad.exe
start iexplorer.exe
start paint.exe
goto x

Это, пожалуй, самый простой и безопасный способ сделать это. Имена процессов можно заменить любыми приложениями windows.

-4
отвечен SLimy 2022-12-06 23:16
  1. перейдите к\C:\Windows\Temp
  2. нажмите Ctrl-a для Select All
  3. Нажмите Enter
-10
отвечен asrhargar 2022-12-07 01:33

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх