CTF実験: unix 系開発環境のインストール
CTFでは、様々な unix 系の開発環境のコマンドが用いられる。
これらの環境を構築するためのメモを記載。
Windows の場合
macOS の場合
macOS で unix 系の開発環境を使う場合には、homebrew や MacPorts を用いることが多い。
CTFでよく使われるunix系パッケージ
((ファイル系)) file - ファイルの種別判定 zip - zip,unzip(ファイル圧縮解凍) gzip - gzip,gunzip(ファイル圧縮解凍-GNU) nkf - nkf(日本語漢字フィルタ) hexcurse - hexcurse(バイナリエディタ) ((OS系)) gcc - gcc(コンパイラ-GNU) gdb - gdb(デバッガ-GNU) binutils - objdump(逆アセンブラ) , - nm(オブジェクトファイルのシンボル出力) , - strings(文字部分の出力) ((ネットワーク系)) telnet - telnet(telnetクライアント) netcat-openbsd - nc(TCP/IP 汎用ツール) bind9-dnsutils - nslookup, dig(DNS参照ツール) whois - whois(ディレクトリサービスクライアント) ((ブラウザ系)) w3m - w3m(テキストブラウザ) wget - wget(テキストブラウザ+ダウンローダ) curl - curl(ダウンローダ) ((使用上要注意)) nmap - nmap(ネットワーク調査ツール) wireshark - wireshark(パケットキャプチャ) - windows用とかmac用のバイナリの方が便利
各unix系のインストールコマンド
((WSL2の場合)) $ sudo apt-get install gcc binutils ((Homebrew の場合)) $ sudo brew install gcc binutils ((MacPorts の場合)) $ sudo port install gcc binutils
専攻科実験: unix系 開発環境のインストール
コンパイラの技術と関数電卓プログラムの実験では、unix系の開発環境で一般的なコンパイラ作成用のツール flex , bison を用いる。これらの環境を構築するためのメモを記載。
Windows の場合
((ubuntuの場合)) $ sudo apt-get install gcc flex bison make
macOS の場合
macOS で unix 系の開発環境を使う場合には、homebrew や MacPorts を用いることが多い。
((Homebrew の場合)) $ sudo brew install gcc flex bison make ((MacPorts の場合)) $ sudo port install gcc flex bison make
専攻科実験・コンパイラと関数電卓プログラム作成
- コンパイラの技術と関数電卓プログラム(1)
- 再帰下降パーサによる構文解析による電卓プログラム作成
- 補助資料:コンパイラの技術と関数電卓プログラム(1-2)
- 課題
- 複数桁の数字が使えること。
- 式中に空白が使えること。
- 何らかの演算子を追加すること。
- (例) %,単項演算子のマイナスなど
- 演算子が左結合か右結合か確認すること。
- オプション課題
- 変数が使えること。
(変数名は1文字のA-Zといったもので良い)
- 変数が使えること。
- レポート内容
- コンパイラ技術の概要、課題(1)の説明・最終的なBNF記法・ソース・動作検証、考察
- コンパイラの技術と関数電卓プログラム(2)
- コンパイラツールを使ったLR構文解析による電卓プログラムの作成
- 補助資料:専攻科実験: unix系 開発環境のインストール
- 課題
- 基本的に、lex+yaccで(1)と同様の課題で参考資料を元に改良を行う。
- レポート内容
- lex,yaccの概要、課題(2)の説明・ソース・動作検証、考察