ノートパソコンのWindowsからUbuntuへ移行。さらにpython開発環境構築手順メモ
Powered by Ubuntu Linuxステッカー19?x 24?mm [ 487?]
- 出版社/メーカー: Linux
- メディア:
- この商品を含むブログを見る
Ubuntuセットアップ
用意するもの
参考になった記事
yoshinorin.net
手順1
Windowsデスクトップにダウンロード
Rufusダウンロードページ
Rufus - Create bootable USB drives the easy way
Ubutntuイメージダウンロードページ(ここだったのかな・・・たしか)
Ubuntu 16.04 LTS 日本語 Remix リリース | Ubuntu Japanese Team
手順2
↓
手順3
ノートPCにUSB挿したまま、再起動、BIOSを表示
Lenovoロゴが見えた瞬間にF2ボタンを押すと出る
↓
手順4
BIOSのOSブート優先度をisoイメージのはいったUSBを指定
↓
保存、再起動
手順5
↓
Ubuntuにインストール開始
↓
Windows削除してUbuntuインストールを選択
↓
適当にあとは選ぶと完成
python開発環境構築
UbuntuもMacOSXと同じく、最初はどうもpython2系しか入ってないね
手順2−1
pip入れる
sudo apt install python-pip
手順2−2
色々必要なツールを入れる
$sudo apt install -y make gcc $sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils
手順2−3
git入れる(pyenv入れるのに必要)
sudo apt install git
手順2−4
pyenv入れる pyenv-virtualenvというのも入れる
git clone https://github.com/yyuu/pyenv.git ~/.pyenv git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
sudo apt install vim
~/にcd .bash_profileを作成
touch .bash_profile
.bash_profile
export PYENV_ROOT=$HOME/.pyenv export PATH=$PYENV_ROOT/bin:$PATH eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
読み込む
source ~/.bash_profile
pyenvが使えるか確認
$pyenv -version pyenv 1.2.4-1・・・と出たらOK
pipの設定で※死にかけた
pip install --upgrade pip
こうするとエラーがでた
$ pip Traceback (most recent call last): File "/usr/bin/pip", line 9, in <module> from pip import main ImportError: cannot import name main
このコマンドで直ったなぜだろう・・・(後日確認) runble1.com
手順2−5
virtualenv入れる(さっきpyenv-virtualenv入れたから大丈夫かも・・・)
sudo pip install virtualenv
virtualenvで仮想環境構築時にエラー
UnicodeDecodeError: 'utf8' codec can't decode byte・・・ 日本語の「デスクトップ」というパスのせいでエラーになった模様。なので、トップディレクトリ~でvirtualenv .で行けた
手順2−6
python3系を導入
$pyenv install 3.6.3 $pyenv global 3.6.3
で、pythonバージョン変わらず・・・
$eval "$(pyenv init -)"
をいつものようにコマンド入力したらバージョンも3系になった。
データサイエンス系のモジュールを入れるなど
ハマったポイント
Jupyter notebookで普通にpip install jupyter
だとpython2のカーネルしか起動しないのでpython3が使えないという事象が起きる。
解決方法 python3の状態で(aptの操作なので影響してないかも)
sudo apt-get install ipython
をすると、jupyter notebook でpython3が使えるようになりました。
参考リンク
jupyter notebookをubuntu 16.04にインストールするときにハマった罠 | gepulog
scikit-learnとか入れていきます
$sudo pip3 install seaborn scikit-learn xgboost
Open-CV用
逆アセンブルとは何か
- 作者: 清水祐太郎,竹迫良範,新穂隼人,長谷川千広,廣田一貴,保要隆明,美濃圭佑,三村聡志,森田浩平,八木橋優,渡部裕,SECCON実行委員会
- 出版社/メーカー: マイナビ出版
- 発売日: 2017/07/28
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
逆アセンブルって何
CTFの問題集の解説にちょくちょく出てくる。何だろう。下記の解説が役立った。
language-and-engineering.hatenablog.jp
(予想だけど)要は、コンパイルしたあとに出てくる実行ファイルを元にソースコードを完全に復元するというのは逆コンパイルというけども、それはなかなか一定条件が満たされないと難しいので、どんな定数を使っているか、などの情報が部分的にわかるようにファイルのコード変換を行うのが逆アセンブルと言う感じで、これらの全般をリバースエンジニアリングと言うようだ。まあこの辺は語句定義にすぎないので、問題さえ解ければなんとなくでいいや。
開発日誌:エンディアンとは
これをやってます。
- 作者: 清水祐太郎,竹迫良範,新穂隼人,長谷川千広,廣田一貴,保要隆明,美濃圭佑,三村聡志,森田浩平,八木橋優,渡部裕,SECCON実行委員会
- 出版社/メーカー: マイナビ出版
- 発売日: 2017/07/28
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
経緯
基礎固めにこの記事を読んでいて 楽しいPwn入門 · GitHub
「エンディアンに注意」という部分がよくわからなかったので調べました。
下記がよくまとまってました。なるほど・・・
Endian(エンディアン)ってなに? | 学校では教えてくれないこと | [技術コラム集]組込みの門 | ユークエスト株式会社
要するにメモリにデータを格納していくときに、1バイトごとにデータを分割して格納される、その格納の順番がエンディアン。
エンディアンは主に3種類、ビッグエンディアン、リトルエンディアン、両方対応のバイエンディアン。
エンディアンに注意する例
参考記事からの引用です。
if (secret == 0xc0deface){ puts("flag is ..."); }
と、あるところ、バイト列を"0xc0deface"と入力するには、下記のようになります
'\xce\xfa\xde\xc0'
\xで区切られて、逆順に2文字ずつ並んでいますね。この並びがエンディアンというわけ。スペースで更に区切ると分かりやすいかな・・・
'\x ce \x fa \x de \x c0'
参考記事
gcc でC言語ファイルコンパイル@MacOSXのメモ
#経緯
これを読んでます。
- 作者: 清水祐太郎,竹迫良範,新穂隼人,長谷川千広,廣田一貴,保要隆明,美濃圭佑,三村聡志,森田浩平,八木橋優,渡部裕,SECCON実行委員会
- 出版社/メーカー: マイナビ出版
- 発売日: 2017/07/28
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
メモ
これを実行するためのgccメモ 楽しいPwn入門 · GitHub
$ ls overflow1.c #C言語ファイルoverflow1.cしかないよ $ gcc overflow1.c -o overflow1 #ちなみにgcc => g++とコンパイラを変えると #C++のコンパイルできる模様 $ ls overflow1 overflow1.c #実行ファイルoverflow1ができてるね $ ./overflow1 `・・・・文字列・・・・` Abort trap: 6 #どうも引数のエラーらしい #これは今度チェックしよう
参考記事
C言語で書いたコードをMacOSXで動かすときの環境構築メモ
#経緯
これを読んでます。
- 作者: 清水祐太郎,竹迫良範,新穂隼人,長谷川千広,廣田一貴,保要隆明,美濃圭佑,三村聡志,森田浩平,八木橋優,渡部裕,SECCON実行委員会
- 出版社/メーカー: マイナビ出版
- 発売日: 2017/07/28
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
↓の、続き k-mawa.hateblo.jp
と、いうわけで、Cで作ったファイルも動くようにしたいと思います。ここのあたりはMacがせっかくUNIXマシンなのだから、Macで動かしたい・・・と、いうことで・・・
メモ
とりあえず、XcodeのGUIIDEでコンパイルして、実行がちょっとC++を試しにいじってみたときに面倒だったので、 k-mawa.hateblo.jp
なんとかコマンドで動かせないかなと思って、調べたら見つけた。 ecei-tohoku.github.io
これでちょっと現状でgccとか入っているか調べると以下のように出てきたので、コマンドで動かせるなということで環境はOKであろう。
$ gcc -v Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/4.2.1 Apple LLVM version 9.1.0 (clang-902.0.39.1) Target: x86_64-apple-darwin17.3.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin #gccは入っていると。 $ xcode-select -v xcode-select version 2349. #ついでにこのxcodeまわりのパッケージも #入っているからいいっぽいな
参考記事
開発日誌:セキュリティの勉強を本格的にはじめようかな
- 作者: 清水祐太郎,竹迫良範,新穂隼人,長谷川千広,廣田一貴,保要隆明,美濃圭佑,三村聡志,森田浩平,八木橋優,渡部裕,SECCON実行委員会
- 出版社/メーカー: マイナビ出版
- 発売日: 2017/07/28
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
と、いうことで、積ん読状態だった本を取り出し、さらーと見てみた。とりあえず1問ずつ解いていくことで力がつくようだ。アプリ制作、ゲーム制作と同じだね^^
仕入れた知識
- FLAG_{答え}を得るとゴールという問題がメイン?こういう問題をCTF(capture the flag)というようだ。
- C言語と、低レイヤの知識の基盤が必要な問題が多い印象。指定のLinuxサーバーに侵入してFLAGを入手という問題(pwn問題というくくりなのかな??)や、バイナリ解析というバイナリデータをコマンドやツールを駆使して解析して、関数を再構築してバイナリに隠されたメッセージや数学の問題を解くとFLAGが出て来るような問題。
- pwn = password own の造語(らしい)
- Pythonは結構しばしば使いやすいぽい。Pythonユーザーはお得^^b
- Webアプリ回りの知識で解けそうな問題も結構ある印象。(SQLインジェクションなどを駆使してWebアプリに管理者ログインする問題など)
まとめ
とりあえず、まだ土地勘があまりないので、1問とりあえず次は解いてみようと思います。
これも参考になりました
今週の目標
トミカ No.37 ミニ ジョン・クーパー・ワークス (初回特別仕様)
- 出版社/メーカー: タカラトミー(TAKARA TOMY)
- 発売日: 2017/11/18
- メディア: おもちゃ&ホビー
- この商品を含むブログを見る
だいぶ仕事のやる気が復活してきた〜
デプロイ済アプリ
- コンテンツのチェック・システム運営など(時間のほとんどこれに割いています)
- Q&Aコーナーの追加(先週できず今週できたら・・・)
Django新規プロジェクト
セキュリティの勉強
- 今日からちょっとだけ進んだ!
趣味のゲーム開発
- 次何しようかなと考える=>2週前から進んでない!w 今週こそはちょっと考えるぞ〜