Перейти к содержанию

Скриншот


Рекомендуемые сообщения

на пальцах:

BIOS - это набор маленьких подпрограмм, каждая из которых обслуживает какое-либо устройство внутри компьютера. Для каждого устройства может быть несколько разных подпрограмм. Эти подпрограммы хранятся в ПЗУ (постоянное запоминающее устройство) материнской платы. Сейчас эту роль исполняет Flash-память. Подпрограммы вызываются, используя механизм прерываний. Внутри одного прерывания "родственные" (обслуживают одно и то же устройство) подпрограммы различаются "векторами". Прерывания нумеруются от 0 до 255, вектора также нумеруются от 0 до 255. Для того, чтобы запустить необходимую подпрограмму (например получить системное время) необходимо вызвать прерывание и в качестве одного из параметров передать ему "вектор". Физически в памяти прерывания и вектора - это совокупность адресов в ПЗУ, указывающие на начальный адрес соответствующих подпрограмм.

Вся память ПЗУ разбита на 2 части:

- нижняя часть (начинается с адреса 0). Эта часть стандартизована и неизменна на всех машинах. Именно в этой части хранятся начальные адреса соответствующих подпрограмм.

- верхняя часть (следует сразу после окончания нижней части). В нех собственно и хранятся подпрограммы. Сначала идёт подпрограмма, соответствующая прерыванию 0 с вектором 0, далее 0 вектор 1 и т.д.

Данный механизм разработан для того, чтобы обеспечить программную совместимость для различных изготовителей компьютерных комплектующих. К примеру, если вы поставите видеокарту от ASUS, Sapphire, GIGIBYTE и т.д. то они все будут прекрасно работать и для материнской платы различий по работе с ними не будет, т.к. все они используют стандартизованную часть BIOS (таблицу адресов прерываний).

Кстати, некоторые устройства набор подпрограмм для работы с ними, хранят прямо в себе, т.к. материнская плата не содержит необходимых подпрограмм. Примером подобного устройства являются HDD стандарта IDE.

Теперь подходим к DOS. Это тоже набор маленьких подпрограмм. Но при этом, DOS уже является операционной системой и взаимодействует с прерываниями BIOS, т.е. DOS не управляет напрямую внутренними устройствами компьютера. Она лишь вызывает соответствующие прерывания BIOS и передаёт и/или получает соответствующие данные. К примеру, вы набираете команду format какого либо дискового накопителя....в ответ на это DOS вызывает группу прерываний и передаёт им группу параметров, необходимых для их запуска.

Программы-оболочки, например файловые менеджеры, такие как NC, DN, VC и т.д. взаимодействуют уже с подпрограммами DOS и являются надстройкой следующего уровня. Кстати винды до Windows98 работают под управлением DOS7.0 ;)

это так, для общего понимания сути вопроса :o

Называется, чайники подтягиваются... :)

а за "чайника" можно и ответить :rolleyes:

Ссылка на комментарий
Поделиться на другие сайты

Excalibur, а какое отношение этот текст имеет к проблеме скриншота из Биоса? :)

самое непосредственное

у кнопочки PrintScreen есть своё прерывание (не прямое конечно, но всё-же), соответственно она работает сразу же, как только активизировался комп, т.е. сразу после того, как закончился POST

POST же не может дать ей заработать по той самой причине, что во время его работы он:

1. инициализирует устройства

2. чистит переменные

а текст выше это всё объясняет

Ссылка на комментарий
Поделиться на другие сайты

самое непосредственное

у кнопочки PrintScreen есть своё прерывание (не прямое конечно, но всё-же), соответственно она работает сразу же, как только активизировался комп, т.е. сразу после того, как закончился POST

POST же не может дать ей заработать по той самой причине, что во время его работы он:

1. инициализирует устройства

2. чистит переменные

а текст выше это всё объясняет

Прерывание работает, и экран лезет на LPT порт печататься, но скриншот-то как сделать? :)
Ссылка на комментарий
Поделиться на другие сайты

Прерывание работает, и экран лезет на LPT порт печататься, но скриншот-то как сделать? :)

в результате работы прерывания в памяти остаётся дамп с картинкой

