質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

x86_64

x86-64は、 x86命令を64ビット幅のデータやメモリアドレスに対応できるよう拡張した命令セットです。

Q&A

解決済

1回答

6287閲覧

Windows for Linux上での実行ファイル

konataro

総合スコア37

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

x86_64

x86-64は、 x86命令を64ビット幅のデータやメモリアドレスに対応できるよう拡張した命令セットです。

0グッド

0クリップ

投稿2019/05/02 17:35

少しタグが多くなってしまいすいません。
セキュリティコンテストチャレンジブックという本で遊んでいたのですが、バッファオーバーフローで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の実行ファイルがなぜフォーマットエラーで実行できないのかわかりません。どなたかお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

WSLは323bitバイナリをサポートしていないからです。

https://github.com/Microsoft/WSL/issues/228
でのやり取りが参考になります。

投稿2019/05/02 18:33

tanat

総合スコア18709

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

konataro

2019/05/02 18:39

ありがとうございます!2016年でのissuesのやり取りでしたが、未だにサポートされていないんですね・・・仮想環境を使用して勉強しようと思いますm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問