информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Атака на InternetСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 700 с лишним git-серверов пострадало... 
 От повторного пришествия Шаи-Хулуда... 
 Крупный сбой Azure и других сервисов... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Про Win95/98/Me и NT/W2K/XP/NET _вся_ информация есть в PlatformSDK 09.05.02 17:53  Число просмотров: 1023
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
Поиши следуюшие строчки:
"Device Input and Output Control Codes"
"DeviceIoControl"
"CreateFile"
"Exclusive Use Lock"

Разница между Win95/98 и NT колосальная.
В NT как в Unix можно просто открыть "файл", который на самом деле диск и делать что угодно. В Win95 масса мышиной возьни...
<programming>
[C++] Запись на винт-С++, biosdisk 07.05.02 21:02  
Автор: Moderator Статус: Незарегистрированный пользователь
<"чистая" ссылка>

Хочу, чтобы записала нули в нулевуой сектор пишу через функцию biosdisk:
char buffer[512];
biosdisk(3,0x80,0,0,0,20,buffer); Но информация не пишется! Может я не так координаты задаю? Если нет, то в чем косяк?
Про Win95/98/Me и NT/W2K/XP/NET _вся_ информация есть в PlatformSDK 09.05.02 17:53  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
Поиши следуюшие строчки:
"Device Input and Output Control Codes"
"DeviceIoControl"
"CreateFile"
"Exclusive Use Lock"

Разница между Win95/98 и NT колосальная.
В NT как в Unix можно просто открыть "файл", который на самом деле диск и делать что угодно. В Win95 масса мышиной возьни...
[C++] Запись на винт-С++, biosdisk 07.05.02 21:10  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
>
> Хочу, чтобы записала нули в нулевуой сектор пишу через
> функцию biosdisk:
> char buffer[512];
> biosdisk(3,0x80,0,0,0,20,buffer); Но информация не
> пишется! Может я не так координаты задаю? Если нет, то в
> чем косяк?

Я сейчас уже не помню формат аргументов biosdisk(), но на всякий случай:
- сектора нумеруются начиная с 1 (не с нуля);
- последние верси DOS (Win95/98/Me) блокируют низкоуровневый доступ к диску, посмотри help по команде lock.
- NT не даст записать в принципе, нужно использовать Ioctl()

Удачи!
[C++] Запись на винт-С++, biosdisk 08.05.02 08:22  
Автор: Moderator Статус: Незарегистрированный пользователь
<"чистая" ссылка>

>
> Я сейчас уже не помню формат аргументов biosdisk(), но на
> всякий случай:
> - сектора нумеруются начиная с 1 (не с нуля);
> - последние верси DOS (Win95/98/Me) блокируют
> низкоуровневый доступ к диску, посмотри help по команде
> lock.
> - NT не даст записать в принципе, нужно использовать
> Ioctl()
>
> Удачи!
За удачу спасибо! 8)Если решать эту проблему через то ioctl() то какой адрес задавать, чтобы инфа записалась в начала диска?
[C++] Запись на винт-С++, biosdisk 08.05.02 17:28  
Автор: Chingachguk <Chingachguk> Статус: Member
<"чистая" ссылка>
Через IOCtl может быть такая шняга: винда дает писать только в сектора активного раздела, а начало диска(mbr ты хочешь?) к нему не принадлежат ;)
[C++] Запись на винт-С++, biosdisk 08.05.02 18:08  
Автор: Moderator Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Через IOCtl может быть такая шняга: винда дает писать
> только в сектора активного раздела, а начало диска(mbr ты
> хочешь?) к нему не принадлежат ;)
Дык разлочить надо! Ток вот как... 8)
[C++] Запись на винт-С++, biosdisk 08.05.02 18:33  
Автор: Chingachguk <Chingachguk> Статус: Member
Отредактировано 08.05.02 18:39  Количество правок: 1
<"чистая" ссылка>
> > Через IOCtl может быть такая шняга: винда дает писать
> > только в сектора активного раздела, а начало диска(mbr
> > ты хочешь?) к нему не принадлежат ;)
> Дык разлочить надо! Ток вот как... 8)

В 98-х можно попробовать написать динамик VxD, который позовет сервис другого VxD, например:

Values for Int13 (VxD ID 0020h) service number:
00h get version
01h device registered
02h translate VM interrupt
03h hooking BIOS interrupt
04h unhooking BIOS interrupt

Вообще-то, когда зовешь, к примеру, ReadFile, вызов проходит через кучу VxD-шек, а окончательно сектора читает IOS (IOS_Send_Command & IOS_Send_Next_Command). В смысле, конечно, не сам читает(у меня читает VxD ESDI через команды in/out), но с точки зрения сервиса чтения секторов - именно он.
Также можно попробовать писать через команды in/out из того же динамик VxD.
[C++] Запись на винт-С++, biosdisk 09.05.02 19:18  
Автор: Moderator Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > > Через IOCtl может быть такая шняга: винда дает
> писать
> > > только в сектора активного раздела, а начало
> диска(mbr
> > > ты хочешь?) к нему не принадлежат ;)
> > Дык разлочить надо! Ток вот как... 8)
>
> В 98-х можно попробовать написать динамик VxD, который
> позовет сервис другого VxD, например:
>
> Values for Int13 (VxD ID 0020h) service number:
> 00h get version
> 01h device registered
> 02h translate VM interrupt
> 03h hooking BIOS interrupt
> 04h unhooking BIOS interrupt
>
> Вообще-то, когда зовешь, к примеру, ReadFile, вызов
> проходит через кучу VxD-шек, а окончательно сектора читает
> IOS (IOS_Send_Command & IOS_Send_Next_Command). В смысле,
> конечно, не сам читает(у меня читает VxD ESDI через команды
> in/out), но с точки зрения сервиса чтения секторов - именно
> он.
> Также можно попробовать писать через команды in/out из
> того же динамик VxD.
ВА не проще ли вызвать команду "lock" из command.com? :0) Например так(поправьте если неправильно):
execl("command.com", "command.com",
"lock", "y", NULL) ;
1




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


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