информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Сетевые кракеры и правда о деле ЛевинаSpanning Tree Protocol: недокументированное применениеАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Google заблокировала 2 с лишним... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Т.е. как я понял, после включения A20 (загрузки Himem.sys) всё будет на «ура»? 26.05.03 12:44  Число просмотров: 1124
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
и инструкция mov EAX, MyBig32BitAddress отработает? Я слышал, что для этого не надо даже переводить проц в защ. режим.
<programming>
Как заюзать это из-под DOS? 25.05.03 14:30  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
Короче, девайс использует адреса FFB80000-FFBFFFFF. Можно ли читать-писать по этим адресам напрямую в DOS? И ещё вопрос — будет ли эта прога работать в DOS-машине под Win9x, WinNT?

Всем заранее спасибо за ответы.
Как заюзать это из-под DOS? 26.05.03 13:05  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
> Короче, девайс использует адреса FFB80000-FFBFFFFF. Можно
> ли читать-писать по этим адресам напрямую в DOS?
Да. Для этого нужно использовать либо DPMI - ИМХО сложно, но вроде как по стандартам, либо X-mode - гораздо проще, но возможно будет конфликтовать с PM менеджерами. Все зависит от того, делаешь ли ты это для компа, где ты можешь контролировать enviroment, или на продажу широкой публике.

> И ещё
> вопрос — будет ли эта прога работать в DOS-машине под
> Win9x, WinNT?

Про 9x/Me ничего не скажу - не знаю. А под НТ - X-mode не работает, DPMI - не пробовал, но вряд ли прокатит.
Как заюзать это из-под DOS? 26.05.03 10:32  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
Отредактировано 26.05.03 10:34  Количество правок: 1
<"чистая" ссылка>
Про защищенный режим здесь уже написано, а я писал программу, которая до аналогичных адресов (линейный фрейм буфер видеоадаптера) дотягивалась в реальном режиме.
Под ДОСом реализовать можно что-угодно, сам ДОС тут ни причем.
Еще я для таких трюков люблю пользоваться Symantec C v7.2, там есть такая библиотечная функция, которая отображает адресное пространство в любую область памяти. Защищенное расширение там встроено (не надо ни какого DOS4GW), размер екзешки увеличивается на несколько килобайт.
Как заюзать это из-под DOS? 26.05.03 10:59  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
> Про защищенный режим здесь уже написано, а я писал
> программу, которая до аналогичных адресов (линейный фрейм
> буфер видеоадаптера) дотягивалась в реальном режиме.
> Под ДОСом реализовать можно что-угодно, сам ДОС тут ни
> причем.
ага. у меня тоже где то валялся экзампл который переключается в защищенный режим, настраивает там гдето чегото потом переходит в реальный и все -мона писать обращатся к 32хбитному [esi] -все пашет, тока у него ограничений много- всякие emm386 нельзя грузить например, не говоря уж о виндах. Даже после Himem.sys он не пашет
> Еще я для таких трюков люблю пользоваться Symantec C v7.2,
> там есть такая библиотечная функция, которая отображает
> адресное пространство в любую область памяти. Защищенное
> расширение там встроено (не надо ни какого DOS4GW), размер
> екзешки увеличивается на несколько килобайт.
а еще есть INT 67 - Expanded Memory Specification, и никаких библиотек.
Nr Description
INT 67,40 Get EMM Status
INT 67,41 Get Page Frame Base Address
INT 67,42 Get Page Counts
INT 67,43 Get Handle and Allocate Pages
INT 67,44 Map Logical Page Into Physical Page Window
INT 67,45 Release Handle and Memory Pages
INT 67,46 Get EMM Version
INT 67,47 Save Page Map Context
INT 67,48 Restore Page Map Context
INT 67,49 Get I/O Port Addresses
INT 67,4A Get Logical to Physical Page Mapping
INT 67,4B Get Handle Count
INT 67,4C Get Page Count for Handle
INT 67,4D Get Page Count for All Handles
INT 67,4E Get/Set Page Map Context
INT 67,4F Get/Set Partial Page Map
INT 67,50 Map/Unmap Multiple Handle Pages
...и тп.
но в PM проще и удобнее. И правильнее имхо. А TMT Pascal рулит - см ниже почему. + код довольно шустрый делает. Сам он на Watcom C писан кстати. ЗЫ прогу с сырцами юзающую его и его асм мона скачать с:

