リファレンスチェックへのお気持ち

特に転職活動してる訳ではないです。

リファレンスチェックサービスの本人確認ってどうなってるのかな〜

シン・エヴァ感想

初回は公開初日朝7:30に見に行って、2回目は映画館が休館する緊急事態宣言が出る前日に行った。 2回目は偶然、休館前日だったので運がよかった。

感想

各パートのつなぎが突然でツギハギ感を感じるところもあったけど、満足。

おめでとうエンドを覚悟して見に行ったけど、まさかハッピーエンドとは。

  • Qで何も説明がなかった人々の生活の描写があってよかった。震災を受けて作り直した感がすごい
  • シンジがDSSチョーカーに反応するのを見て、スカーフでDSSチョーカーを隠すアスカやさしい
  • アスカが大人になっていたのもよかった。銃を構えるところで中学生から軍人になったんやなって感動した
    • オタクがうじうじしている間にも世界は進んでいるって言いたいのかな
  • 仮称綾波が目の前で蒸発して、また鬱になっちゃうのかなと思ったけど、WILLEに合流を決意するのはシンジの成長がすごくて感動した
  • 惣流のアスカはダミープラグとして13号機に乗っていて、式波とバトルになったという理解でいいのかな
  • 赤い海の前にずっといた惣流のアスカが可愛くてびっくりした。救われてよかった
  • 巨大綾波とファイナルインパクトの描写はCG感つよすぎてあんまり怖いかんじがなかった
    • この辺は旧劇の演出のほうが怖くて好き
  • 今までに説明をしてこなかったせいで、突然ゲンドウのプロジェクトXが始まったときはちょっと笑った
    • 漫画版、アニメ版のネルフ創設秘話の回が好きなので見れてよかった
  • 漫画版ではマリが長生きで碇ユイの後輩というのは既出だったけど当然のように出してくるのは驚いた
  • イスカリオテのマリアってなんやねん
    • イスカリオテのユダは聖書では裏切り者なので、ゼーレを裏切ってシンジ側についた的な?
    • マリは碇ユイが大好きなので、ユイが死んだ時点でシンジのために動くことを決めてそう
  • 最後の裏宇宙に行くのはインターステラー感がつよい
  • ゲンドウ君がコミュ障のせいで人類補完計画を起こさないとシンジと話せなかったんだな
  • 坂本真綾が好きなのでマリが大活躍してくれて満足
  • 旧劇の突然挟まる実写パートが好きなので、最後の方はまだ実写来ないのかなって不安になってたけど、ちゃんと最後にあって満足

ブログの名前変えた

経緯

やっていき!!

Eclipseを使わずにGhidra Extensionをビルドする方法

Ghidraでは、Ghidra Extensionを作成して機能を拡張できます。 Ghidra Extensionは、使う度にScript Managerを通して呼び出すGhidra Scriptとは違い、Ghidraの起動時に自動的にロードされます。 このため、単にGhidra上で解析を効率化するための機能を実行するだけではなく、UIを拡張できます。

Ghidra Extensionのbuild.gradleにはEclipseに関する情報が書かれていますが、 Eclipseを使わずにGradleというビルドツールをコマンドラインから実行することでもビルド可能です。 環境変数GHIDRA_INSTALL_DIRに ビルド済みのGhidraがあるパスを指定し、gradleコマンドを実行してください。 git cloneして持ってきたままの状態のGhidraのリポジトリのパスを指定してもビルドできないので注意してください。

$ export GHIDRA_INSTALL_DIR=<Ghidraがあるディレクトリへの絶対パス>
$ gradle

また、環境変数GHIDRA_INSTALL_DIRは、gradleコマンドのPオプションに指定することもできます。

$ gradle -PGHIDRA_INSTALL_DIR=<Ghidraがあるディレクトリへの絶対パス>

上のコマンド例ではパスをexportしたり、コマンドのオプションに指定していますが、.bash_profileなどのシェルの設定ファイル内で環境変数として定義しておくことをおすすめします。 ビルドに成功していれば、./dist/以下にZIPファイルのExtensionができています。

Ghidraには、Extension開発の際に、テンプレートとして使うためのSkeleton Extensionが用意されています。 こちらもぜひ参考に見てください。

リバースエンジニアリングツールGhidra実践ガイドを執筆しました

去年、Ghidraについての技術同人誌を書いたことがきっかけで、商業誌としてGhidraを題材にしたリバースエンジニアリングの本を執筆しました。同人誌のときとは比べものにならないほど、ボリュームアップしています(なんと688ページ!!)のでぜひ読んでみてください。本日発売です!!

f:id:TAKEmaru:20200825073050j:plain:w550

www.amazon.co.jp

いい風景ですね

WEB+DB PRESS Vol.118に「はじめての脆弱性調査」を寄稿しました

