Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.10.23;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.009 c
7-74495
NicolA
2003-08-11 12:09
2003.10.23
Как выставить нестандартную скорость обмена СОМ-порта ?


3-74013
P0tia
2003-10-03 13:07
2003.10.23
Сумирование строк


14-74434
Zubrik
2003-10-04 10:47
2003.10.23
Где можно решить задачи по физике


4-74526
DelBoy
2003-08-15 21:56
2003.10.23
Как ввести текст в


1-74252
avkniazev
2003-10-13 13:29
2003.10.23
Поиск слова в RichEdit





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский