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

Вниз

Конец процесса занимаемого в памяти   Найти похожие ветки 

 
-=SS=- ©   (2004-10-18 16:23) [0]

Добрый уважаемые експерты :) !!!
Есть маленькая проблема.
Сщитываем процес Функцией ReadProcessMemory . Базовый адресс понятен и для всё виндовых приложений он одинаковый, а вот где он заканчивается ? Или надо считывать 4гб данных ?
Зараннее благодарен !


 
VMcL ©   (2004-10-18 16:46) [1]

VirtualQueryEx()


 
-=SS=- ©   (2004-10-18 17:01) [2]

Спасибо за ответ VMcL ©   (18.10.04 16:46) [1] Но у меня почему - то не работает


 
-=SS=- ©   (2004-10-18 17:01) [3]

Удалено модератором
Примечание: Дубль


 
Игорь Шевченко ©   (2004-10-18 17:09) [4]


> Базовый адресс понятен и для всё виндовых приложений он
> одинаковый


Не для всех


> а вот где он заканчивается ?


Кто "он" ? Образ приложения, образ DLL"ей, загруженных этим приложением ?


 
-=SS=- ©   (2004-10-18 17:23) [5]

> Кто "он" ? Образ приложения, образ DLL"ей, загруженных этим
> приложением ?
Екжешник.
Надо коечто найти и прочитать в памяти этого екжешника


 
Игорь Шевченко ©   (2004-10-18 17:25) [6]

-=SS=- ©   (18.10.04 17:23) [5]

Знаешь базовый адрес, знаешь размер - трудно подсчитать конечный адрес ? Можешь брать размер EXEшника, вряд ли сильно ошибешься, раз уж с VirtualQuery(Ex) не дружишь.


 
-=SS=- ©   (2004-10-18 17:51) [7]

А если Екжешник запакованый ?
> знаешь размер
   не знаю. Как получить размер екжешника в памяти ?


 
Игорь Шевченко ©   (2004-10-18 17:59) [8]

-=SS=- ©   (18.10.04 17:51) [7]


>   не знаю. Как получить размер екжешника в памяти ?


Для запакованного - мучайся сам или смотри, как это делают распаковщики. Или читай про VirtualQueryEx


 
-=SS=- ©   (2004-10-18 18:09) [9]

Var
 B:_MEMORY_BASIC_INFORMATION;
begin
  VirtualQueryEx(GetCurrentProcess,Ptr($400000),B,Sizeof(B))

Что я не так делаю ?


 
VMcL ©   (2004-10-19 10:15) [10]

>>-=SS=- ©  (18.10.04 18:09) [9]

>Что я не так делаю ?

Не уважаешь своих собеседников.


 
-=SS=- ©   (2004-10-19 10:24) [11]

Почему ???????????????????
Я просто спрашиваю совета !!!
Вроде всё правильно но значеня возврашает одни и теже не зависимо от екжешника


 
Игорь Шевченко ©   (2004-10-19 10:38) [12]

-=SS=- ©   (19.10.04 10:24) [11]

Найди книгу Джеффри Рихтера "Создание эффективных Win32-приложений", у него есть пример работы с этой функцией (с картинками).


 
-=SS=- ©   (2004-10-19 10:56) [13]

Спасибо за ссылочку. Буду разбиратся

PS: И ты сразу бы сказал что ты выложил её на http://anatolix.naumen.ru/win32books.htm


 
Игорь Шевченко ©   (2004-10-19 11:03) [14]


> И ты сразу бы сказал что ты выложил её на


?????


 
-=SS=- ©   (2004-10-19 11:11) [15]

А .. блин на Имя не посмотрел. Извени


 
VMcL ©   (2004-10-19 23:08) [16]

>>-=SS=- ©  (19.10.04 10:24) [11]

>Почему ???????????????????

Потому что, не знаю как кто, а я не телепат и угадывать, что именно не работает, не умею. К тому же VirtualQueryEx() - это функция.

Кратко алгоритм
В цикле крутишь:
if VirtualQueryEx(GetCurrentProcess, CurAddr, B, SizeOf(B)) <> SizeOf(B) then Break;

Для первого вызова CurAddr := nil;
Для каждого последующего вызова Inc(PAnsiChar(CurAddr), B.RegionSize);


 
-=SS=- ©   (2004-10-20 09:50) [17]

Ага понятно спасибо !!!!!
Тойсть если VirtualQueryEx<> SizeOf(B) то занимаемая процессом память закончилась ?

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


 
SLV   (2004-10-23 10:25) [18]

смотри PSAPI (GetProcessInformation) или PIMAGENTHEADERS.OptionalHeader.SizeOfImage...


 
VMcL ©   (2004-10-23 14:48) [19]

>>SLV  (23.10.04 10:25) [18]

Иногда лучше жевать...



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

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

Наверх




Память: 0.48 MB
Время: 0.038 c
1-1100899112
mcm
2004-11-20 00:18
2004.12.05
Работа с регистром


1-1101300025
Pretender
2004-11-24 15:40
2004.12.05
Подсчет символов


4-1098353308
Specialist
2004-10-21 14:08
2004.12.05
как можно пустить процесс как службу...?


3-1099501529
Vova
2004-11-03 20:05
2004.12.05
Добавление записей в таблицу с несколькими одинаково заполнеными


1-1101137093
hgd
2004-11-22 18:24
2004.12.05
Подскажите





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский