この問題は、コードスニペットが大きなプロジェクトの一部であるため説明するのが少し難しいです。私は可能な限り問題を説明しようとします。異なるデータを持つ2つのポインタのMemcmp
私はの
625b70a9659b2fe9ba76ea26d3cfb6126bae4a48b4997548b26d9a101e682bc3
625b70a9659b2fe9ba76ea26d3cfb6126bae4a48b4997548b26d9a101e682bc3
MEMCMP value: -44
定義は次のようにoffset.txtに印刷された値が、私は次のコードを実行機能には二つのファイル
FILE *f,*m;
f=fopen("/home/machine/decoder.txt","a+");
m=fopen("/home/machine/offset.txt","a+");
、
char *c;
int i=0;
c = malloc(sizeof(SslDecoder));
//Pick a value from "decoder" file and compare it to a variable in the function
while (fgets(c, sizeof(SslDecoder), f) != NULL) {
//Print its value to offset file
fprintf(m,"%s\n",c);
// Print value of another variable to offset file.
for(i=0;i<32;i++){
fprintf(m,"%02x",ssl->client_random.data[i]);
}
fprintf(m,"\n");
//Compare the memory in the pointers.
int check = memcmp(c,ssl->client_random.data,32);
fprintf(m,"MEMCMP value: %d\n",check);
}
を持っていますclient_randomとsslは次のようになります。
memcmpの値がゼロでない理由はわかりません。私は、ポインタに格納されたデータが異なって符号化されていると思うが、その場合の値をどのように比較するのだろうか?私は、データが16進数型か、ポインタのいずれかのraw/asciiデータであるかどうかはわかりません。
コードをインデントしてください。 –