Как вывести карту памяти процесса и информацию о карте региона памяти в c#? Суть вопроса собственно в заголовке. Что сделано сейчас: подключен к проекту kernel32, пока все что из полезного удалось вывести:public struct MEMORY_BASIC_INFORMATION
{
public IntPtr BaseAddress;
public IntPtr AllocationBase;
public int AllocationProtect;
public IntPtr RegionSize;
public int State;
public int Protect;
public int Type;
}
Есть ли еще какая-нибудь структура, с помощью которой можно узнать количество блоков памяти и информацию о правах доступа к странице?
В случае, если вобще не то делаю, очень хотелось бы узнать как тогда стоит.

21 Авг 2019 в 06:54
201 +1
0
Ответы
1

Для получения информации о карте памяти процесса в C# вы можете использовать функцию VirtualQueryEx из kernel32.dll, как показано ниже:

[DllImport("kernel32.dll")]
public static extern int VirtualQueryEx(IntPtr hProcess, IntPtr lpAddress, out MEMORY_BASIC_INFORMATION lpBuffer, uint dwLength);
public static void GetMemoryMap(IntPtr processHandle)
{
IntPtr address = IntPtr.Zero;
MEMORY_BASIC_INFORMATION memInfo = new MEMORY_BASIC_INFORMATION();
while (VirtualQueryEx(processHandle, address, out memInfo, (uint)Marshal.SizeOf(typeof(MEMORY_BASIC_INFORMATION))) != 0)
{
Console.WriteLine("Base Address: " + memInfo.BaseAddress);
Console.WriteLine("Region Size: " + memInfo.RegionSize);
address = new IntPtr(memInfo.BaseAddress.ToInt64() + memInfo.RegionSize.ToInt64());
}
}

Вы также можете использовать структуру MEMORY_BASIC_INFORMATION для получения информации о правах доступа к памяти. Например, memInfo.Protect будет содержать информацию о правах доступа к текущей странице памяти.

Надеюсь, это поможет вам получить информацию о карте памяти процесса в C#. Если у вас есть дополнительные вопросы, пожалуйста, не стесняйтесь задавать.

20 Апр 2024 в 13:11
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир