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

 WASM Phorum —› WASM.WIN32 —› Доступ к PAGEFILE.SYS через драйвер (*.sys) в NT/2000/XP

. 1 . 2 . 3 . >>

Посл.отвђт Сообщен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-го. Будем смотреть

. 1 . 2 . 3 . >>


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