Форум: "WinAPI";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
ВнизКонец процесса занимаемого в памяти Найти похожие ветки
← →
-=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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.12.05;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.037 c