Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2010, 06:12   #1
Bad-XxX
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 18
По умолчанию ReadProcessMemory+TMemoryStream

Доброго времени суток.
Не удаётся считать память другого процесса напрямую в TMemoryStream.Memory (не хочется лишний раз плодить буферы, также как и создавать искуственные препятствия, замедляющие работу кода):
Код:
var
  ms: TMemoryStream;
  sz, rw: DWORD;
..................
ms.SetSize(sz);
ms.Position:=0;
ReadProcessMemory(hProcess, Pointer($10000), ms.Memory, sz, rw);
где я ошибся?
Поток создан, с переменными всё в порядке, к процессу успешно подключается и прекрасно считывает данные в буфер/переменную, но в ms.Memory не хочет.

Всем спасибо за проявленный не интерес =) Уже разобрался, оказалось дело в жадности, захотел весь процесс целиком считать, а ReadProcessMemory натыкался на закрытые секции и прекращал работу, не выдавая по указателю даже начала.

Последний раз редактировалось Bad-XxX; 10.10.2010 в 06:40.
Bad-XxX вне форума Ответить с цитированием
Старый 10.10.2010, 16:24   #2
Alter
Старожил
 
Аватар для Alter
 
Регистрация: 06.08.2007
Сообщений: 2,183
По умолчанию

Ну так дампить можно этим, проверка на "секции" имеется
Тык
TFileStream заменить на TMemoryStream, убрать путь сохранения и всё.

Последний раз редактировалось Alter; 10.10.2010 в 16:26.
Alter вне форума Ответить с цитированием
Старый 10.10.2010, 20:11   #3
Bad-XxX
Пользователь
 
Регистрация: 27.09.2010
Сообщений: 18
По умолчанию

Спасибо, сейчас гляну...
UPD: Спасибо, успешно дампует, только конец памяти процесса не находит, но думаю это уже не проблема =) GetProcessMemoryInfo по идее всё решит =) Сначала "немножко" был шокирован дампом памяти процесса в 35мб, занимающего 1,21Гб оперативки =)

Последний раз редактировалось Bad-XxX; 10.10.2010 в 20:57.
Bad-XxX вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить данные из TMemoryStream TwiX Общие вопросы Delphi 3 17.06.2010 14:05
TMemoryStream и Zlib Sanprof Общие вопросы Delphi 13 28.05.2010 16:43
TMemoryStream Владимир1988 Помощь студентам 0 13.02.2010 13:04
Запуск mp3 из TMemoryStream alegz81 Мультимедиа в Delphi 2 01.01.2010 05:51