我怎样才能读取一个内存字节

how can i read one memory byte

这是我正在使用的内存块:

您可以看到 8b ff 55 8b ec 83 7d 0c 01 . . . . 代码。我想每个字节一个,所以我尝试了:

DWORD offset; // this memroy has '0x61CAB0E4' and that means '8b ff 55... memroy block'
BYTE Result;
memcpy(&Result, &offset, 1); //1 mean byte as I want

但是,结果不正确。如果我调试,结果值为 228 而我期望该值为 8b.

我怎样才能把内存块一个字节一个?

8b,
ff,
55,
8b,
ec,
83,
7d,

..等等

这些是结果:

你没有正确转换你的结果,并且误解了:

  1. 您的结果确实是十进制 - 228。
  2. 在二进制中这是 11100100
  3. 数据很可能存储在您的 P 中的 2s 补码中,并且取决于字节序并假设调试器只是将二进制解释为二进制,您得到 10001011 - 这是 139。
  4. 最后,转换成两位十六进制数:1000是8,101111也就是b,所以最后是8b