а вот и нет, reset делает определенно что-то другое. На работе машины полугодичной давности, с какими-то бедовыми асусвскими мамками, их местный efi время от времени не находит жесткие диски при загрузке. Reset не помогает, power off+power on - помогает. То есть оно может чего и размыкает, но эффект reset'а и вкл/выкл разный
BIOS при старте первым делом проверяет содержимое определённой ячейки памяти (адрес на память уже не помню, конечно). Если там заданная константа, то он не проводит сброс памяти и переинициализацию железа, а сразу выполняет процедуру по заданному адресу.
Внедрить код в winlogon можно на работающей системе, но надо сильно извращаться с повышением прав. В общем, на современной винде с включенным UAC у вредоносного кода ничего не выйдет.
Кстати почему в линуксе до сих пор не озаботились проблемами безопасности пользовательского интерфейса? Ни тебе аналога ctrl-alt-del, ни secure desktop ... перехватить окошко с sudo паролем может любой ...
Ctrl-Alt-Delete биосом обрабатывается, если сможешь свой обработчик поставить, то да.
В DOS это делается довольно просто. Пишется своя функция, вытаскивающая скан-код из порта, а затем ее адрес записывается в таблицу прерываний. В школе на уроках программирования писали это для разрабатываемой игры.
Внедрять в смысле в памяти процесса в точке входа в функцию адрес на свой код писать ? msgina это документированный способ, достаточно возможности с дискетки загрузиться.
А вот уже не помню, в старые добрые времена были случаю что ресет не срабатывал и приходилось выключать питание, или цивилизация деградировала ?
Самые крутые изготовители IBM-PC совместимых машин, включая IBM и Compaq, делали машины без ресета. Приходилось отключать. Однокласснику каждое пятое выключение-включение IBM PS/2 вышибало пробки (модель не помню, какой-то тауэр на 386 или даже 486). А Compaq Portable надо было выдерживать выключенным секунд 30, иначе сигналил об ошибке памяти (parity, вроде) и отказывался грузиться.
и кнопка reset, которая по моей памяти обесточивала матплату.
Никогда :) Кнопка reset — это подача низкого уровня на соответствующую цепочку схемы.
ORLY? Сессии windows в те времена умели кончаться и из них можно было обратно в DOS выйти.
В 80286 нельзя выйти из защищённого режима в реальный. Нет такой команды. В 80386 ввели, но совместимость со старым способом осталась. И для выхода в реальный режим использовали сброс процессора.
Применялось это в первую очередь в Windows (хотя там тоже, когда речь шла о выходе в DOS), а именно в DOS-драйверах, использующих возможности памяти новых процессоров.
Необходимо подготовить возможность возврата в реальный режим. Механизм возврата в процессоре i286 отличается от механизма в i386+, но совместимость поддерживается.
Возврат осуществляется выполнением аппаратного сброса процессора.
При поступлении сигнала начальной установки начинается выполнение программы начальной инициализации, расположенной в BIOS. Эта программа обращается к энергонезависимой памяти и читает байт, определяющий особенности выполнения загрузки (адрес этого байта в CMOS-памяти 0Fh, а интересующее нас значение 0Ah или 05h). Если прочитанное значение 0Ah, то никаких специальных действий не выполняется, а просто передается управление по адресу, взятому из ячейки BIOS 0040:0067h. Если указано 05h, то перед пердачей управления будет произведена инициализация контроллера прерываний (это необходимо, если в защищенном режиме использовалась работа с прерываниями и настройка контроллера была изменена).
Конечно, на счёт того, что BIOS отдельно мог отлавливать кнопку reset'а я зуб не дам, давно было, а сейчас — не факт, что схемотехнику не поменяли, но схематически на 808x/80286/80386 ресет был простым сигналом (как это и делается традиционно в большинстве схем) и для процессора не отличался сброс по сигналу от сброса от тройной внутренней ошибки.
Есть же клавиатуры, где рядом с кнопками «сон» и «выключение» есть еще и «перезагрузка»
Ну, значит, чисто программная. На PC клавиатура не имеет никакого выхода на общую схемотехнику. От самого рождения PC XT там обычный последовательный интерфейс.
хочешь специально для тебя заведу в клавиатуру те самые два проводка и повешу на эскейп? :3
Да хоть через реле физическое отключение питания делай. От этого не изменится _стандартная_ схема :) Кнопки на клавиатуре можно любые повесить, не заводя их на отнокристаллку. Но передать сигнал с клавы на стандартный PC можно только по последовательный канал. Где нет места reset'у.
Для простоты понимания — сделай аппаратный reset через USB.
Но передать сигнал с клавы на стандартный PC можно только по последовательный канал. Где нет места reset'у.
щито? Отключаем проводки от аппаратной кнопки на корпусе, выводим наружу через вентиляцию, скотчем приматываем к основному проводу клавиатуры. Дальше внутрь корпуса клавиатуры и клеем момент на любую подходящую кнопку. Нажимаем кнопку - бздынь - аппаратный reset. Для эстетов, не любящих скотч - схемка простейшего радиопульта из книжки «юный радиолюбитель», нам нужно схватить всего один сигнал.
Вообще жуткий тупняк. Я так понял, что Гейтс назвал ошибкой не само создание CAD, а использование этой комбинации для входа в систему, это разные вещи немножко. Но тогда да, приколюшки не получаются - мягко говоря, далеко не все Win-пользователи по CAD в систему входили.
дык, любое выполнение кода биоса процессором может убиться об покореженную память, которая недержит данные (он же работает с ромом биоса, который загружен в память). Тогда всё повиснет.
Клава на i8042 цепляется, а у него один из выходов на reset , не дотянули совсем чуть-чуть, всего то надо было три последних скан кода запомнить в сдвиговом регистре и сравнить. Пожалели силикона, то бишь кремния.
Если я правильно понял, то кнопка Reset и сигнал RESET - это несколько разные понятия. Кнопка RESET не просто выставляет сигнал RESET на нужной ноге процессора.
щито? Отключаем проводки от аппаратной кнопки на корпусе, выводим наружу через вентиляцию, скотчем приматываем к основному проводу клавиатуры. Дальше внутрь корпуса клавиатуры и клеем момент на любую подходящую кнопку. Нажимаем кнопку - бздынь - аппаратный reset. Для эстетов, не любящих скотч - схемка простейшего радиопульта из книжки «юный радиолюбитель», нам нужно схватить всего один сигнал.
Сброс процессора по тройной ошибке не софтверный, а аппаратный. В смысле — это в самом процессоре такое поведение заложено, на уровне железа. Системный сигнал reset при этом не выставляется.
Впрочем, я не сильно матерился даже когда уже в ~1993-м, после 80386-х, на таком работать довелось: http://retropc.org/images/042_027.jpg :) Но тут оно уже раздражало несколько…