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

Мне нужно, чтобы проверить оборудование поведение в случае с электроприводом жесткий зависает (например, замороженный экран, не мигает светодиодами, нет реакции на входные сигналы, в том числе сочетание клавиш Ctrl+Альт+дель и т. д.). Для того, чтобы хватило экспериментов в достаточно короткий срок мне нужно инициировать эти зависания как программно, так или иначе.

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

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

Обратная связь: Я'пробовала много рецептов предлагается в ответы и комментарии. Во-первых, я не был заинтересован в авариях, которые приносят синий экран (что's, почему я описал заморозить, а не аварии).

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

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

Комментарии к вопросу (10)
Решение

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

с USB клавиатуры, вы должны включить клавиатуру-инициатором аварии в В реестре. В реестре ключ В раздел HKEY_LOCAL_MACHINE\система\CurrentControlSet на\услуги\kbdhid\параметров, создавать значение с именем CrashOnCtrlScroll, и установить его равным значение REG_DWORD от 0х01.

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

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

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

Существует также NotMyFault

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

Комментарии (3)

Это звучит, как вы'повторного тестирования реакции внешнего устройства с ОС становится неотзывчивым.

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

Тогда вы сможете приостанавливать и возобновлять]1 виртуальная машина по желанию.

Комментарии (0)

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

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

while(1) {}

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

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

Комментарии (10)

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

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

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

Комментарии (0)

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

TL;д-р это то, что там's никакой способ (надежно) сделать это.

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

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

Комментарии (1)

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

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

Я'вэ установить его через порт FireWire/1394, поскольку она'ы самый простой, на мой взгляд. Но вы также можете сделать это по сети]2 или USBподробнее).

В основном,

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

bcdedit /debug on
bcdedit /dbgsettings 1394 channel:n

Который так же, как собирается загрузки вкладке `команду msconfig и выбрав 'расширенный' кнопка:

Затем (после перезагрузки целевого компьютера) запустите WinDbg на хост-компьютере с помощью той же разрядности программы WinDbg целевого компьютера.

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

Комментарии (1)

Это ошибка застывает окна очень быстро из-за исчерпания ресурса. Легко воспроизвести.

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

нул ^ <^

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

Комментарии (0)

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

Комментарии (0)

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

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

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


#include "stdafx.h"
#include 
#include 
#include 
#include 

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

int _tmain(int argc, _TCHAR* argv[])
{
    ::SetPriorityClass(::GetCurrentProcess(), 0x100);
    for(int i=0; i
Комментарии (10)

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

Комментарии (5)

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

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

Комментарии (0)

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

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

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

Комментарии (1)
  1. Перейти к\C:\Windows\Temp
  2. Нажмите Ctrl-A для выбора всех
  3. Нажмите Enter
Комментарии (3)