Raspberry PiにZabbixをインストールする

「Raspberry Pi 3でファイルサーバ兼iTunesサーバを作る」ではサーバ監視ツールとしてnetdataをインストールしたが、ディスク使用率の監視に難があるためZabbixに切り替えることにした。 ここでは、Raspberry PiにZabbixをインストールし、サーバの状態を表…

Google Sheetsでスクレイピング結果を定期的に記録する

Google Docsの表計算アプリであるGoogle Sheetsでは、Google Apps Scriptと呼ばれるJavaScriptベースのスクリプト言語でマクロを書くことができる。 また、Google Apps ScriptではTriggerと呼ばれる機能により特定の関数を定期的に実行することができる。 Go…

メッセージダイジェスト(MD)、メッセージ認証コード(MAC)、鍵導出関数(KDF)の違いについてのメモ

「ハッシュ」という言葉があいまいに使われている場面をしばしば目にするので、関係する概念とそれらの違いについてまとめてみる。 メッセージダイジェスト(Message Digest; MD) MD5、SHA-1、SHA-256など、あるバイト列(メッセージ)に対し固定長の要約値…

紙の手帳を使い始めた

ここ数年スケジュール管理にスマートフォンのスケジューラを使っていたが、紙の手帳を買ってあらためてこれを使い始めた。 メリットとデメリットのメモ。 紙の手帳のメリット スケジュール、タスクリスト、メモを集約できる ペンケースを兼ねる 書き込みの自…

「Protecting Passwords」というタイトルで発表した

2016年06月の #ssmjpのおしらせ – ssmjp Infomation 開発者・ユーザそれぞれの立場から、パスワードを守る方法について発表した。 Protecting Passwords from inaz2 最も強いパスワードは完全なランダム、最も適切な管理方法はサービスごとにまったく異なる…

VR TheaterでGear VRを体験してみた

VRを体験してみたくなったので、ネットカフェでヘッドマウントディスプレイGear VRを体験できるVR Theaterに行ってみた。 自分が行った店舗では、有料動画を見る見ないに関わらず、ネットカフェの利用料金とは別に600円が必要だった。 いくつかあるコンテン…

最近買ったもの2016

引っ越しに伴いいろいろ買ったので、それらのメモ。 本棚 これまでの経験から本棚はちゃんとしたものを買う必要があることがわかったので、大きいものを買った。 本棚(グレン BS1890) | ニトリ公式通販 家具・インテリア・生活雑貨通販のニトリネット キュー…

Twitterのツイート時刻を可視化する「TwiActivity」を作った

TwiActivity: 直近200件のツイート時刻を可視化 D3.jsにちょうどよいサンプルがあったので、任意アカウントのツイート時刻に適用するサイトを作ってみた。 TwitterのAPIが1リクエストあたり200件のツイートしか取れないので、とりあえず200件のみで可視化す…

Fire TV Stickを買った

「Raspberry PiにKodiをインストールしてネットテレビを作る」でネットテレビを作ってみたが、Raspberry Pi上のKodiではNetflixを見るのが難しかった。 そこで、ちょうどセールで20%オフになったFire TV Stickを買った。 Amazonプライムビデオに加え、アプリ…

気軽に質問できるWebサービス「OSIETE」を作った

OSIETE: インターネットに聞いてみよう 最近買ってよかったもの教えて! Webサービス開発の練習も兼ねて、気軽に質問・回答できるサイトを作った。 Heroku+Django+Bootstrap利用。 近年では検索結果やまとめサイト、ショッピングサイトのサジェストへの依存…

Amazon EC2のGPUインスタンスでハッシュ解読をやってみる

ハッシュ値から元の文字列を求めるハッシュ解読は、GPUを利用することにより高速に行えることが知られている。 ここでは、Amazon EC2のGPUインスタンスを利用し、oclHashcatを使った場合におけるハッシュ解読のパフォーマンスを調べてみる。 環境 Amazon Lin…

Pythonでネイティブコードを実行する

Pythonでネイティブコード(x86バイトコードなど)を実行する方法のメモ。 ctypesモジュールをインポートし、次のような関数を定義すればよい。 import ctypes def native_func(bytecode): libc = ctypes.CDLL('libc.so.6') libc.mmap.restype = ctypes.c_vo…

区間ふるいで2^32未満の素数を列挙する

232未満の素数すべてを列挙するアルゴリズムについてのメモ。 ついでに、C++11、Go、Rustの比較もやってみる。 環境 Ubuntu 14.04.4 LTS 64bit版、g++ 4.8.4、Go 1.6.2、Rust 1.8.0 $ uname -a Linux vm-ubuntu64 3.19.0-25-generic #26~14.04.1-Ubuntu SMP …

