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

时间:2017-11-09 11:26:56

标签: c++ memory byte memcpy

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

enter image description here

您可以看到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,

....等

结果如下:

enter image description here

1 个答案:

答案 0 :(得分:1)

您没有正确转换结果并误解:

  1. 你的结果确实是小数 - 228。
  2. 在二进制文件中,这是11100100
  3. 数据最有可能存储在P中的2s补码中,并且取决于endian并假设调试器只是将二进制解释为二进制,得到10001011 - 这是139。
  4. 最后,转换为两位十六进制数:1000为8,101111,即b,最后为8b