|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Сен 22, 2004 18:46:06 EPROCESS PagefileUsage? Всем привет помогите пожалуйста разобратся с EPROCESS. В w2k PagefileUsage был в EPROCESS по смещению 0B8h. В wxp PagefileUsage уже содержится в EPROCESS_QUOTA_BLOCK. (Спасибо Four-F) почему запись Process = PsGetCurrentProcess(); quota = Process->QuotaBlock; DbgPrint("PagefileUsage:%lu\n\n",quota->PagefileUsage); выдает туфту (в wxp)4294967295 Если можете помогите. Я хочу получать данные о вирт памяти из EPROCESS но значения несуразные Всем спасибо |
|
|
Дата: Сен 22, 2004 23:10:41 Ты уверен, что описание структуры соответствует версии ОС? |
|
|
Дата: Сен 23, 2004 15:20:54 volodya В том то и весь прикол.Вначале я использовал структуру для w2k но с ней был полный бред.Потом я переделал wxpundoc.inc.С ним результаты получше.Но вот насет PagefileUsage полный облом.В данном случае я надеялся на то что структура из kmdkit17 в принципе реальна. Что делать подскажите.Кто работал с ней в данном вопросе(параметры виртуальной памяти). И может кто нибудь подскажет как можно с помощью softice проверить/изучить/ковырнуть структуру EPROCESS |
|
|
Дата: Сен 23, 2004 17:49:23 [ VOOrDOOluck: Вначале я использовал структуру для w2k но с ней был полный бред. ] Ну так конечна. Она же для w2k. Специально ведь в именах мнклудов указано w2k, xp, net. Даже в разные каталоги запихал. [ VOOrDOOluck: В данном случае я надеялся на то что структура из kmdkit17 в принципе реальна. ] Она и есть реальна. [ VOOrDOOluck: проверить/изучить/ковырнуть структуру EPROCESS ] Проверить никак, а /изучить/ковырнуть никаких проблем. proc и в колонке KPEB будут указатели для EPROCESS. Дальше dd... Я бы вызвал ZwQuerySystemInformation с классом SystemProcessesAndThreadsInformation. И посмотрел поле SYSTEM_PROCESSES.VmCounters. typedef struct _VM_COUNTERS {
ULONG PeakVirtualSize;
ULONG VirtualSize;
ULONG PageFaultCount;
ULONG PeakWorkingSetSize;
ULONG WorkingSetSize;
ULONG QuotaPeakPagedPoolUsage;
ULONG QuotaPagedPoolUsage;
ULONG QuotaPeakNonPagedPoolUsage;
ULONG QuotaNonPagedPoolUsage;
ULONG PagefileUsage;
ULONG PeakPagefileUsage;
}VM_COUNTERS,*PVM_COUNTERS;
А потом посмотрел откуда оно берется. |
|
|
Дата: Сен 23, 2004 18:41:31 Four-F Она и есть реальна. Интересно чем это подтверждается nt = ZwQuerySystemInformation(SystemProcessesAndThreadsInformation,\ &sp,sizeof(SYSTEM_PROCESSES),0); if (!NT_SUCCESS(nt)) { DbgPrint("VirtualSize:%lu\nPeakVirtualSize:%lu\n",\ sp.VmCounters.VirtualSize,sp.VmCounters.PeakVirtualSize); DbgPr int("HandleCount:%lu\n",sp.HandleCount); Смех и грех в том что кроме нулей(большинство)я больше ничего не вижу.Я что чтото не так делаю. То что естЬ функции это хорошо.Всю инфу они сами берут из EPROCESS. Но интересно почему когда я ее от туда же хочу взять получается фигня.Фигня получается и при вызове функций(но с этим я еще могу тупить) Four-FПопробуйте.Мне интересно у вас работает(достать PagefileUsage из EPROCESS хр) |
|
|
Дата: Сен 23, 2004 19:04:47 Four-F Нарастает у меня подозрение что "А может быть вся фигня в том что в тех самых специально разделенных папках структуры EPROCESS_QUOTA_BLOCK специально для хр нету и нужно юзать из nt в которых и так все по другому". P.S.Никакой насмешки просто это реально факт на который я хотел бы услышать по возможности ответ |
|
|
Дата: Сен 23, 2004 19:10:46 [ VOOrDOOluck: Интересно чем это подтверждается ] Тем, что она вытащена из ntoskrnl.pdb. Пдбэшка была от xp no sp, так что теоритически в сервис паках может отличаться, но вряд ли. [ VOOrDOOluck: Смех и грех в том что кроме нулей(большинство)я больше ничего не вижу.Я что чтото не так делаю. ] Возможно какой-нить бит из NtGlobalFlags надо включить. [ VOOrDOOluck: Попробуйте. ] Щас некогда. Может на днях попробую. |
|
|
Дата: Сен 23, 2004 19:20:41 Four-F Ну ладно насчет попробуйте можно забыть. Еще один вопрос.После серий dd в айсе при просмотре EPROCESS_QUOTA_BLOCK получается что только PagefileUsage забит ахинеей ffffffff.Остальные смотрятся в принципе симпатично.Что это может значить на ваш взгляд.вот это я еще буду проверять а то инфы ноль. P.S.В двух словах можно сказать какой именно NtGlobalFlags может так портить картину. P.S.S.она вытащена из ntoskrnl.pdb КРУТО |
|
|
Дата: Сен 23, 2004 22:03:17 VOOrDOOluck Возьми ntoskrnl.pdb для своей ОС. Возьми pdbdump с сайта. Возьми DIA SDK от MS. Скомпили утилиту. Пропусти pdb через нее. И будет тебе счастье. |
|
|
Дата: Сен 24, 2004 00:23:57 [ VOOrDOOluck: Смех и грех в том что кроме нулей(большинство)я больше ничего не вижу.Я что чтото не так делаю. ] Щас глянул под w2k. Всё тянется. Нули только для первых двух процессов (id=0 и 8). Для остальных какие-то осмысленные цифры имеются. Инфа тянется как раз из EPROCESS_QUOTA_BLOCK. Для уточнения QuotaPeakPoolUsage DWORD 2 dup(?) ; 08h QuotaPoolUsage DWORD 2 dup(?) ; 10h QuotaPoolLimit DWORD 2 dup(?) ; 18h это на самом деле массивы из 2 элементов: первый для NonPagedPool, второй - PagedPool. Не вижу никаких предпосылок к тому, чтобы под ХР это не работало. Так что в NtGlobalFlags ничего менять не надо. |
|
|
Дата: Сен 27, 2004 18:28:04 volodya Как все просто оказывается Ж:) Будем дальше разбираться |
|
|
Дата: Окт 1, 2004 17:30:37 volodya Спасай.Решил попробовать твой вариант.Но на фразе "скомпили утилиту" застрял.Там проект из .нет а с ним я никогда не работал и ничего не получается.В вс гон на хедер для мидл.Что делать. Если утилита сампле идет как обобщенный с достаточной функциональностью можеш прислать? |
|
|
Дата: Окт 1, 2004 18:30:11 О боже, за что мне такое наказание... Занят я. На выходных посмотрю... |
|
|
Дата: Окт 2, 2004 12:51:25 VOOrDOOluck, там ещё основы COM надо знать. Помнится я с нуля разобрался за 2-3 дня с СOM + DIA SDK. Ещё через 2-3 дня написал простенький парсер PDB, который выдавал структуры в синтаксисе masm. Точнее полуфабрикаты. Там много гемора было с обработкой вложенных union'ов и битовых полей, поэтому я это похерил и руками добивал. Так многие определения структур из KmdKit сделаны. Сразу говорю, исходник не дам... стесняюсь :) Писалось в попыхах и лишь бы заработало. Вобщем, короче, разобраться можно за разумное время, надо только его найти. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.080 |