http://killprog.narod.ru/Tquake.exe
Т.е. как я понял, после включения A20 (загрузки Himem.sys) всё будет на «ура»? 26.05.03 12:44  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
и инструкция mov EAX, MyBig32BitAddress отработает? Я слышал, что для этого не надо даже переводить проц в защ. режим.
Т.е. как я понял, после включения A20 (загрузки Himem.sys) всё будет на «ура»? 26.05.03 14:43  
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
> и инструкция mov EAX, MyBig32BitAddress отработает? Я
> слышал, что для этого не надо даже переводить проц в защ.
> режим.
А20 тут не причем.
Если MyBig32BitAddress выходит за пределы 64к - ничего не выйдет.
Я делал это так:
1) Переход в защищенный режим (один из селекторов определен в нужную область).
2)Закинуть селектор в FS или GS (мало какие ДОС программы этими регистрами пользуются).
3)Выход из РМ.
Использовать соответственно mov EAX, FS:MyBig32BitAddress
Другие сегменты использовать не рекомендуется, т. к. при любом прерывании неизвесно что туда пропишется.

Проверял только на АМДшках.
Идея в том, что при записи в сегментный регистр в современных процах в реальном режиме в регистры доступа значения из таблички заносятся или вычисляются (нач. адр. = знач*16, длина=64к). Если же стоит битик РМ, то из таблицы дескрипторов. При снятии бита РМ регистры доступа к памяти не сбрасываются. Разумеется нужно сбросить "вручную" DS, ES, SS.
Т.е. как я понял, после включения A20 (загрузки Himem.sys) всё будет на «ура»? 26.05.03 15:06  
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
<"чистая" ссылка>
> Проверял только на АМДшках.
Работает на intel, вполне документированая фишка.

> Идея в том, что при записи в сегментный регистр в
> современных процах в реальном режиме в регистры доступа
> значения из таблички заносятся или вычисляются (нач. адр. =
> знач*16, длина=64к). Если же стоит битик РМ, то из таблицы
> дескрипторов. При снятии бита РМ регистры доступа к памяти
> не сбрасываются. Разумеется нужно сбросить "вручную" DS,
> ES, SS.
Более точный термин - кэш дескрипторов сегментов. Он используется как в реальном, так и в защищенном режиме.
Не на «ура» 26.05.03 14:05  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
скачай компилятор с примером по линку снизу и будет тебе счастье. там лежит пример new.pas который читает из [0b8000h]. чтоб его редактировать делаешь следующеее -захожиш фаром и выполняешь pltide.exe new.pas - открывается среда. По другому зайти в IDE компилятора низзя Ж).

http://killprog.narod.ru/tmtpas.rar
Как заюзать это из-под DOS? 25.05.03 15:04  
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
> Короче, девайс использует адреса FFB80000-FFBFFFFF. Можно
> ли читать-писать по этим адресам напрямую в DOS?
да. в защищенном режиме. если не силен в асме асм предлагаю заюзать такую штуку как TMT Pascal -почти обычный паскаль. Почти - потому что проги его работают под DOS/DPMI и его встроенный асм позволяет использовать 32х разрядные регистры и даже ММХ.
И ещё
> вопрос — будет ли эта прога работать в DOS-машине под
> Win9x,
вроде должна
WinNT?
нет
Как заюзать это из-под DOS? 25.05.03 15:02  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Короче, девайс использует адреса FFB80000-FFBFFFFF. Можно
> ли читать-писать по этим адресам напрямую в DOS? И ещё
Не уверен, но думаю в реальном режиме такой девайс (если у него нет альтернативных конфигураций) работать не будет, так как там только 20 бит на адресную шину выставить можно. Но для доса есть куча protected mode memory manager-ов. В общем то сама расширенная память тут не нужна, важен факт работы в защищенном режиме. То бишь можно написать дривер, полностью или частично находящийся в 32-битном сегменте, а оттуда уже делать что угодно.

> вопрос — будет ли эта прога работать в DOS-машине под
> Win9x, WinNT?
Не знаю точно особенностей работы дос машин, но мне кажется, что кроме дривера, который будет работать в этой самой машине, потребуется еще и дривер, который будет виртуализовать эти порты для дос машин.

> Всем заранее спасибо за ответы.
1




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


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