Frage:
RSAkeyfind ist eine von Nadia Heninger und J. Alex Halderman geschriebene Software, um die zwischengespeicherten RSA-Schlüssel aus Speicherauszügen zu ermitteln. Ich habe kürzlich auf Ihr Tutorial verwiesen, um ein Speicherabbild auf meinem Ubuntu-Server zu erstellen. Nachdem ich den Dump fertig hatte, beschloss ich, den RSA-Schlüssel mit der RSAkeyfind-Software zu finden. Aber während Sie die Quelle kompilieren, make fehlgeschlagen mit der Fehlermeldung „memcmp, read, close wurde in diesem Bereich nicht deklariert ‘.
Bitte helfen Sie mir, diesen Fehler zu beheben. Unten ist die vollständige Fehlermeldung:
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#
Lösung:
Die rsakeyfind.cpp Dem Programm fehlen einige Header-Dateien. Fügen Sie einfach die folgenden Zeilen zu rsakeyfind.cpp hinzu und neu kompilieren.
#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#