Skip to content

Instantly share code, notes, and snippets.

@shiv3
Created February 23, 2018 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shiv3/8c3310a2d08158d00985935f12d730ae to your computer and use it in GitHub Desktop.
Save shiv3/8c3310a2d08158d00985935f12d730ae to your computer and use it in GitHub Desktop.
1
環境セットアップ
2 環境セットアップ(Ubuntu 16.04 x64前提)  各種インストール
$ apt-get install binutils python2.7 perl socat git build-
essential gdb gdbserver
※使いそうなものをとりあえず書いただけで,全部使う訳ではありません
 gdb-peda導入
$ git clone https://github.com/scwuaptx/peda.git ~/peda
$ git clone https://github.com/scwuaptx/Pwngdb.git ~/Pwngdb
$ cp ~/Pwngdb/.gdbinit ~/ ※チームHITCONの方が開発しているpedaのfork版で,個人的に本家よりオススメです ※gdbを起動して"gdb-peda$"というプロンプトが出ればインストール完了です
3 環境セットアップ(Ubuntu 16.04 x64前提)
 V8のビルド
 今回扱う問題は2016年4月16日に出題された問題です
 残念ながら,現在のビルド手順では素直にビルドできません
問題が出題された時期
現在 (ninjaを利用してビルド)
2016 2017 2018
当時のソースを現在のビルド手順に沿って ninjaでビルドしようとしたが,できなかった (色々調べたところ,makeで行ける模様)
4 環境セットアップ(Ubuntu 16.04 x64前提)
 V8のビルド
 今回扱う問題は2016年4月16日に出題された問題です
 残念ながら,現在のビルド手順では素直にビルドできません
問題が出題された時期
現在 (ninjaを利用してビルド)
2016 2017 2018
当時のソースを現在のビルド手順に沿って ninjaでビルドしようとしたが,できなかった (色々調べたところ,makeで行ける模様)
 ここで紹介するビルド手順は,makeを使った非公式な手順です
 ninjaを使った,現在の公式ビルド手順も参考までに記載しておきますが こちらは今回使わないためご注意下さい
2016年当時のソースを ビルドする手順
5 環境セットアップ(Ubuntu 16.04 x64前提)
 V8のビルド用ツールの設定
 depot_tools準備
$ git clone https://chromium.googlesource.com/chromium/tool
s/depot_tools.git
$ export PATH=$PATH:'/path/to/depot_tools'
※/path/to/の部分は自分の環境に合わせて書き換えましょう ※export文は~/.bashrcにも書いておきましょう
2016年当時のソースを ビルドする手順
6 環境セットアップ(Ubuntu 16.04 x64前提)
 V8のビルド
問題当時のlatest
$ fetch v8 && cd v8
$ git reset --hard 6ff5881b1def45b35384572f61327e42563a89c3
$ gclient sync
$ make x64.debug -j 8 # エラーが出るが下記修正して再makeで通る $ mv ./third_party/binutils/Linux_x64/Release/bin/ld.gold{,.old}
$ ln -s {/usr,./third_party/binutils/Linux_x64/Release}/bin/ld.gold $ make x64.debug -j 8
 起動確認
$ ./out/x64.debug/d8 # 対話型V8インタプリタ
$ ./out/x64.debug/shell # 軽量対話型V8インタプリタ(サンプル)
2018年現在 の公式手順
7 環境セットアップ(Ubuntu 16.04 x64前提)
 V8のビルド用ツールの設定
 depot_tools準備
$ git clone https://chromium.googlesource.com/chromium/tool
s/depot_tools.git
$ export PATH=$PATH:'/path/to/depot_tools'
 ninja準備
$ git clone https://github.com/ninja-build/ninja.git $ cd ninja && ./configure.py --bootstrap && cd ..
$ export PATH=$PATH:'/path/to/ninja'
※/path/to/の部分は自分の環境に合わせて書き換えましょう ※2つのexport文は~/.bashrcにも書いておきましょう
2018年現在 の公式手順
8 環境セットアップ(Ubuntu 16.04 x64前提)
 V8のビルド
$ fetch v8 && cd v8 && gclient sync # 依存関係を全て導入
$ tools/dev/v8gen.py x64.debug # 必要なファイルを生成
$ ninja -C out.gn/x64.debug # ビルド(結構時間がかかる)
 起動確認
$ ./out.gn/x64.debug/d8 # 対話型V8インタプリタ
$ ./out.gn/x64.debug/shell # 軽量対話型V8インタプリタ(サンプル)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment