Мне нужно было прочитать байт из файла, скопировать его с 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 и затем записать в файл?