|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июл 19, 2004 19:18:15 Берешь какую-то эксипортируюмую ntoskrnl ф-ю, читаеши её код :0) короый у Тебя, ищешь, где она вызывет нужную Тебе ф-ю.треёсишь это SoftIce-ом. И все. Адрес ф-ии получен. Хучь её наздоровье -:))))) |
|
|
Дата: Июл 19, 2004 19:21:36 Всё забываю: посмотри IoSetShareAccess и т.д. или покопайся в FILE_OBJECT, в полях, гду указан ACCESS |
|
|
Дата: Июл 19, 2004 19:44:00 PavPS Всё забываю: посмотри IoSetShareAccess и т.д. или покопайся в FILE_OBJECT, в полях, гду указан ACCESS Посмотрел.В принципе все замешано на похожих вещах (IoCreateFile, ZwCreateFile и т.д.) Как я уже сообщал с доступом к файлу все понятно.Разобрался таки.Сейчас я думаю над тем как завести учет того куда фреймы(страницы в физ. виде) подопытного процеса записываются в файл подкачки (может через Flush).Есть одна штучка за которую можно уцепится (РТЕ,бит Р=0)но там нужно капатся. PavPS Наверно пора новый форум открывать(а то сейчас посмотрел на самое начало и понял что все что спрашивал сделал,а новую проблему изложил выше). А. ж:) |
|
|
Дата: Июл 19, 2004 19:52:11 Всё дампит ф-я FlushSection. Иходник у Тебя есть. А ради прикола, сам можешь сгенерить в-ю PageFault и глянуть какую инфу для этой страницы она даст. Только незнаю приведет ли к чему либо... |
|
|
Дата: Июл 20, 2004 14:01:52 · Поправил: VOOrDOOluck PavPS вчера вечером более пристально посмотрел твои исходники ну просто зашибись.У меня к тебе просьба: если у тебя есть еще такова плана исходники можешь посмотреть есть ли там такие функции:MiGatherPagefilesPages,IoAsynchronousPageWrite,MiModifiedPageW riterWorker,MmAccessFault(насколько я знаю именно они занимаются реальным вытеснением страниц в файл подкачки).Спасибо |
|
|
Дата: Июл 20, 2004 17:28:12 Пока еще не отправил, ео я тя разочарую. Множество из таких ф-й кончаюся так: mov ecx,... mov edx,... call IofCallDriver :^( ....... |
|
|
Дата: Июл 20, 2004 17:45:39 PavPS call IofCallDriver Объясни для слабоумных (я в асме новый).Это значит что все ,к примеру, сводится к работе драйвера (предположим даже файловой системы, а-ля ntfs.sys) и поэтому нифига узнать нельзя будет поскольку работа дров "черный ящик" mov ecx,... mov edx,... Если это существенно,plz объясни. |
|
|
Дата: Июл 20, 2004 18:09:09 Ну чёрный ящик-не черный - SoftIce - свет в окошке :-) На почто всё чем пользую сам. Рули. IofCallDriver - это просто соглашение fastcall. StdCall - это его деградирующий брат IoCallDriver. Есть куча таких пар. Старайся не ставить на них хуки. P.S. а у кого ваще есть инфа по ntfs.sys или фат-32???? буду оччень признателен. |
|
|
Дата: Июл 21, 2004 14:09:39 · Поправил: VOOrDOOluck PavPS Спасибо еще раз.Теперь все может проясниться(надеюсь). IoSynchronousPageWriteThis routine provides a special, fast interface for the Modified Page Writer(MPW) to write pages to the disk quickly and with very little overhead.All of the special handling for this request is recognized by setting the IRP_PAGING_IO flag in the IRP flags word. Короче ,если все правильно то это именно она занимается сбросом страниц в файл подкачки (pagefile.sys также имеет флаг синхронизации).Поскольку она есть в ntoskrnl.inc значит ее можно перехватить. Вот тут у меня пробел знаний.Как перехватывать функции ядра (как я понимаю SetWindowsHook отдыхает).Есть ли какие то стандартные функции или единственный способ это поиск и замена адреса(может можеш указать на какие нибудь источники и сырцы ,на wasm я посмотрю там есть). P.S. Если это все не прокатит то можно попробывать хучить экспортируюмую IoCallDriver(функции ядра которые его вызывают может не експортирюутся но они используют ее и поэтому наверно можно будет на них выйти).Проверяя его вх данные и проверка айсом функций что его вызывают можно выйти на нужную функцию по работе с записью в файл(ее адрес).Таким макаром можно будет наверно даже обрабатывать FileMapping |
|
|
Дата: Июл 21, 2004 21:31:26 · Поправил: PavPS про SetWindowsHook - ваще забудь! Во-первых, IoSynchronousPageWrite она исп-ся дл я работы с MMF, ну _может_ и сфайлом подкачки. Замена-, как я делаю - рою expotr table ->function address ->hook_jmp., потом в процедуре "префикса" выполняю затертые комманды. Но нудно комманды затерть полностью, а не так: у 2-х байтовой комманды затереть первый, а у предыдущей все. Тогда жди #GP. По поводу долгиг разговоров про присутствие страницы в памяти: роешся в таблице страниц - смотриш present_flag, если не учтановлен - ставишь хук на IoReadPage, обращаешься к этой странице - вызавается PageFault, чмотришь с какими пар-ми вызвалась IoReadPage... вроде прозрачно... P.S. Чё работает с файл-мэпом разобрался - вот уже 20 #GP + 5 #PF увидел (на стене листок - я там всё уже давно отмечаю... :))) ) |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.064 |