少しタグが多くなってしまいすいません。
セキュリティコンテストチャレンジブックという本で遊んでいたのですが、バッファオーバーフローでEIPを書き換える?部分で下記のCファイルを
C
1// bof.c 2#include<stdio.h> 3 4int main(int argc, char *argv[]) 5{ 6 char buffer[100]; 7 fgets(buffer, 128, stdin); 8 return 0; 9} 10
gcc -m32 -fno-stack-protector -o bof bof.c
とした実行ファイルbofを実行すると以下のようなエラーが出てしまいます。
-bash: ./bof: cannot execute binary file: Exec format error
代わりに-m64オプションでコンパイルすると正しく動作します。32bitか64bitかの違いだとは思うのですが、x86の実行ファイルがなぜフォーマットエラーで実行できないのかわかりません。どなたかお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/02 18:39