Hoo*_*och 7 .net c# memory bytearray data-structures
我想使用ReadProcessMemory函数来填充这个结构.
[StructLayout(LayoutKind.Explicit)]
public struct WinMineGameStruct
{
[FieldOffset(0x118)]
public Int32 xPressed;
[FieldOffset(0x118)]
public Int32 yPressed;
[FieldOffset(0x140)]
public Int32 MouseDown;
[FieldOffset(0x160)]
public Int32 GameStatus;
[FieldOffset(0x164)]
public Int32 IsInGame;
[FieldOffset(0x194)]
public Int32 MinesLeft;
[FieldOffset(0x330)]
public Int32 LevelMines;
[FieldOffset(0x334)]
public Int32 Colls;
[FieldOffset(0x338)]
public Int32 Rows;
[FieldOffset(0x6a0)]
public Int32 GameType;
[FieldOffset(0x6cc)]
public Int32 EasyBestScore;
[FieldOffset(0x6d0)]
public Int32 MediumBestScore;
[FieldOffset(0x6d4)]
public Int32 HardBestScore;
[FieldOffset(0x6d8)]
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
public Char[] PlayerEasyName;
[FieldOffset(0x718)]
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
public Char[] PlayerMediumName;
[FieldOffset(0x758)]
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
public Char[] PlayerHardName;
[FieldOffset(0x798)]
public Int32 NumLastHitDiscovered;
[FieldOffset(0x79c)]
public Int32 TimePlayed;
[FieldOffset(0x7a4)]
public Int32 DiscoveredFields;
}
Run Code Online (Sandbox Code Playgroud)
我知道如何读取字节数组,int,string,short等.我想知道如何将字节数组转换为此结构.
Joh*_*ski -1
哇...有趣的问题。
您可能会看看二进制格式化程序... http://msdn.microsoft.com/en-us/library/b85344hz.aspx
话虽如此,看起来您有一些与您的对象定义不完全匹配的二进制数组。在这种情况下,我认为您必须读取您感兴趣的数组的每个部分,并将该块反序列化为您想要的类型,即 int32 等...
请参阅此页面,了解如何执行从 byte[] 到 type 的各个字段。. 在此处输入链接描述
归档时间: |
|
查看次数: |
42675 次 |
最近记录: |