этот дамп ни BIOS ни DOS никогда не чистят

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

но я честно говоря в этом сомневаюсь, т.к. дамп этот создаётся в нижних 640к ОЗУ

следовательно, нужна программа, которая умеет этот дамп "вытаскивать"

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

Следовательно, эта программа, должна запретить виндам перехват и использовать стандартную область для дампа, которая используется BIOS

остался вопрос поиска этой самой программы

навскидку я такой не знаю, потому как давно уже не интересовался подобными вопросами :D

Ссылка на комментарий
Поделиться на другие сайты

biocide, Excalibur довольно понятно все объяснил. +1. Может поясните в чем чайники?

Мне просто интересно ваше мнение - жтож такое БИОС (как дипломированного инженера-системотехника)?

Ссылка на комментарий
Поделиться на другие сайты

о кнопке PrintScreen - она не работает только во время POST (power on self test), находясь в окне установок BIOS всё уже активно и работоспособно. Копия экрана будет занесена в память компа по-любому.

Лёш, немножко не так. :D

Все активно и работоспособно, система замечательно реагирует на прерывание по PrintScreen (int 05h если мне не изменяет память, таки лет 10 уже не перехватывал :) ), но вовсе не факт, что там есть кому его обрабатывать.

Т.е. прерывание работает, но не факт, что разработчики BIOS озаботились написанием обработчика, сохраняющего картинку.

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

А в защищенном режиме процессора, если верить теории, вообще нет доступа к физическим адресам памяти, там же сегментно-страничная организация, таблица виртуальных сегментов, и всё такое разное прочее.

Ссылка на комментарий
Поделиться на другие сайты

biocide, Excalibur довольно понятно все объяснил. +1. Может поясните в чем чайники?

Мне просто интересно ваше мнение - жтож такое БИОС (как дипломированного инженера-системотехника)?

да можно почитать хоть здесь, например:

http://www.bios.ru/

кстати, наткнулся на сцылки на несколько программок по снятию скриншотов, но они работают только под DOS :D

Лёш, немножко не так. :D

Все активно и работоспособно, система замечательно реагирует на прерывание по PrintScreen (int 05h если мне не изменяет память, таки лет 10 уже не перехватывал :) ), но вовсе не факт, что там есть кому его обрабатывать.

Т.е. прерывание работает, но не факт, что разработчики BIOS озаботились написанием обработчика, сохраняющего картинку.

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

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

к тому же, на это указывает тот факт, что проги, на которые я натыкался все сплошь под DOS и компы до Р2

это надо дебаггером просто снять со своего компа обработчик, да и посмотреть, что там есть внутрях

но ведь лень Костя ;) лично мне лень уже :D

А в защищенном режиме процессора, если верить теории, вообще нет доступа к физическим адресам памяти, там же сегментно-страничная организация, таблица виртуальных сегментов, и всё такое разное прочее.

ну никакая сегментно-страничная организация не отменит физическую шину адреса микросхем ОЗУ, ведь верно? ;)

Изменено пользователем Excalibur
Ссылка на комментарий
Поделиться на другие сайты

кстати, наткнулся на сцылки на несколько программок по снятию скриншотов, но они работают только под DOS :D

Ну логично, DOS работает в реальном режиме процессора, есть доступ ко всей памяти по физическим адресам - лезь в нужное место да бери картинку.. А дальше средствами ОС ее куды хошь девай...

но ведь лень Костя ;) лично мне лень уже :)

Угу, +1, вышел из этого возраста :D

ну никакая сегментно-страничная организация не отменит физическую шину адреса микросхем ОЗУ, ведь верно? ;)

И никакая нормальная ОС туда не пустит, верно? ;)

Собственно даже на уровне системы команд процессора уже все сильно по-другому нежели на чипе ОЗУ.

А так - вперед, осциллограф вам в руки :D

Ссылка на комментарий
Поделиться на другие сайты

И никакая нормальная ОС туда не пустит, верно? ;)

верно :)

поэтому надо подгрузиться раньше ;) и действовать пониже

(это меня уже понесло в сторону Stealth-вирусов :) один писнул когда-то чисто ради баловства)

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу



×
×
  • Создать...