mar

Чтение системной области диска - win98

18.03.2012, 01:39. Показов 1914. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственно требуется прочитать первые сектора диска (причем работая из-под borland builder), а получается только 63-ий (там где загрузочная запись уже FAT). Нужно это для несколько маразматической задачи - люди, которых в силу разных причин послать подальше не могу и не хочу просили помочь им помешать возможности скопировать установленную программу (какую-то их, написанную на builder-е) на другую машину. Я предупредила, что возможна только защита от дурака разного уровня :], но они согласны и на это.

Честно говоря, ничего умнее, чем при установке привязаться к железу (естественно, зашифровав результат), а потом сверять результаты, мне в голову не пришло. Соответственно, насколько я понимаю, нужно работать через CreateFile на устройство и получать информацию, используя DeviceIoControl на полученный handle.

Поскольку NT-ой машины у меня дома в выходные под рукой нет, я пока поэксперементировала с 98 SE. Там (судя по документации) CreateFile делается не на устройство, а на драйвер vwin32 а потом вызывается DeviceIoControl на указатель, полученный в результате CreateFile и с одной из следующих функций:
Code
1
2
3
4
5
#define VWIN32_DIOC_DOS_DRIVEINFO 6 //Performs Interrupt 21h Function 730X commands. This value is supported in Windows 95 OEM Service Release 2 and later.
#define VWIN32_DIOC_DOS_INT13 4 // Performs Interrupt 13h commands
#define VWIN32_DIOC_DOS_INT25 2 // Performs the Absolute Disk Read command (Interrupt 25h)
#define VWIN32_DIOC_DOS_INT26 3 // Performs the Absolute Disk Write command (Interrupt 25h)
#define VWIN32_DIOC_DOS_IOCTL 1 // Performs the specified MS-DOS device I/O control function (Interrupt 21h Function 4400h through 4411h)
ну так вот, читать с жесткого диска у меня получается только через 21h Function 730X (VWIN32_DIOC_DOS_DRIVEINFO), как собственно, и рекомендуют в MSDN (или VWIN32_DIOC_DOS_IOCTL - 21h Function 4400h). попытка пройти через 13-ое выдает ошибку. А тут получается работа только с логическим диском (пусть даже на физическом уровне)

Не по теме:

забавно, судя по виду дампа EB 58 90 4D 53 57 49 4E из статьи о CIH-вирусе он лезет туда же, а мне-то казалось, что он пакостит в системнеой дорожке


Вопрос - есть ли возможность все-таки прочитать эту системную область из win и как?

В сети я наткнулась на программу http://www.winsim.com/diskid32/diskid32.html -
diskid32 (Автор: Lynn McGuire (WinSim). И программа и идеи очень интересны, рекомендую, но: прилагаемый к ней exe реально работает, а попытка откомпилировать ее под borland ни к чему хорошему не приводит. (При компиляции вылетаем с ошибкой на функции, переводящей из 3 кольца защиты в Ring0)
any ideas? буду очень благодарна

ps (я не уверена, что для данной конкретной задачи нужно заморачиваться 98-ыми, но мне уже самой стало интересно

Статьи MSDN по теме:
Calling DeviceIoControl on Windows NT/2000
Calling DeviceIoControl on Windows 95/98
Using VWIN32 to Carry Out MS-DOS Functions
PRB: DeviceIoControl Int 13h Does Not Support Hard Disks
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.03.2012, 01:39
Ответы с готовыми решениями:

Области памяти используемые системной платой
Здравствуйте! Не знал куда задать свой вопрос, но думаю к администрированию это имеет большее отношение. Какие области физической...

Чтение файла с системной директории
Помогите с чтением файла с системной директории: /dev/input/event0 Пробовал по всякому так: try{ Process process =...

Поиск системной информации операционной системы в дампе жесткого диска
Здравствуйте, Собственно суть проблемы заключена в названии темы: Поиск системной информации операционной системы в дампе жесткого диска....

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.03.2012, 01:39
Помогаю со студенческими работами здесь

Cтруктура диска повреждена чтение невозможно.как спасти ценную информацию с диска D?
нет доступа к D: структура диска повреждена чтение невозможно-вот такое сообщение получила когда пыталась зайти на D..... После внезапного...

Запись/чтение системной строки в текстовый файл
Прошу подсказать как записать/прочитать системную строку System::String ^st; в текстовый файл. Если можно коротенький код. Добавлено...

Как соединить две области диска?
Добрый день! Столкнулся с такой проблемой. Купил ноут, который на DOS. Когда устанавливал Windows, при выборе участка для установки,...

чтение диска NTFS
Есть задача, но я не представляю, как ее реализовывать. Задача- написать простейшую читалку HDD. Нужно: переходить к следующему...

С++ чтение секторов диска
как по очереди прочитать все сектора на диске? по идее должна использоваться функция ReadFile(hDevice, buf, 512, &dwBytesRead, NULL);...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru