Реально ли подвесить комп через pascal
А то я вчера значит
GetMem(p,64000);
а Dispose - соседям оставил;)
такое началось
страница в IE открывалась 5 минут и т.д.
Возможно такое?
Память |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
Память |
dark0ut |
Сообщение
#1
|
Пионер Группа: Пользователи Сообщений: 53 Пол: Мужской Репутация: 0 |
Реально ли подвесить комп через pascal
А то я вчера значит GetMem(p,64000); а Dispose - соседям оставил;) такое началось страница в IE открывалась 5 минут и т.д. Возможно такое? -------------------- Админ StudCity.RU
|
mj |
Сообщение
#2
|
Adminь Группа: Пользователи Сообщений: 803 Пол: Мужской Реальное имя: Евгений Репутация: 5 |
тормознуть можно, а повесить разве что 98'ую...
|
Vit |
Сообщение
#3
|
Бывалый Группа: Пользователи Сообщений: 156 Пол: Мужской Репутация: 0 |
Win 95/98/ME намертво вешает такой код
Код Repeat asm cli end; Until False; или можно запустить (ShellExecute) файл с именем "c:concon" С NT/2000/XP как и ожидалось такие номера не пройдут. Сообщение отредактировано: volvo - -------------------- With the best regards Vit
Все всегда уезжают навсегда. Вернуться невозможно-вместо нас всегда возвращается кто-то другой |
mj |
Сообщение
#4
|
Adminь Группа: Пользователи Сообщений: 803 Пол: Мужской Реальное имя: Евгений Репутация: 5 |
Цитата Win 95/98/ME намертво вешает такой код Repeat asm cli end; Until False; или можно запустить (ShellExecute) файл с именем "c:concon" С NT/2000/XP как и ожидалось такbt номера не пройдут. Поясню тем кто не знает asm, cli обозначает отрубить все апаратные прерывания... Под NT эту команду процесор почемуто просто не замечает... |
Vit |
Сообщение
#5
|
Бывалый Группа: Пользователи Сообщений: 156 Пол: Мужской Репутация: 0 |
Цитата Под NT эту команду процесор почемуто просто не замечает... Ядро NT имеет собственные процедуры обработки для команд Jmp, Cli, Int и некоторых других. Поэтому если программа не является сервисом, то вместо этих команд выполняются специальные процедуры ядра NT которые эмулируют эти команды. -------------------- With the best regards Vit
Все всегда уезжают навсегда. Вернуться невозможно-вместо нас всегда возвращается кто-то другой |
BlackShadow |
Сообщение
#6
|
Гость |
Ну, про 9х говорить нечего. Его повесить крайне просто. Например :
asm CLI HLT end - запрещаем прерывания и делаем паузу до их возникновения. Для надёжности можно загнать в цикл. А вот с NT надо быть хитрее. У меня только 2 варианта реализации : 1). Нагло. Создаём Run-Time нить с наивысшим приоритетом (лучше при помощи Job'а) и в цикле занимаем FPU, а заодно и CPU. 2). Коварно. Нахально. Неожиданно. Переводим процессор в реальный режим, перехватываем все прерывания и творим, что хотим. Одно "но". Даже у меня и моего "товарища" возникли проблемы в реализации этого метода. Надо код оптимизировать буквльно на несколько тактов (исходя из подопытного Celeron-330), а вот как... А вот испоьзуя BP или что либо иное под Real-Time или Protected Mode такого не добиться. А жаль. |
mj |
Сообщение
#7
|
Adminь Группа: Пользователи Сообщений: 803 Пол: Мужской Реальное имя: Евгений Репутация: 5 |
Цитата 1). Нагло. Создаём Run-Time нить с наивысшим приоритетом (лучше при помощи Job'а) и в цикле занимаем FPU, а заодно и CPU. Ну взять на себя полную загрузку программа может ухитрится, это на самом деле легко делается через ловушки (пример я увидел на всем известном переводчике LingoWare)... Но сама система то при этом не виснет и рано или поздно программа будет выгружена... |
Текстовая версия | 7.10.2024 9:08 |