【发布时间】:2011-02-18 04:50:27
【问题描述】:
我需要从文件中读取一个字节,将其与 0x71 进行异或,然后将其写回另一个文件。但是,当我使用以下内容时,它只是将字节读取为字符串,因此 xoring 会产生问题。
f = open('a.out', 'r')
f.read(1)
所以我最终在 C 中做了同样的事情。
#include <stdio.h>
int main() {
char buffer[1] = {0};
FILE *fp = fopen("blah", "rb");
FILE *gp = fopen("a.out", "wb");
if(fp==NULL) printf("ERROR OPENING FILE\n");
int rc;
while((rc = fgetc(fp))!=EOF) {
printf("%x", rc ^ 0x71);
fputc(rc ^ 0x71, gp);
}
return 0;
}
有人能告诉我如何将我使用f.read() 得到的字符串转换为十六进制值,以便我可以将其与 0x71 异或然后将其写入文件吗?
【问题讨论】:
标签: python hex binaryfiles