Created
February 23, 2018 14:06
-
-
Save shiv3/8c3310a2d08158d00985935f12d730ae to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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