x86アセンブリとリバースエンジニアリングを学ぶために、独立したプロジェクトとしてCMUのバイナリ爆弾を実行しようとしています。(クラスに関連付けられた自動採点版ではありません。)
http://csapp.cs.cmu.edu/public/labs.htmlから bomb.tar をダウンロードしました。
CMU のラボの説明から:
「バイナリ ボム」は、オブジェクト コード ファイルとして生徒に提供されるプログラムです。実行すると、ユーザーは 6 つの異なる文字列を入力するように求められます。これらのいずれかが正しくない場合、爆弾は「爆発」し、エラー メッセージが出力され、イベントがグレーディング サーバーに記録されます。生徒は、プログラムを逆アセンブルおよびリバース エンジニアリングして、6 つの弦がどうあるべきかを判断することにより、独自の独自の爆弾を「解除」する必要があります。このラボでは、学生にアセンブリ言語を理解するように教え、デバッガーの使用方法を強制的に学習させます。それもとても楽しいです。CMU学部生の間では伝説の研究室。
これはLinux/IA32 のバイナリ爆弾で、自分で試すことができます。グレーディング サーバーに通知する機能は無効になっているため、この爆弾を爆発させても問題ありません。
適切なフォルダーに保存した後、ターミナルで次のコマンドを実行しました。
tar xvf bomb.tar
(ファイル拡張子なし)というファイルを抽出しましたが、それも参照に役立つと
bomb
思いました。bomb.c
「爆弾」を実行できません。これが私が試したことです:
bomb bomb: command not found ./bomb bash: ./bomb: No such file or directory
それを解決するにはgdbでステップスルーする必要があることはわかっていますが、BASHで実行して間違った答えで自分を爆破することさえできません! 少しの助けは素晴らしいでしょう。