我怎样才能读取一个内存字节
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,
..等等
这些是结果:
你没有正确转换你的结果,并且误解了:
- 您的结果确实是十进制 - 228。
- 在二进制中这是
11100100
- 数据很可能存储在您的 P 中的 2s 补码中,并且取决于字节序并假设调试器只是将二进制解释为二进制,您得到
10001011
- 这是 139。
- 最后,转换成两位十六进制数:
1000
是8,1011
是11
也就是b
,所以最后是8b
。
这是我正在使用的内存块:
您可以看到 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,
..等等
这些是结果:
你没有正确转换你的结果,并且误解了:
- 您的结果确实是十进制 - 228。
- 在二进制中这是
11100100
- 数据很可能存储在您的 P 中的 2s 补码中,并且取决于字节序并假设调试器只是将二进制解释为二进制,您得到
10001011
- 这是 139。 - 最后,转换成两位十六进制数:
1000
是8,1011
是11
也就是b
,所以最后是8b
。