Raspberry Pi 3にChinachuをインストールするときのメモ

Raspberry Pi 3にChinachuをインストールする際、公式のインストールガイドのままではうまくインストールできないので、対処法のメモ。 ffmpegを自前でビルドする commit 48afd7でスタティックビルド版のffmpegをインストールするようになっているが、スタテ…

C#+WPFでGUIアプリケーションを作ってみる

C#

「JavaFX+FXMLでGUIアプリケーションを作ってみる」では、JavaFX+FXMLを使ってJavaランタイム(JRE)が入っている環境向けのGUIアプリケーションを作った。 ここでは、C#+WPFを使い、.NET Frameworkが入っている環境向けのGUIアプリケーションを作ってみる。…

objdumpのdiffをいい感じに取る方法のメモ

たとえば、次のような二つのC言語コードを考える。 /* test1.c */ #include <stdio.h> double divide(long x, long y) { return x/(double)y; } int main() { divide(1, 2); divide(1, 0); return 0; } /* test2.c */ #include <stdio.h> #include <stdlib.h> double divide(long x, long</stdlib.h></stdio.h></stdio.h>…

ScalaFXでGUIアプリケーションを作ってみる

「JavaFXでGUIアプリケーションを作ってみる」、「JavaFX+FXMLでGUIアプリケーションを作ってみる」では、JavaFXを使って簡単なGUIアプリケーションを作った。 ここでは、JVMベースの言語であるScalaとScalaFXライブラリを用いて、同様のアプリケーションを…

「Self Introduction & The Story that I Tried to Make Sayonara ROP Chain in Linux」というタイトルで発表した

Lightning TalkでLow Layer経験に関する自己紹介とSayonara ROP ChainをLinuxで作ろうとした話について発表した。 Self Introduction & The Story that I Tried to Make Sayonara ROP Chain in Linux from inaz2 内容はAVTOKYO 2014での発表と重複するが、改…

JavaFX+FXMLでGUIアプリケーションを作ってみる

「JavaFXでGUIアプリケーションを作ってみる」では、JavaFXによるGUIアプリケーションを作った。 JavaFXではコードから直接GUI画面を構築するほかに、FXMLと呼ばれるXMLファイルを使って構築することもでき、より見通しのよいコードを書くことができる。 こ…

JavaFXでGUIアプリケーションを作ってみる

「Java+SwingでGUIアプリケーションを作ってみる」では、JDKとEclipseをインストールし、Java+SwingによるGUIアプリケーションを作った。 SwingはJava 1.2から存在する標準のGUIライブラリであるが、Java 8からは新たな標準としてJavaFXへの置き換えが進めら…

Java+SwingでGUIアプリケーションを作ってみる

JavaとSwingを使い、JRE(Java Runtime Environment)をインストールしたコンピュータで実行可能なGUIアプリケーションを作ってみる。 環境 Windows 8.1 Pro 64 bit版 >systeminfo OS 名: Microsoft Windows 8.1 Pro OS バージョン: 6.3.9600 N/A ビルド 960…

Raspberry PiにインストールしたブラウザをRDPから操作する

Raspberry PiでWebブラウザを全画面表示し、RDP(リモートデスクトップ接続)から操作できるようにしてみる。 環境 Raspberry Pi 3 (Raspbian Jessie Lite) $ uname -a Linux raspberrypi 4.1.19-v7+ #858 SMP Tue Mar 15 15:56:00 GMT 2016 armv7l GNU/Linu…

Raspberry PiにKodiをインストールしてネットテレビを作る

Raspberry PiにメディアセンターKodi(旧XMBC)をインストールして、接続されたディスプレイでYouTubeなどを見れるようにしてみる。 また、AndroidのリモコンアプリKoreからKodiを操作できるようにしてみる。 環境 Raspberry Pi 3 (Raspbian Jessie Lite) $ …

Raspberry PiでIPv6 PPPoE対応ルータを作る

Raspberry PiでIPv6 PPPoE接続、パケット転送、LAN内へのRA送信を行い、IPv6ルータにしてみる。 環境 Raspberry Pi 3 (Raspbian Jessie Lite) $ uname -a Linux raspberrypi 4.1.19-v7+ #858 SMP Tue Mar 15 15:56:00 GMT 2016 armv7l GNU/Linux $ cat /etc/…

Raspberry Pi 3でファイルサーバ兼iTunesサーバを作る

