Question :
RSAkeytrouver un logiciel écrit par Nadia Heninger et J Alex Halderman pour trouver les clés RSA en cache à partir des vidages mémoire. J'ai récemment fait référence à votre tutoriel pour créer un vidage mémoire sur mon serveur Ubuntu. Une fois le vidage prêt, j'ai décidé de rechercher la clé RSA à l'aide du logiciel RSAkeyfind. Mais lors de la compilation de la source, faites a échoué avec le message d'erreur "memcmp, read, close n'a pas été déclaré dans cette étendue ‘.
S'il vous plaît aidez-moi à résoudre cette erreur. Ci-dessous le message d'erreur complet :
root@ubuntu:~/rsakeyfind# make g++ -Wall -O4 -c -o rsakeyfind.o rsakeyfind.cpp rsakeyfind.cpp: In function "void FindKeys(unsigned char*, int, unsigned char*, int, bool)": rsakeyfind.cpp:98:46: error: "memcmp" was not declared in this scope if (memcmp(&image[i], target, target_size)) ^ rsakeyfind.cpp: In function "int GetHexByte(int)": rsakeyfind.cpp:141:26: error: "read" was not declared in this scope if (read(fd, &a[0], 1) < 1) ^ rsakeyfind.cpp:144:28: error: "read" was not declared in this scope if (read(fd, &a[1], 1) < 1) ^ rsakeyfind.cpp: In function "unsigned char* ReadModulus(char*, unsigned int&)": rsakeyfind.cpp:173:11: error: "close" was not declared in this scope close(fd); ^ make: *** [rsakeyfind.o] Error 1 root@ubuntu:~/rsakeyfind#
Solution :
Le rsakeyfind.cpp programme manque quelques fichiers d'en-tête. Ajoutez simplement les lignes ci-dessous au rsakeyfind.cpp et compilez-le à nouveau.
#include <fstream> #include <unistd.h> #include <string.h>
root@ubuntu:~/rsakeyfind# make g++ -Wall -O4 -c -o rsakeyfind.o rsakeyfind.cpp g++ -o rsakeyfind rsakeyfind.o root@ubuntu:~/rsakeyfind#