c

Linuxでプロセス単位にaslrのon/offを切り替える仕組みめも

gdb turns off ASLR « codeblogを見ていてpersonality(2)を使えば良いのか〜と知ったのでめもです。 tl;dr personality(2)でADDR_NO_RANDOMIZEをセットすればoffにできる。 personality(2) aslr以外にも設定可能な項目はいくつか有ります。設定されている内…

libbfdのめも

libbfdの使い方のめもです。利用してるバージョンはbinutils-devel-2.31.1-13.fc29.x86_64です。 nmもどき アドレスとセクション名、それにdebug情報があればファイル名と行数を表示。連想配列が使いたかったのでヘッダファイルだけで実装されてるuthashとい…

φ(..)メモメモ gccの3項演算子の拡張メモ

c

Linuxカーネルのコードを読んでいて?:なんて演算子が使われていて???と思ったのでめも。 gccの拡張機能で3項演算子の拡張としてUsing the GNU Compiler Collection (GCC): Conditionalsなんてのがありました。 以下のようなコードを z = x ? x : y このよ…

c、golang、ruby、pythonで簡単なサーバを書いて比べてみる

c以外は手軽に書けることは間違いないんだけど、ちょっとやってみますかということで。 サーバの処理としてはtcp port 9999で待ち受けて、クライアントからアクセスがあったら"hello, world"を返すだけのもの。 実装方法は完全に同じじゃなくて、例えばcだと…

OpenBSDのexplicit_bzero(3)の仕組み

OpenBSDのlibcにはexplicit_bzero(3)という関数があって、変数を使い終わった後にmemset(3)で0クリアできるようにする関数。 これはコンパイラがmemset()後にその変数が使われないならmemset()自体いらないだろうという最適化によってmemset()自体が消される…

Redisのsortコマンドでlimitをつけた場合はどんな感じのソートをしているのか

なんていうことを特に調べるつもりはなくて、なんとなくRedisのsrc/を見てたらpqsort.cというのを見つけたのでファイルを開いて見てみたらNetBSD由来のqsortっぽくて、へ~なんて思っていたけどpqsort(3)なんて有ったっけ?なんて思いつつファイルをよく見た…