Raspberry PiとUSB HDDで家庭用サーバを作るにあたって、設定した内容のメモ。 用意するもの Raspberry Pi 3 Model B microSDカード 32GB USB電源アダプタ、USB-microUSBケーブル(2.4A対応) HDMIディスプレイ、HDMIケーブル USBキーボード USB HDD スピー…

React NativeでAndroidアプリケーションを作ってみる

「ElectronでGUIアプリケーションを作ってみる」では、Electronを使ってJavaScriptで簡単なGUIアプリを作った。 ここではReact Nativeを使い、JavaScriptで同様のAndroidアプリを作ってみる。 なお、ここではWindowsを使って開発を行う。 環境 Windows 8.1 P…

ElectronでGUIアプリケーションを作ってみる

「ReactにReduxを組み合わせて使ってみる」では、ReactとReduxで簡単な文字数カウンタを作った。 ここでは、Electronを使ってこれをGUIアプリにしてみる。 また、Windows用にパッケージングを行い、Windows上でも動かしてみる。 環境 Ubuntu 14.04.4 LTS 64b…

ReactにReduxを組み合わせて使ってみる

「Webpack+BabelでReactを使ってみる」では、Reactを使って簡単なアプリケーションを書いた。 ReactはMVVM(Model-View-ViewModel)におけるV層を扱うモジュールである一方、VM層に相当するものとしてReduxがある。 ここでは、ReactにReduxを組み合わせて同…

react-routerで簡単なSingle-page applicationを作ってみる

「Webpack+BabelでReactを使ってみる」では、WebpackとBabelを用いてReactアプリケーションを書いた。 ここでは、react-routerモジュールを使い、簡単なルーティングを含むSingle-page application(SPA)を書いてみる。 環境 Ubuntu 14.04.4 LTS 64bit版 $ …

Webpack+BabelでReactを使ってみる

モジュールバンドラWebpackとJavaScriptコンパイラBabelをインストールし、UIライブラリReactを使ってみる。 環境 Ubuntu 14.04.4 LTS 64bit版 $ uname -a Linux vm-ubuntu64 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64…

iptablesでREDIRECTする前のポート番号を取得する

iptablesで次のように複数のポートを特定のポートにリダイレクトしているような状況で、リダイレクト前のポート番号をソケットから取得する方法のメモ。 -A PREROUTING -i eth0 -p tcp -m multiport --dports 8000:8080 -j REDIRECT --to-ports 5000 環境 Ub…

部屋を借りる際に知っておいたほうがよいことのメモ

不動産賃貸に関する基本知識や、部屋探し(仲介業者選び)および物件選びの際の観点についてのメモ。 不動産賃貸に関する登場人物 不動産オーナー: 投資・資産運用目的で賃貸マンションの部屋を購入する 管理会社(マンション管理業/賃貸住宅管理業): オー…

Pocket Operator PO-12 rhythmを買った

Teenage Engineeringによって製造されている電卓のようなポケットサイズのシンセサイザPocket Operatorを買った。 買ったのは、いくつかあるモデルのうち最もスタンダードなドラムマシンタイプのPO-12 rhythm。 16種類のサウンドを16拍の各タイミングに配置…

Netflix/Hulu/dTV/U-NEXT/Amazonプライムビデオを試してみた

レンタルビデオ店に行く代わりにしたい、PCのサブディスプレイを活用したいという理由で定額動画配信サービスをいろいろ試した結果のメモ(2016年3月時点)。 提携関係 各サービスの会員規模および提携関係については、次の記事が参考になる。 dTV、Hulu、Ne…

高機能トレーサーqiraを使ってみる

qira(QEMU Interactive Runtime Analyser)は、George Hotz(geohot)氏が開発している高機能トレーサーである。 qiraは実行時のレジスタ、メモリ操作をすべて記録することにより、特定の命令アドレスを実行しているタイミングや特定アドレスのメモリ読み書…

angrでシンボリック実行をやってみる

シンボリック実行とは、プログラム上の変数をシンボルとして扱い、シンボルに対する一連の操作を分析することで条件を満たす入力値を特定するプログラム解析手法である。 ここでは、CTFチームShellphishが開発しているバイナリ解析ツールangrを使い、簡単な…

DLL injectionでWindows APIによる暗号化処理を覗いてみる

「LD_PRELOAD injectionでOpenSSLによる暗号化処理を覗いてみる」では、Linux環境におけるOpenSSLを使った暗号化処理を覗いてみた。 ここでは、「IAT書き換えによるAPIフックをやってみる」と同様の方法にて、Windows環境におけるWindows APIを使った暗号化…

LD_PRELOAD injectionでOpenSSLによる暗号化処理を覗いてみる

