· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Поймать обращение к FAT | Диску: КАК ?

Посл.отвђт Сообщенiе


Дата: Авг 3, 2004 03:16:32

Всем Привет!

Собственно сабж... уже измучился. Рыл по fastfat/udfs - не помогает. Можно BPX на:
Devices->fat->driver_object->irp_mj_read(write)->
Это фиговина ловится при чтении ч/з NtReadFile.
А вот при CreateFileMapping->mapviewoffile ничё не помогает - никак немогу поймать обращение к диску.
Даже так:
@IofCallDriver.jmp_oper->... bpx ... if (esi==Devices->harddiskvolume1->driver_object) - так ловится опять же всё кроме файловых отображений.
Короче плиз хелппп!

В инете читал, что есть в DDK какие-то примеры про работу с FastFat(если это и поможет) мож кто кинет сюда??? или на майл: PavPS@List.Ru

Заранее благодарен --==PPS==--

З.Ы. Мож кто уж занимался, хоть советом/ссылкой/etc помогите!!!


Дата: Авг 3, 2004 18:11:49

По тем сырцам что ты мне давал помойму все происходит через "IOasync/sync_запись_в_файл".async айсом не ловится наверно нету экспорта но ловит синк_запись.Ловиш эти функции и знаеш когда происходит обращение к диску.Но вот как узнать из них к какому они процесу относятся (или образу?)

P.S.Ко всем. Как можно переловить не экспортируемые функции (желательно ссылки или примеры )спасибо


Дата: Авг 3, 2004 19:22:55

Вообще, как пишется в литературе, в 2000 и в XP/NT все эти операции асинхронны и, например IoBuildAsynchronousFsdRequest@24 тоже молчит... ну не ловит и всё. Мож кто доку по драйверам FS знает ?...


Дата: Авг 3, 2004 20:49:51

[ PavPS: есть в DDK какие-то примеры про работу с FastFat(если это и поможет) мож кто кинет сюда??? ]

Там почти метр получается. Внутрь никогда не залезал. Вечером/ночью волью на мыло. Ещё попробуй IrpTracker то ли на osr.com, то ли на osronline.com. Работает только под ХР+. Ещё обрати внимание на структуру FAST_IO_DISPATCH и поле DriverObject->FastIoDispatch.

А не быстрее исходники глянуть?


Дата: Авг 3, 2004 22:19:59

2 Four-F

Спасибо, уважаемый!

>>"А не быстрее исходники глянуть?"
Ага! Всё перерыл (Folders: fsrec,fsrtl,fstub,udfs), тока вот ненашел ничерта. Весь этот объем в какую-то кашу превратился. Был бы благодарен, если бы Вы мож пожсказали куда глянуть (иль мож просто нет таких исходников у меня :( . был бы благодарен за них (извиняюсь за наглость)). Всё чё понял, так вот что fastfas.sys - его исходников там нет... (чувствую Беспощадный Даос меня щаз "обрежет" за такую откровенность). Да и опять же эта путаница по поводу кэш-менеджера - штука мож и хорошая, но вот такие выкрутасы...никак к сути не подойдет. Извиняйте за тупость, но если там есть работа с вн.устройствами, то хотябы HAL пришвартовали там что-ли, или IN/OUT операнды должны быть...но их там нет...
За "Залью на мыло" - заранее примного благодарен.
По поводу FAST_IO_DISPATCH - гляну, хотя большенство CallDriver - запросов в IRP несут IOCTL_READ_DATA.


Дата: Авг 4, 2004 02:32:10

Так для быстрого в/в IRP вообще не шлется. Я не знаю как там для fastfat, но может ты именно поэтому ничего поймать не можешь. Вот цитата из ДДК.

"...Windows NT’s support for memory-mapped files. Supporting both read/write access and memory mapped file access to the same data, requires either a high-cost (and hence low performance), cache-consistency scheme or the scheme used by NT—where all data is stored in the virtual memory system. This ensures that data is always consistent—even between two programs accessing the same data using different access techniques.

This tight integration means that both read and write operations can often be satisfied from this cached data. In the search for performance, then, this fact can be exploited for read and write by simply calling a specialized routine which moves data from the VM cache into the user’s memory, or vice versa. This eliminates the need to allocate an I/O request packet since the operation can be satisfied synchronously and need not call into lower drivers. It is this fundamental model which is realized by the fast I/O operations."


Дата: Авг 4, 2004 02:43:02

fast I/O operations & FAST_IO_DISPATCH - буду смотреть. Пока еще этого не изучал, но
simply calling a specialized routine which moves data from the VM cache into the user’s memory, or vice versa
А откуда и кто читает с диска в кэш?
Еще раз спасибо. Пойду читать/SoftIce-ить по этой теме...


Дата: Авг 6, 2004 11:02:47

PavPS


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

а ещё есть посмотри форматы ирп пакетов, к примеру ф книжке Солдатова, и внимательно почитай Руссиновича главу про системные кэши и вообще кэширование, это где то рядом с файлами глава находится.


Дата: Авг 6, 2004 19:31:37

[ CARDINAL: ...у него даже исходники на сайте топчаца и всегда там были... ]

Уже почти два года, как их не стало. А вот на wasm найти можно ;)


Дата: Авг 11, 2004 22:02:59

2 CARDINAL

Уважаемый, ОЧЧЕнь благодарю за FileMon, действительно мой баг, что этого не учел. Это действительно всё чё мне надо слихвой. CARDINAL,но не надо нервничать то так...

2 Four-F
Да.. точно исходники здесь на сайте только для более старой версии, чем на SysInternals, но аффигенная находка. Прямо памятник надо поставить...

Всем огромнейшее спасибо!


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.054