当前正在编写一个程序来打开文件,移至给定的偏移量,然后更改该偏移量处的字节。
这是代码:
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
}
尽管它确实写入了给定的文件,但它却以相反的方式写入7047
(4770
)。
我也尝试使用put();
而不是write
,但这只允许我使用2个字节,但是没有反向写入。
任何人都不知道为什么要反向写我给定的值?