C ++ write();反写给定的字节值

时间:2018-07-06 18:06:53

标签: c++

当前正在编写一个程序来打开文件,移至给定的偏移量,然后更改该偏移量处的字节。

这是代码:

void write(int offset, int modifiedBytes) {

    fstream Binary("path/to/file");

    if(!Binary) {
        cout << "File not found!";
    }

    Binary.seekg(offset); //Go to given position from the given binary file
    Binary.write((char *)&modifiedBytes,4); //put modified bytes into the given position from above
}

然后,我有一个单独的函数,可以根据需要向其中添加乘法:

void doInjection() {
    write(0xfe,0x7047); //write 7047 to 0xfe
}

尽管它确实写入了给定的文件,但它却以相反的方式写入70474770)。

我也尝试使用put();而不是write,但这只允许我使用2个字节,但是没有反向写入。

任何人都不知道为什么要反向写我给定的值?

1 个答案:

答案 0 :(得分:0)

您所做的一切都取决于机器及其体系结构。 另外,根据int的大小,它可能会意外地工作,这取决于cpu架构。

看看endianness