Автор
|
Тема: Произвольное чтение
|
Susik |
опубликован 20-07-2001 11:15 MSK
ВСем привет. Не знаю как сделать в винде произвольное (т.е. по секторам) чтение (и по возможности запись) с диска или памяти. Кто-нить может помочь?
|
Kosha
|
опубликован 21-07-2001 19:47 MSK
Учитель конечно лопух, но по-моему тут надо VXD писать... Поправьте если не прав...А вообще, много народу это делало... Я думаю просто покопаться надо в инете... Вот первый пришедший в голову пример: NDD,ScanDisk и Speeddisk это делают. Как ScanDisk - не знаю, а у Symantec наверняка своя DLL есть...
|
server_mouse
|
опубликован 21-07-2001 20:39 MSK
Ну есть на самом деле логический диск и физический. Если тебе надо писать в MBR например, то без VxD не обойтись. А по логическому кажись можно и так..., DLL максимум. |
Susik
|
опубликован 23-07-2001 13:25 MSK
Мне вообще физическое чтение интересно. Если надо вхд писать, то я вообще не умелец писать дрова. :) Может кто научит? |
server_mouse
|
опубликован 23-07-2001 23:55 MSK
Если всё под 9х то можно и без VxD. Получаешь 0-й уровень привелегий (извесная дыра, которую использует в частности WinCIH) и юзаешь ф-ции WriteAbsoluteDisk и eadAbsoluteDisk. Ф-ции вроде IFS, хотя до конца не уверен... Да какая разница! Юзай и всё! |
server_mouse
|
опубликован 23-07-2001 23:57 MSK
Да, ещё. Ежели надумаешь VxD писать -- мыль. некоторая инфа имеет место быть. ;-)) |
Susik
|
опубликован 24-07-2001 16:34 MSK
Допустим, с физическим чтением с диска я разобрался (посредством DeviceIoControl() с вызовом Int21h Function 7305h Ext_ABSDiskReadWrite (FAT32)).Теперь вопрос только в том, как читать из памяти. Здесь некоторые говорят, что необходимы дрова. Так ли это? Если да - то научите, что и как надо делать. :) |
Ritchie
|
опубликован 06-02-2001 20:48 MSK
to server_mouse: Sorry за чайниковый вопрос, но как все-таки в нулевой ринг попасть, а? И поможет ли это?to Susik: ну, вообще-то это не совсем решение проблемы, во всяком случае, моей. Мне нужно читать с винта с не-фатом, а этого так просто не сделать. :-( Кстати, если найдешь, как читать из памяти, кинь, пожалуйста. |
Susik
|
опубликован 06-02-2001 21:47 MSK
Я вообще не пробовал, как там читать с не_фатом, но с фатом у меня читается все достаточно нормально: и с винта, и с дискетки. :) А! Дискетку переписывал много раз всякими своими штуками (допустим просто текст какой-нить), там уже фатом давно и не пахло (писал в область его расположения), а читалось, в общем-то, как и должно читаться.А что такое нулевой ринг? И зачем он нужен? |
Ritchie
|
опубликован 07-02-2001 04:36 MSK
Хм-хм, и чем читал? В смысле с дискеты, где фатом и не пахло? Просто дело в том, что тот же vwin32 прекрасно эмулирует 13h для дискеты, но совершенно не хочет его использовать для винта, даже если на тот поставить physical lock самого понтового уровня (я про нулевой, lock level 0 - это виндовская штука для защиты во время проведения, скажем, дефрагментации, винта от всех других приложений). Может, правда, это я чего не так сделал, но пока не пойму, чего.А нулевой ринг - это ring 0, как он называется в виндах. На самом деле в 386 камне было аппаратно реализовано наличие разных привилегий. Собственно, существуют четыре положения процессора, от 0 до 3. То, что идет при нуле, обладает максимальными правами, у нее есть доступ ко всему (потому что если у нее нет, то вообще ни у кого не будет). А если ты сидишь на тройке, то почти ничего сделать напрямую не можешь. В виндах в 0 сидят VMM, распределяющий память, и чего-то еще важное, забыл что. А все остальные, включая ядро, не говоря уже о всяких там пользвательских прогах, сидят в ring 3. Откуда посылают все на обработку тем, кто сидит в нуле. Другое дело, что, скажем, если ты драйвер, то выходить в нулевое кольцо, скорее всего, все равно придется. Я страшно сумбурно об этом рассказываю, но если чего еще интересно, спрашивай, а то посмотри какую-нибудь книжку по ASM'у про архитектуру 386, въехать поначалу будет трудно, но иметь обо всех подобных штуках представление вполне себе полезно :-) Про реализацию колец в виндах можно тот же MSDN посмотреть. |
Susik
|
опубликован 07-02-2001 16:47 MSK
Пасиб. А то че-то пишут тут иногда про кольца, а я ваще темный... |
purpe
|
опубликован 07-02-2001 19:06 MSK
http://www.sources.ru/asm/get_ring_0_privilege.shtml
|
Susik
|
опубликован 07-02-2001 21:34 MSK
Пасиба тоже. :) Как-нить поэкспериментирую. |