WEB+DB PRESS Vol.118の「はじめての脆弱性調査」という特集を丸々執筆しました。

ツールの紹介を主とすることで、ナウい話題もいれつつ難易度を抑えたのがこだわりポイントです!古き良きハッカージャパンの記事を思い出しながら書きました。nginx alias traversalとかsubdomain takeoverとかナウいマニアックなお話も載っているので、入門記事の対象ではない方々もぜひ読んで見てください!8月24日発売です!

f:id:TAKEmaru:20200731124008j:plain:w550

gihyo.jp

実は今月はもう1冊著書が出るのですが、そっちはまだ表紙が公開されてないのでまた後日...

IDAPythonでpyenvでインストールしたPythonを選択する方法

IDAはバージョン7.4からPython3に対応した

IDAは拡張性にすぐれており、IDAPythonという独自拡張されたPythonによるスクリプティング機能を備えています。 最近までPython2系にしか対応していませんでしたが、バージョン7.4からPython3系に対応しました! 普通はIDAのインストーラがインストールされているPythonを見つけていいかんじにセットアップしてくれるのですが、 私の環境ではpyenvを使っているためやってくれませんでした.... その解決方法を紹介します!私はmacOS上にIDAをインストールしているので、 ここでの説明はmacOS向けのものになりますが、他OSでもおそらく手順は変わりません。

idapyswitchコマンドで使うPythonを選択する

インストーラPythonを見つけてくれなかったり、インストール後に異なるバージョンのPythonに切り替えたかったりしたときは、 idapyswitchコマンドで使用するPythonを後から選択可能です。 idapyswitchコマンドのヘルプに書かれている通り、主な使い方は、 「インストールされているPythonを見つける」、「見つけたPythonを適用する」、「Pythonの動的ライブラリのパスを指定して適用する」の3つです。

$ /Applications/IDA\ Pro\ 7.5/ida64.app/Contents/MacOS/idapyswitch -h
(省略)
IDA is no exception, and this tool is one such Python3 'switcher'.

It can be run in 3 ways:

  1) The default, interactive way
  -------------------------------
     > $ idapyswitch
   will look on the filesystem for available Python3 installations,
   present the user with a list of found versions (sorted according
   to preferability), and let the user pick which one IDA should use.

  2) The 'automatic' way
  ----------------------
     > $ idapyswitch --auto-apply
   will look on the filesystem for available Python3 installations,
   and automatically pick the one it deemed the most preferable.

  3) The 'manual' way
  -------------------
     > $ idapyswitch --force-path /path/to/Python.framework/Versions/3.7/Python
   will pick the path that the user provided.

Once a version is picked, this tool will do the following:

  * patch 'idapython.dylib' and 'idapython64.dylib' so that
    they refer to the right Python3 dylib.

なぜpyenvでインストールしたPythonを選択できなかったか

pyenvでPythonをインストールした場合、静的ライブラリを使ったものがインストールされますが、 idapyswitchコマンドで指定できるのは、Pythonランタイムの動的ライブラリです。 そのため、インストーラがpyenvでインストールしたPythonを認識できなかったようです。 macOSではotoolコマンドで実行ファイルに動的リンクされたライブラリを確認できます。 pyenvでインストールしたpythonの実行ファイルに対して、otoolコマンドを使うと次のようになります。 Python特有の動的ライブラリは確認できません。

$ otool -L /Users/tkmru/.pyenv/versions/3.8.3/bin/python
/Users/tkmru/.pyenv/versions/3.8.3/bin/python:
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
(compatibility version 150.0.0, current version 1575.17.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 1252.250.1)

pyenvでPythonをインストールする際に--enable-frameworkを指定すると、Pythonランタイムの動的ライブラリが生成されます。

$ env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.8.3

otoolで確認すると、Pythonという名前の動的ライブラリが確認できます。 idapyswitchコマンドでこのパスを指定すると、IDAがpyenvでインストールしたPythonを認識してくれます。

$ otool -L /Users/tkmru/.pyenv/versions/3.8.3/bin/python
/Users/tkmru/.pyenv/versions/3.8.3/bin/python:
    /Users/tkmru/.pyenv/versions/3.8.3/Python.framework/Versions/3.8/Python (compatibility version 3.8.0, current version 3.8.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1252.250.1)

$ file /Users/tkmru/.pyenv/versions/3.8.3/Python.framework/Versions/3.8/Python
/Users/tkmru/.pyenv/versions/3.8.3/Python.framework/Versions/3.8/Python: Mach-O 64-bit dynamically linked shared library x86_64

$ /Applications/IDA\ Pro\ 7.5/ida64.app/Contents/MacOS/idapyswitch --force-path \
> /Users/tkmru/.pyenv/versions/3.8.3/Python.framework/Versions/3.8/Python