информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медАтака на InternetSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[ASM] резюме 21.10.01 16:01  Число просмотров: 1196
Автор: z0 <z0> Статус: Member
<"чистая" ссылка>
> Похоже мы друг друга не поняли :-)

да чего там понимать, подумаешь бином ньютона...

давай подведем черту:

1) при загрузке доса проверяется - показывает обработчик int13 на BIOS (адрес выше a0000) или на RAM. в досе 5 это уже точно было
это я так понимаю сделано для разделения перехватчиков int13 на те что нужны для работы с дисками (типа EBIOS.SYS by OnTrack) и тех что не нужны (типа смартдрайва) чтобы можно было из config.sys например подключить к int13 ASPI DISK правильно а не через кеш и т.п. и тогда уже real_int13 будет показывать на RAM, это можно сделать и из MBR и из конфига и из автоекзека. поэтому для перехватчика из MBR ити BOOT важно КУДА_НАПРАВИТЬ а для перехватчика из AUTOEXEC важно КАК_ПЕРЕХВАТЫВАТЬ т.к. mov es:[13h*4],eax уже не прокатит - у ДОСа уже сохранен правильный адрес int13 и он его продаст винде а энтот перехватчик будет классифиирован как дикий кеш ;-)

2) при загрузке виндовой части виндов винда интересуется у доса и если real_int13 показывает на RAM то считает что запущен штатный драйвер нестандартного блочного устройства и работает через int13
нечто похожее происходит если грузить в конфиг.цыц т.н. 16-битный драйвер сидирома

3) если int13 показывает на ROM то винда считывает для проверки сектора через int13 и свое чудо и сравнивает - если совпало можно грузить драйвер
видимо при отладке разработчики частенько сталкивались с кривыми биосами-контроллерами, а поскольку setup виндовый работает через int13 необходимо чтобы системный диск читался/писался одинаково

4) а вот куда мы не добрались в споре - потом уже в работе при вызове например из дос-бокса int13 тем же дискедитором оно эмулируется или передается в настоящий int13 ? я на какой-то версии видел что передается но не думаю что это так везде


PS: прокомментируй плиз свой код:

popf
push es
push bx
pushf
call cs:Old_13h
pop bx
pop es
mov dword ptr es:[bx], 0
retf 2

зачем PUSH/POP ES,BX ?
<programming> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach