Главная страница
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.51 MB
Время: 0.043 c
1-1100793569
kaktus
2004-11-18 18:59
2004.12.05
Кто рабол со словарями Word?


6-1095793373
ildar_kh
2004-09-21 23:02
2004.12.05
Запуск фрейма..


1-1100081028
Виктор
2004-11-10 13:03
2004.12.05
Вызов функции в основной форме из BPL


1-1100784772
aglar
2004-11-18 16:32
2004.12.05
Как запустить exe файл?


1-1100687999
Chuk
2004-11-17 13:39
2004.12.05
Туплю по заголовку формы