Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.23;
Скачать: CL | DM;

Вниз

Kaк узнать адреса начала и конца процесса в памяти?   Найти похожие ветки 

 
BaDeVlad   (2003-10-01 18:04) [0]

Есть процесс в памяти, нужно узнать адрес его начала и конца (или адрес области данных). Неужели никто не знает?


 
Игорь Шевченко ©   (2003-10-01 19:10) [1]

Я знаю - адрес его начала равен $00010000. адрес его конца равен $7FFEFFFF, остальная область его недоступна.


 
Digitman ©   (2003-10-02 08:44) [2]


> адрес области данных


что есть "область данных процесса" ?


 
younghacker   (2003-10-02 09:58) [3]

BaDeVlad!

Действительно, задавайте конкретно вопросы...
Какой конец какое начало?
В какой памяти: RAM, виртуальной или в свап файле?
В какой, в конце концов, операционке?

Ну и для чего это узнавать? И кто это должен знать?
Внешний процесс или сам тот который хочет узнать свой адрес?


 
BaDeVlad   (2003-10-02 12:48) [4]

Поясняю подробнее:
1. операционка - смотри в заголовке вопроса.
2. процесс - любой выполняющийся в данный момент процесс или приложение. Где-то в операционке он же должен висеть? Вот и нужно узнать адрес памяти где он начинается, и где заканчивается отведенная под код и данные память.
3. кому нужно знать: моему приложению, которое к искомому процессу никакого отношения не имеет, но должно этот процесс курочить по своему усмотрению.


 
Anatoly Podgoretsky ©   (2003-10-02 12:55) [5]

Значит ты предполагаешь, что он сидит в непрерывной области памяти.


 
Игорь Шевченко ©   (2003-10-02 13:01) [6]

BaDeVlad (02.10.03 12:48)

Джеффри Рихтера читай. Он знает


 
Юрий Зотов ©   (2003-10-02 13:15) [7]

> BaDeVlad

Если Вам известно о том, что такое виртуальное адресное пространство, страничная организация памяти и File Mapping, то Вы должны понимать, что задали бессмысленный вопрос.

Если же нет, то прежде чем работать с памятью напрямую, надо бы все же изучить хотя бы перечисленной минимум.

Любой процесс в Win32 расположен по адресам от $00000000 до $FFFFFFFF. Это и есть его начало и конец, о которых Вы спрашивали. Вот и весь ответ, если кратко.

Из этого диапазана адресов часть недоступна (используется самой системой). Какая именно часть - зависит от версии системы. Для линейки NT - см. Игорь Шевченко © (01.10.03 19:10) [1].

"Курочить" чужой процесс Вы можете с помощью функции WriteProcessMemory, но только если он имеет соответствующие атрибуты. И при этом Вашей программе абсолютно безразлично, подгружена ли в данный момент страница с нужным ей адресом в оперативную память физически, или нет.


 
han_malign ©   (2003-10-02 13:23) [8]

VirtualQuery


 
Digitman ©   (2003-10-02 13:41) [9]

опять "игрульку" курочить будем, видать) ... а-ля "жизни" добавить монстру какому-нить иль еще чего)

с завидной регулярностью вопрос возникает-то !)

нет бы по-честному поиграть, так ведь обязательно "по понятиям" надо !) ... чтобы через одно причинное место гланды программе подправить)))))


 
BaDeVlad   (2003-10-02 18:28) [10]

То есть вы хотите меня убедить, что экзеха в памяти разбросана кусками, как корова наступившая на мину? И никак нельзя узнать адреса начала и конца кода одного определенного модуля?

Насчет догадок о назначении программы - очень верно подмечено, именно "игрульку курочить". Не виноват программист, что ему такую ерундовину заказывают. И вообще, обидеть программиста может каждый, а помочь...


 
McSimm ©   (2003-10-02 18:33) [11]

Помочь программисту, который не читает ответы на свои вопросы или не вдумывается в прочитанное невозможно.


 
Юрий Зотов ©   (2003-10-02 20:41) [12]

> BaDeVlad (02.10.03 18:28) [10]
> вы хотите меня убедить, что экзеха в памяти разбросана кусками,

Видите ли, в чем дело... экзехи ЦЕЛИКОМ в физической памяти ВООБЩЕ нет. Ни кусками, ни сплошняком. Никак.

Читайте ответы. Вдумчиво. Это не стеб и не приколы. Все, чем Вам можно было действительно и по делу помочь, уже сказано и добавить нечего. Если только не писать здесь чуть ли не книгу.

А еще лучше - читайте Рихтера. Там на эту тему сказано все и подробно.


 
Anatoly Podgoretsky ©   (2003-10-02 20:47) [13]

Digitman © (02.10.03 13:41) [9]
Так надо выпускать игры с кнопкой "Вы выиграли"


 
Думкин ©   (2003-10-02 22:08) [14]


> [10] BaDeVlad (02.10.03 18:28)
> Насчет догадок о назначении программы - очень верно подмечено,
> именно "игрульку курочить". Не виноват программист, что
> ему такую ерундовину заказывают.

Угу. Ну не виноват слесарь, что ему все время заказывают сейфы курочить.


 
Игорь Шевченко ©   (2003-10-02 22:14) [15]

Думкин © (02.10.03 22:08)

А нефиг было на слесаря учиться, учился бы на программиста, тоже бы игры курочил, вместо сейфов.


 
Blackman ©   (2003-10-02 22:45) [16]

У памяти нет конца! Женский род во первых, а во вторых тайна сия мраком покрыта. Вернее покрыта дырами и заплатами (задачка такая). Абсолютно верного алгоритма ее распределения нет и быть не может, как доказал мой друг Коля Васильев.



Страницы: 1 вся ветка

Текущий архив: 2003.10.23;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.027 c
14-74394
Nik8.
2003-10-06 13:43
2003.10.23
Дождик


1-74132
Darrin
2003-10-10 17:14
2003.10.23
Что такое Interface?


14-74433
Думкин
2003-10-05 06:25
2003.10.23
С Днем рождения! 5 октября.


11-74101
Kladov
2003-02-09 07:48
2003.10.23
Странности ME


8-74333
Vovan_
2003-06-20 16:05
2003.10.23
Интеграция с Flash MX