【发布时间】:2018-08-19 07:43:20
【问题描述】:
好吧,如果我有这样的int(用来存储一行ASM)
int example = 0x38600000; //0x38600000 = li r3, 0
如何将此 int 拆分为 4 个单独的部分?我想出了这个
int example = 0x38600000;
char splitINT[4];
for(int i = 0; i < 4; i++)
{
splitINT[i] = *(char*)(((int)&example + (0x01 * i)));
}
//splitINT[0] = 0x38;
//splitINT[1] = 0x60;
//splitINT[2] = 0x00;
//splitINT[3] = 0x00;
当从我的可执行文件在其中运行的进程中读取内存时,上面的代码实际上工作得很好,但是当尝试从自身内部读取程序自己的内存时,这不起作用,如上面的代码示例所示。
那么我还能如何将一个 int 拆分为 4 个单独的部分?
【问题讨论】:
-
在这种情况下,您如何定义“不起作用”?它有什么不同?