PHP Extensions で HTTP リクエストのパラメータ値をロギングする

前回はPHP Extension を作って関数をフックしてみた 。 今回は HTTP リクエストを受け取った際に特定のパラメータを取得しロギングする PHP Extensions を作成してみる。 リクエストを受けつけるごとに読み込む必要があるため、 PHP_RINIT_FUNCTION として定義する。 zend_module_entry logging_module_entry = { ST...

入門 FUSE

FUSE が気になっていたので触ってみたメモ。 FUSE FUSE(Filesystem in Userspace) とは、ざっくり言えばユーザーランドで独自のファイルシステムを作れる機能を提供するソフトウェア。 人生において自作OSや自作言語、自作静的解析器等々、車輪の再開発を行いたいものは様々である。 自分が何も自作していないことに気づいて「人生とは…」となる。 そんな何も自作...

glibc mallocのメモ1

オルタードカーボン………100点!!!!! 最近はヒープ周りを勉強し直しているので、そのメモ。 環境 $ uname -a Linux ubuntu-xenial 4.4.0-133-generic #159-Ubuntu SMP Fri Aug 10 07:31:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux $ ...

ネットワーク経由で取得した共有ライブラリをファイルを作成せずに読み込む

夏休み突入でぇ~す!(CV: 門脇舞以) → 終了、了解! 皆さんはネットワーク経由からローカルにファイルを作成せずに共有ライブラリを読み込みたいと思ったことはありませんか? 僕はありません。 共有ライブラリのロード まずは普通に共有ライブラリをロードしてみる。以下のような共有ライブラリを用意する。 #include <stdio.h> void __attribute__ ((co...

簡易 strace を作ってシステムコールを表示する

いつまで経っても親知らずが人間から失われないの、歯医者業界との癒着か? strace は ptrace(2) でプロセスを監視することで呼び出されるシステムコールとその引数を表示している。 ここでは簡易的な strace を作成してシステムコールを表示してみる。 どのようにシステムコールを追いかけるか 今回は任意のプロセスにアタッチするのではなく、引数として与えた文字列を execvp してシス...

PHP Extension を作って関数をフックしてみる

夏休みに観る Netflix オススメ映画を募集しています。 PHP Extension で sha1() をフックして引数を表示するところまでやってみたのでメモ。 1. PHP Extension を作る準備 PHPのソースコード一式を落としてきてコンパイルする。 $ cd php7.2.8 $ ./configure $ make ext_skel を使うことでテンプレートが生成される。 -...