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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2013, 12:41   #1
RibGeDx
Пользователь
 
Аватар для RibGeDx
 
Регистрация: 10.05.2012
Сообщений: 16
По умолчанию Получение информации о процессе

Всем привет! Нужно получить BaseAddress и Size процесса. Т.е. MEMORY_BASIC_INFORMATION. Но вот что то нифига не получается (

Вот код:
Код:
		MEMORY_BASIC_INFORMATION mbi;
		memset(&mbi, 0, sizeof(MEMORY_BASIC_INFORMATION));

		DWORD dwOldProtect = 0;
		HMODULE hMod;

		if(!VirtualProtect(pi.hProcess, sizeof(mbi), PAGE_READWRITE, &dwOldProtect))
			printf("protect error");

		if(VirtualQuery(pi.hProcess, &mbi, sizeof(MEMORY_BASIC_INFORMATION)) != 0)
			hMod = (HMODULE)mbi.AllocationBase;
		else
			printf("vmquery error");

		printf("mbi.AllocationBase= ", hMod);

		return 0;
который ступорится уже на VirtualProtect. Что не так?

P.S. решено.

Код:
		HMODULE hMod = NULL;
		HANDLE hThread = CreateRemoteThread(pi.hProcess, NULL, 0, (LPTHREAD_START_ROUTINE)GetModuleHandle, NULL, 0, NULL);
		WaitForSingleObject(hThread, INFINITE);
		GetExitCodeThread(hThread, (LPDWORD)&hMod);
		CloseHandle(hThread);

		MEMORY_BASIC_INFORMATION mbi;
		VirtualQueryEx(pi.hProcess, (LPCVOID)hMod, &mbi, sizeof(MEMORY_BASIC_INFORMATION));

		printf("mbi.BaseAddress = %X", mbi.BaseAddress);

Последний раз редактировалось RibGeDx; 13.04.2013 в 15:48.
RibGeDx вне форума Ответить с цитированием
Старый 13.04.2013, 13:07   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Что значит стопорится?
Что выдает GetLastError()?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.04.2013, 14:09   #3
Ezhik Kihze
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 639
По умолчанию

Вы доку читали?

Цитата:
Changes the protection on a region of committed pages in the virtual address space of the calling process.

To change the access protection of any process, use the VirtualProtectEx function.
ICQ: 677936656 Gmail: ekEmbed@gmail.com
Ezhik Kihze вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
c++ получение информации из файла NinjaNoob Помощь студентам 9 27.01.2013 23:52
Получение информации из памяти 9esa Помощь студентам 3 26.03.2012 02:12
Получение информации о принтере mutabor Общие вопросы Delphi 4 17.05.2011 16:37
Получение информации из мр3 GAGARIN-NEW Мультимедиа в Delphi 2 24.03.2008 15:19
Получение информации о классе Sibedir Общие вопросы Delphi 7 07.12.2007 14:37