|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июл 12, 2004 18:36:49 Как получить доступ к PAGEFILE.SYS через драйвер. Напрямую это невозможно(sharing violation). На этом сайте есть прога Readswap которая получает доступ через VxD драйвер и вызов vmm сервисов и функций. Но VxD под NT не работают по идее вообще. Как реализовать подобный доступ в 2000 через *.sys и можно ли в *.sys использовать vmm сервисы? Насчет вообще: Айселон написал что VxD в NT не работают, но у меня в \систем\ они есть(аж два). Значит как то можно запустить. Заранее всем благодарен |
|
|
Дата: Июл 13, 2004 10:02:05 Чисто ради интереса: зачем? |
|
|
Дата: Июл 13, 2004 14:25:04 Я студент которому дали задание отслеживать предположим работу какой то программы с виртуальной памятью и подчищать ее (то бишь все с ней связанное). Поскольку при нехватке оперативы вся инфа виртуальной памяти сбрасывается в файл подкачки то сама очистка а-ля VirtualFree ничего по сути не даст. Поэтому нужно добратся до хранилища (pagefile.sys). Мне это задание дали с целью защиты информации. Но возможности, после первого барьера, для каждого будут безграничны. PavPS: Чисто ради интереса: ты знаеш как? |
|
|
Дата: Июл 13, 2004 15:49:57 Лучше запретить кэширование страниц :) т.е. запретить файл подкачки создавать, если оперативы много...да и работа быстрее немного будет |
|
|
Дата: Июл 13, 2004 16:09:34 DaemoniacaL Суть не в избавлении от файла подкачки, а в работе с ним. Ты же не даеш гарантий что на всех компах достаточно оперативы чтобы работать без файла подкачки. Кроме того, запрет запретом но винда без работы с файлом подкачки - помойму это гон. Надеюсь я тебя убедил что не все так сладко Ж:=) |
|
|
Дата: Июл 13, 2004 16:50:40 Не имел такой задачи, но я думаю начал бы с того, что 1)добрался бы до object table и поправил бы флаги доступа к файлу (kernel mode), если это снимет запрет доступа или 2)нчал бы изучать или хучить такие ф-ии, как:MiReleasePageFileSpace,MiFlushPteList,MiFlushAllPages и т.д. Вот. |
|
|
Дата: Июл 13, 2004 17:17:46 PavPS Насчет функций я посмотрю, а вот object table: что за таблица. Это не наподобие ObjectAttributes в CreateFile. Если да (или нет) то как до него вообще можно добратся. В принципе проблема глобально стоит так:получить HANDLE PAGEFILE.SYS. Насколько я знаю все HANDLE-ы являются некиими смещениями в таблице то ли процеса то ли системы (точно не помню надо посмотреть в Рихтере, он про это писал).Так вот по этому смещению находятся разные свойства объектов ядра. Может можно выйти как то на эту таблицу в памяти и стырить от туда этот (и не только :))) )HANDLE ? |
|
|
Дата: Июл 13, 2004 17:25:52 Джеффри РИХТЕР ГЛАВА 3 Объекты ядра Таблица описателей объектов ядра При инициализации процесса система создает в нем таблицу описателей, используемую только для объектов ядра. Сведения о структуре этой таблицы и управлении ею незадокументированы Насчет таблицы может кто-то знает |
|
|
Дата: Июл 13, 2004 19:40:43 PavPS MiReleasePageFileSpace,MiFlushPteList,MiFlushAllPages Чето в моем DDK 2000 их нету вообще. Зато есть ММ**** но не такого плана. Функции Mi*** используются для инициализации при работе менеджера памяти. Они помойму недокументированные. Или нет |
|
|
Дата: Июл 13, 2004 20:30:32 1)Про object table хорошо написано у Свена Шрайбера. 2) Про MiReleasePageFileSpace - конечно недокументированы, и не в DDK они. И экспортов из ntoskrnl тоже нет. Они вызываются некоторыми ф-ями, которые экспортирует ntoskrnl - просто, как мне кожется, культурно получить Твой хэндл - несудьба, а эти ф-ии спускаются на элементарный уровень без наворотов. Там и можно посмотреть на основ ную концепцию работы с PageFile. Хотя 1-й способ, более документирован и логичен. З.Ы. Сугубо моё мнение... |
|
|
Дата: Июл 14, 2004 14:56:02 PavPS Так можно получить указатель на базу данных описателей (естественно, в режиме ядра). mov eax,large fs:124h;Got current thread body pointer mov eax,[eax+44h]; Got current process body pointer mov ecx,[eax+104h]; Got handle_db header pointer ! Что скажеш насчет этого?(выцепил в инете) Про культурное сотрудничество с Microsoft здесь и не пахнет. Какого черта она вообще отрезала доступ. В 98 можно было подобратся через PageFile_Read_Or_Write а в 2000 шиш. В Linux-е вообще спокойно файл подкачки открывается без матов. |
|
|
Дата: Июл 14, 2004 17:28:55 Впринципе, ничё удивительного. Всё соответствует хорошо известным структурам. Кстати, черкни сюда свой e-mail и я могу скинуть Тебе headers & includes от Шрайбера, и ещё парочку инклудов. А [FS:0] - это счастье программисту... |
|
|
Дата: Июл 14, 2004 18:57:57 PavPS Впринципе, ничё удивительного. Всё соответствует хорошо известным структурам Это ты насчет 3-х строк или насчет шиши Ж:)) А [FS:0] - это счастье программисту Я новенький в этом низкоуровневом мире. Объясни пожалуйста. Можно ли узнать твое мнение насчет 3-х строк. [email=]amid_aries@front.ru[/email] За все что скинеш заранее большая благодарность (мне и так приятно что хоть кто то опытнее отозвался) VOOrDOOluck Видел твою идею (проблему) на форуме. Очень интересно. |
|
|
Дата: Июл 14, 2004 19:46:10 VOOrDOOluck? если ты ешё не решил проблему с драйвером, то на этот счёт есть очень интересное решение некого Kevin Zheng (Zheng Hongwen)- callgate.zip(есть на flat assembler forum), или могу свои наработки скинуть (FASM). |
|
|
Дата: Июл 14, 2004 22:12:24 ProgramMan Мое мыло amid_aries@front.ru Можеш кинуть туда нароботки и если есть что нибудь интересное то пожалуйста. Заранее благодарен callgate - еще не смотрел но насколько я знаю такая фигня позволяет вызывать функции 0 кольца из 3-го. Будем смотреть |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.077 |