Romantic Irony

好きなこと・気になったことについて書いていきます!

バイナリ解析環境構築メモ

Virtual Boxを使用し、仮想環境でUbuntuを起動できる状態を前提とします。

構築環境

  • Ubuntu 16.04 LTS
  • Virtual Box VM version 5.0.22

入れていくもの

  • Linuxコマンド
    • file
    • readelf
    • strings
    • grep
    • unzip/tar/gzip/xz
  • トレーサ
    • strace
    • ltrace
  • デバッガ
  • アセンブラ
    • objdump
  • その他
    • radare2
    • rp++
    • checksec.sh
    • peda
    • socat
    • pwntools

構築開始

Linuxコマンド

各種コマンドがあるか確認(Ubuntu16.04の場合上記コマンドは全て入っていた)

トレーサ

各種コマンドがあるか確認(Ubuntu16.04の場合上記コマンドは2つとも入っていた)

デバッガ

$sudo apt-get install buld-essential gcc-multilib git gdb

アセンブラ

$sudo apt-get install binutils

その他

radare2

$sudo apt-get install radare2

rp++

$mkdir $HOME/bin
$wget https://github.com/downloads/0vercl0k/rp/rp-lin-x64 -O $HOME/bin/rp

checksec.sh

$cd ~/Download/
$wget https://github.com/slimm609/checksec.sh/archive/1.6.tar.gz
$tar zxvf 1.6.tar.gz
$cp checksec.sh-1.6/checksec $HOME/bin/checksec.sh

peda

$sudo apt-get install build-essential gcc-multilib
$git clone https://github.com/zachriggle/peda.git ~/Download/peda
$echo "source ~/Download/peda/peda.py" >> ~/.gdbinit
$export PATH=$PATH/bin:$PATH

socat

$sudo apt-get install socat

pwntools

$sudo apt-get install python-pip python2.7-dev openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
$sudo pip install --upgrade pip
$sudo pip install pwntools
もしここで
Failed building wheel for cryptography
Failed building wheel for cffi
のようなエラーが出る場合
$sudo apt-get install libffi-dev
$sudo pip install cryptography

まとめ

まだ必要なツールはあると思うが、とりあえずここまで。いろいろ試しながらだったためミスがあると思う。(メモしとけばよかった...)

ArduinoでLCD表示

最近、Arduinoを触り始めたので(いまさら...笑)勉強がてらいろいろ試してます。ということで、今回はArduinoLCDモニタを制御してみたいと思います。 おそらく簡単なので、さくっとやっちゃいたいと思います。

準備

今回はLCDモニタとして、秋月さんのAQM0802A-RN-GBWを使いたいと思います。結構有名なやつですね。1つ320円(税込)という初心者でもとっつきやすい価格なので安心です。

準備するもの

Arduino(今回はUNOを使用)×1 AQM0802A-RN-GBW×1 ブレッドボード×1 ワイヤー×6

以上です!

作成開始

配線

まず配線からやっていきたいと思います。今回は抵抗もなにもいらないので本当に楽です。笑 下図はデータシートにある配線例ですが、初心者にはわかりずらい。というか入ってる部品のピンとちゃうやんっ!笑

f:id:n0x2ca:20151211210238p:plain

というわけでこっちが実際に接続する配線例です。 f:id:n0x2ca:20151211214216p:plain

RESETは繋がなくてOKです。 電源は3.3Vを使いました。(5Vでもいけるみたい) SCLとA5、SDAとA4を接続。そしてGNDを接続すれば完成です!! f:id:n0x2ca:20151211222624j:plain 簡単ですね!

プログラム

それでは続いてプログラムを書いていきます。 I2C接続では基本Wireライブラリを使用します。が、さらに便利なST7032というライブラリをオレ工房さんが作成されていましたのでそちらも活用させていただきました。以下がソースコードです。

Wireライブラリのみ使用

ST7032ライブラリ使用

結果

早速実行したいと思います! Wireのみの結果はこうなるはずです! f:id:n0x2ca:20151211222510j:plain

そしてST7032はこのようになるはずです! f:id:n0x2ca:20151211222539j:plain

うまく表示できましたね!

というわけで今回はこれで終了です! どうもありがとうございました!!