DLLpiton.net.ru
Главная arrow Статьи arrow Чтение с винчестера через порты
Главная
Форум
Магазин
- - - - - - -
Исходники
Статьи
Материалы
FTP
- - - - - - -
Поиск
Каталог ссылок
Контакты
Ленты новостей
Ча.Во. (FAQ)
Анекдоты
Java программы
Доска заказов программ
Лицензия Dllpiton
Кто на сайте?
 
Чтение с винчестера через порты Печать E-mail


Чтение с винчестера через порты.

Представляю вашему вниманию две статьи из австралийского журнала VLAD. Чтение и запись секторов напрямую через порты. Очень полезная вещь, особенно для любителей записываться в MBR. Опция "Virus Warning" в CMOS иногда (специально редко кто догадывается ее включать, несмотря на то, что это практически непреодолимая преграда для записи в MBR) бывает включенной, и при записи на экран выскакивает этот самый Ворнинг с вопросом "Разрешить или запретить запись?" Естессно, на английском, из-за чего боящиеся перечить компьютеру отвечают "Yes" - единственное знакомое для них слово в этом окошке, однако, если юзер знает, то вирусу вашему пришел конец. "Virus Warning" легко снять (процедуры для снятия см. в предыдущих выпусках нашего журнала), однако запись через порты позволяет это сделать короче и и без лишнего геммороя. AWARD даже и не пикнул. Все AMIшные и AWARDовские навороты летят ко всем ЕБН. Читайте и пользуйтесь. Сам возьму это на воору- жение, надоело снимать Virus Warning. Процедура тестировалась на нескольких IDE винтах, другие типы винтов тестирование не проходили (я также тестировал. LG)

LovinGOD.

На эту работу у меня ушли месяцы, и теперь вы можете писать свой вирус в загрузочный сектор и никакие резидентные сторожа и BIOS не смогут вам в этом помешать. Мы разговариваем с винчестером напрямую, без обвешанных проверками обработчиков прерываний.

Данная программа работает только для 286 и выше (здесь используюется комманда INSB/W)

Техническая информация по портам:

Порт
Чтение/запись
Описание
01f0h
r/w
Регистр данных, сюда пишутся/читаются байты
01f1h
r
Регистр ошибки (для себя вы можете просмотреть их)
01f2h
r/w
Счетчик секторов, кол-во секторов для чтения
01f3h
r/w
Номер сектора, начальный номер сектора the actual sector wanted
01f4h
r/w
Нижняя часть значения дорожки, (0-1024)
01f5h
r/w
Верхняя часть значения дорожки; остальные более 1024
01f6h
r/w

Диск/Головка
bit 7 = 1 ;
bit 6 = 0 ;
bit 5 = 1 ;
bit 4 = 0 выбор диска 0, 1- выбор диска 1
bit 3-0 бит выбора головки

01f7h
r
Регистр статуса
bit 7 = 1 контроллер выполняет комманду
bit 6 = 1 диск готов
bit 5 = 1 ошибка записи
bit 4 = 1 поиск окончен
bit 3 = 1 буфер сектора нуждается в обработке
bit 2 = 1 чтение данных с диска откорректировано
bit 1 = 1 индекс - установить каждое вращение в 1
bit 0 = 1 предыдущая комманда закончилась ошибочно
01f7h
w
Регистр комманд
комманды:
50h форматировать дорожку
20h читать сектора с попытками повторить
21h ------""------ без попыток повторить
22h читать длинный с попытками повторить
23h ------""------ без попыток повторить
30h читать сектора с попытками повтора
31h читать сектора без попыток потвора
32h читать длинный с попытками повтора
33h читать длинный без попыток повтора

Большинство этого кода должно работать также на не-IDE жестких дисках. Данный код предназначен для чтения, код для записи см. в следующей статье.
 
« Пред.   След. »
 
 
 
19.06.2018 г.
up!