Delphi 修改内存保护属性,包括修改以下信息:基地址、分配地址、区域大孝所分配保护属性、访问的保护属性、内存状态、内存类型等。核心源代码如下:
VirtualQuery(Arrayptr, MemInfo, SizeOf(TMemoryBasicInformation));
ListBox1.Items.Add('基地址: ' IntToHex(Longint(MemInfo.BaseAddress),8));
ListBox1.Items.Add('分配地址: ' IntToHex(Longint(
MemInfo.AllocationBase),8));
ListBox1.Items.Add('区域大小: ' IntToStr(MemInfo.RegionSize) ' bytes');
ListBox1.Items.Add('所分配保护属性: ' DisplayProtections(MemInfo.AllocationProtect));
ListBox1.Items.Add('访问的保护属性: ' DisplayProtections(MemInfo.Protect));
case MemInfo.State of
MEM_COMMIT: ListBox1.Items.Add('内存状态: MEM_COMMIT');
MEM_FREE: ListBox1.Items.Add('内存状态: MEM_FREE');
MEM_RESERVE: ListBox1.Items.Add('内存状态: MEM_RESERVE');
end;
case MemInfo.Type_9 of
MEM_IMAGE: ListBox1.Items.Add('内存类型: MEM_IMAGE');
MEM_MAPPED: ListBox1.Items.Add('内存类型: MEM_MAPPED');
MEM_PRIVATE: ListBox1.Items.Add('内存类型: MEM_PRIVATE');
end;
1