|
Вопрос # 4 296/ вопрос открыт / |
|
Всем привет!!!
Мой вопрос заключается в следующем:
Я пытаюсь слить из памяти в файл содержимое главного процесса чужого приложения. С доступом к памяти разобрался, но возникла проблема: я не знаю как определить размер памяти, которую занимет процесс.
Возможно ктото чемто подобным занимался и знает как можно получить количество байт, которые занимает процес в виртуальной памяти.
Приложение: Переключить в обычный режим- var
- Form1: TForm1;
- OperaHandl:hwnd;
- ProcessHandle:THANDLE;
- ProcessID:DWORD;
- BytsR: Cardinal;
-
- MyFile: File of byte;
- NumWritten:Integer;
-
- procedure TForm1.Button1Click(Sender: TObject);
- var
- Buf:byte;
- begin
- Smeshenie:=0;
- OperaHandl:=FindWindow(nil,'Opera');
- if OperaHandl<>0 Then
-
-
- GetWindowThreadProcessId(OperaHandl,@ProcessId);
- if ProcessId<>0 Then
-
- ProcessHandle:=OpenProcess(PROCESS_ALL_ACCESS,TRUE,ProcessId);
- if ProcessHandle<>null Then
-
- AssignFile(MyFile,'Slitok.mydat');
- Rewrite(MyFile);
-
-
- ReadProcessMemory(ProcessHandle,Pointer(Smeshenie),@Buf,Cardinal(1),BytsR);
- BlockWrite(MyFile,Buf,BytsR,NumWritten);
-
- End;
- End;
- End;
- end;
 |
Вопрос задал: SOA (статус: Посетитель)
Вопрос отправлен: 7 июня 2010, 14:55
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
Короче, вот тебе исходники двух программ: первая - программа-цель (Target.dpr), её препарирует втора прога (MainApp.dpr), т.е. дампит в стрим, а затем ищет в нём ячейку памяти с заданным значением. К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 7 июня 2010, 16:11
Оценка за ответ: 5
Комментарий к оценке: За проги конечно спасибо, но мне бы помогла и одна функция VirtualQueryEx, собственно то что и явилось решением.
|
Мини-форум вопроса
Всего сообщений: 21; последнее сообщение — 7 июня 2010, 16:58; участников в обсуждении: 4.
Страницы: [« Предыдущая] [1] [2]
|
SOA (статус: Посетитель), 7 июня 2010, 16:58 [#21]:
Еще кажется можно использовать функцию LocalSize для определения размера процесса в памяти.
|
Страницы: [« Предыдущая] [1] [2]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|