質問:
RSAkeyは、メモリダンプからキャッシュされたRSAキーを見つけるために、NadiaHeningerとJAlexHaldermanによって作成されたソフトウェアを検索します。最近、チュートリアルを参照して、Ubuntuサーバーにメモリダンプを作成しました。ダンプの準備ができたら、RSAkeyfindソフトウェアを使用してRSAキーを見つけることにしました。ただし、ソースをコンパイルするときに、 make 「memcmp、read、closeはこのスコープで宣言されていません」というエラーメッセージで失敗しました ‘。
このエラーを解決するのを手伝ってください。以下は完全なエラーメッセージです:
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#
解決策:
rsakeyfind.cpp プログラムにいくつかのヘッダーファイルがありません。以下の行をrsakeyfind.cppに追加するだけです。 もう一度コンパイルします。
#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#