Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение оперативной Памяти 
:(
    Опции темы
DaGaDa
Дата 10.5.2007, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.5.2007

Репутация: нет
Всего: нет



Собственно сабж..
Задача... зная хендл какого то процесса найти всю принадлежащую к нему память... (все кто хочет кидаться в меня палками со словами readprocessmemory(...) читать ниже)
Вся фишка состоит в том, что мне нужно, не как таковое содежание оперативы, а адреса где располагаются странички занятые процессом, хендл которого я знаю...

так как читать любой кусок памяти я могу, прошу указать в каком направлени мне двигаться дальше...
Ломаю голову над этим уже очень долго..
PM MAIL   Вверх
DronG
Дата 10.5.2007, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 1.2.2007

Репутация: нет
Всего: нет



   В структуре EPROCESS соответсвующей  процессу можно получить доступ к дискрипторам виртуальных адресов, а так же каталогам сраниц,  далее таблицам страниц и в них уже можно будет увидеть реальный логический адресс страниц используемых процессом.  
   В целом очень помогла бы книга М. Русионовича "Внутренне устройство Windows...", могу выслать на мыло электронный вариант. 
PM MAIL   Вверх
W4FhLF
Дата 11.5.2007, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 12
Всего: 121



Зачем это надо?


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
DaGaDa
Дата 11.5.2007, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.5.2007

Репутация: нет
Всего: нет



Цитата(W4FhLF @ 11.5.2007,  14:29)
Зачем это надо?

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

Добавлено через 8 минут и 58 секунд
Цитата(DronG @ 10.5.2007,  15:16)
В структуре EPROCESS соответсвующей  процессу можно получить доступ к дискрипторам виртуальных адресов, а так же каталогам сраниц,  далее таблицам страниц и в них уже можно будет увидеть реальный логический адресс страниц используемых процессом.  

Если есть вожможность отпиши кусочек исходника а то я чего то не пойму как выловить EPROCESS относительно процесса ?
PM MAIL   Вверх
dumb
Дата 11.5.2007, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 27
Всего: 158



DaGaDa, попробуй описать задачу в целом, не употребляя при этом "умных" слов.
PM MAIL   Вверх
Dude03
Дата 11.5.2007, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 257
Регистрация: 28.4.2006

Репутация: 1
Всего: 6



Цитата(DaGaDa @  11.5.2007,  14:38 Найти цитируемый пост)
Нужно найти процесс в системе либо системный процесс и скопировать все его данные... 
Точнее нужны адреса данных.. чтоб когда процесс завершил работу проверить остались ли данные в целом виде или же прога их затерла ... вот такая вот задачка...

Дерзай.
Хотя могу сказать, что странички постепенно обнуляются по мере возможности. С учетом того, что венда(я про NT) соответствует уровню безопастности С2 по классификации США(вроде бы такому), то процесс не может получить в пользование страницы с чем-то от старого процесса, поэтому при создании процесса необходимые ему страницы обнулятся=). Читаем Руссиновичи&Соломона, ну или на худой конец Хелен Кастер
PM MAIL   Вверх
DaGaDa
Дата 12.5.2007, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.5.2007

Репутация: нет
Всего: нет



Цитата(dumb @ 11.5.2007,  18:36)
DaGaDa, попробуй описать задачу в целом, не употребляя при этом "умных" слов.

еще раз... есть запущенное приложение (чужое) мне нужно найти все адреса страничек памяти в которых есть данные этого чужого процесса... Адреса должны быть физическими ... поэтому вариант с readprocessmemory отпадает... Далее спустя некоторое время чужое приложение заканчивает работу... А я помня где распологалось оно ранее проверяю данные которые раньще принадлежали этому процессу... Вроди бы расписал максимально подробно..

Добавлено через 10 минут и 55 секунд
Dude03 Здесь вся ситуация в том что мне нужно узнать узнать остались ли данные после завершения чужго приложения Сразу после его закрытия (чужого приложения)... точнее в тот момент как только приложение будет выгружено почти со 100% вероятностью ОС не успеет переписать странички памяти а если даже и успеет то мне в принципе важно чтоб осталась хотябы одна страница.. 

ЗЫ Я уже очень долго бьюсь по этому поводу и любые болие или менее реальные идею только приветствую... так как у меня они уже (идеи) заканчиваются
PM MAIL   Вверх
Sartorius
Дата 12.5.2007, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1568
Регистрация: 18.7.2006
Где: Ivory tower

Репутация: 1
Всего: 37



http://hi-tech.nsys.by/13/ надеюсь поможет
PM MAIL ICQ   Вверх
Tectoder
Дата 12.5.2007, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 202
Регистрация: 13.3.2007

Репутация: 7
Всего: 8



Цитата(DaGaDa @  12.5.2007,  15:06 Найти цитируемый пост)
есть запущенное приложение (чужое) мне нужно найти все адреса страничек памяти в которых есть данные этого чужого процесса... Адреса должны быть физическими 
А с чего ты взял что все страницы приложения будут иметь физические адресан на указанный момент?
Цитата(DaGaDa @  12.5.2007,  15:06 Найти цитируемый пост)
 Я уже очень долго бьюсь по этому поводу и любые болие или менее реальные идею только приветствую...
Что мешает вызвать PsLookupProcessByProcessId для получения EPROCESS, и оттуда вынуть базу для LDT процесса?
Ты говоришь, что ты пытался чтото сделать, а что ИМЕННО ты пытался сделать?
PM   Вверх
W4FhLF
Дата 12.5.2007, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 12
Всего: 121



Вот в том-то и дело, что многие страницы освободит система, в частности все служебные участки, но при этом многие страницы могут быть и в свопе. Поэтому тут разумное решение найти сложно. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.