Реально ли подвесить комп через pascal
А то я вчера значит
GetMem(p,64000);
а Dispose - соседям оставил;)
такое началось
страница в IE открывалась 5 минут и т.д.
Возможно такое?
![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
![]() ![]() |
![]() |
dark0ut |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 53 Пол: Мужской Репутация: ![]() ![]() ![]() |
Реально ли подвесить комп через pascal
А то я вчера значит GetMem(p,64000); а Dispose - соседям оставил;) такое началось страница в IE открывалась 5 минут и т.д. Возможно такое? -------------------- Админ StudCity.RU
|
mj |
![]()
Сообщение
#2
|
![]() Adminь ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 803 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
тормознуть можно, а повесить разве что 98'ую...
|
Vit |
![]()
Сообщение
#3
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 156 Пол: Мужской Репутация: ![]() ![]() ![]() |
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 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Цитата Win 95/98/ME намертво вешает такой код Repeat asm cli end; Until False; или можно запустить (ShellExecute) файл с именем "c:concon" С NT/2000/XP как и ожидалось такbt номера не пройдут. Поясню тем кто не знает asm, cli обозначает отрубить все апаратные прерывания... Под NT эту команду процесор почемуто просто не замечает... |
Vit |
![]()
Сообщение
#5
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 156 Пол: Мужской Репутация: ![]() ![]() ![]() |
Цитата Под 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 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Цитата 1). Нагло. Создаём Run-Time нить с наивысшим приоритетом (лучше при помощи Job'а) и в цикле занимаем FPU, а заодно и CPU. Ну взять на себя полную загрузку программа может ухитрится, это на самом деле легко делается через ловушки (пример я увидел на всем известном переводчике LingoWare)... Но сама система то при этом не виснет и рано или поздно программа будет выгружена... ![]() |
![]() ![]() |
![]() |
Текстовая версия | 9.06.2023 15:41 |