LD_PRELOAD環境変数を使ったライブラリ関数フックにより、OpenSSLの暗号化処理を覗くコードを書いてみる。 環境 Ubuntu 14.04.4 LTS 64bit版 $ uname -a Linux vm-ubuntu64 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x…

Intel Pinでlivestringsを作ってみる

「Intel Pinでcmptraceを作ってみる」では、x86/x64用のDBIツールであるIntel Pinを使ってcmp命令のトレースを行うコードを書いた。 ここでは、同様にIntel Pinを使い、メモリ上に展開されているASCII文字列を列挙するlivestringsを作ってみる。 環境 Ubuntu…

Intel Pinでcmptraceを作ってみる

「Intel Pinを使ってみる」では、Intel Pinをダウンロードし、付属しているコードを使ってみた。 ここでは、実際にコードを書き、cmp命令のトレースを行うコードcmptraceを作ってみる。 環境 Ubuntu 14.04.4 LTS 64bit版 $ uname -a Linux vm-ubuntu64 3.19.…

Intel Pinを使ってみる

Dynamic Binary Instrumentation(DBI)は実行時にバイナリの内容を書き換えることにより、CPU命令の単位でプログラム実行のトレースなどを行う手法である。 ここでは、x86/x64用のDBIツールであるIntel Pinを使ってみる。 環境 Ubuntu 14.04.4 LTS 64bit版 …

64 bitのUbuntu Linuxで32 bitの実行ファイルを動かす方法のメモ

環境 Ubuntu 14.04.4 LTS 64bit版 $ uname -a Linux vm-ubuntu64 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Descrip…

Mersenne Twisterの出力を推測してみる

「Z3Pyでglibc rand(3)の出力を推測してみる」および「Z3Pyでxorshift128+の出力を推測してみる」では、Z3Pyを使って疑似乱数生成アルゴリズムのいくつかの出力を観測することで、後続の出力を推測した。 ここでは、Pythonのrandomモジュールなどで利用され…

Z3Pyでxorshift128+の出力を推測してみる

「Z3Pyでglibc rand(3)の出力を推測してみる」では、glibc rand(3)の出力をいくつか観測することで、後続の出力を推測した。 ここでは、V8 JavaScript Engineなどで使われている疑似乱数生成アルゴリズムxorshift128+の出力を推測してみる。 環境 Ubuntu 14.…

Z3Pyでglibc rand(3)の出力を推測してみる

疑似乱数列は、いくつかの出力を観測することにより内部状態を復元することで推測が可能である。 ここでは、SMTソルバZ3Pyを使い、glibc rand(3)の出力を推測してみる。 環境 Ubuntu 14.04.3 LTS 64bit版、EGLIBC 2.19 $ uname -a Linux vm-ubuntu64 3.19.0-…

ArachniでWeb脆弱性スキャンをやってみる

Web

「w3afでWeb脆弱性スキャンをやってみる」では、w3afを使ってWeb脆弱性のスキャンを行った。 Web脆弱性のスキャンツールには、w3afの他にArachniがある。 ArachniはヘッドレスブラウザPhantomJSを利用しており、高精度な脆弱性テストを行うことができる。 こ…

w3afでWeb脆弱性スキャンをやってみる

Web

「sqlmapを使ってみる」では、sqlmapを使ってSQL injection脆弱性のスキャンを行った。 ここでは、SQL injection以外の脆弱性もスキャンできるテストツールw3afを使い、Web脆弱性のスキャンをやってみる。 環境 Ubuntu 14.04.3 LTS 64bit版、Docker 1.9.1 $ …

PythonでPEM形式のRSA鍵を生成する方法のメモ

適当なパラメータをもとに、PythonでPEM形式のRSA鍵を生成する方法のメモ。 環境 Ubuntu 14.04.3 LTS 64bit版 $ uname -a Linux vm-ubuntu64 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux $ lsb_…

テキストエディタAtomを使ってみる

メモ帳の代わりに使えるWindowsでのエディタとしてAtomを使い始めた。 Tree Viewとタブ表示、Markdown Preview(Ctrl+Shift+M)が便利。 日本語フォントを設定する デフォルトでは日本語フォントがうまく表示されないので、「File」→「Open Your Stylesheet…

sqlmapを使ってみる

Web

SQL injectionのテストツールであるsqlmapを使ってみる。 環境 Ubuntu 14.04.3 LTS 64bit版、Docker 1.9.1 $ uname -a Linux vm-ubuntu64 3.19.0-25-generic #26~14.04.1-Ubuntu SMP Fri Jul 24 21:16:20 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux $ lsb_rel…