タグ

Linuxとprogrammingに関するkaito834のブックマーク (2)

  • ウノウラボ Unoh Labs: LD_PRELOADを使って任意の関数呼び出しにフックしてみる

    尾藤正人(a.k.a BTO)です 先日の社内勉強会のLTでLD_PRELOADについて簡単にやってみました。 LD_PRELOADって? 環境変数$LD_PRELOADを使うと他のライブラリの読み込みの前に任意のライブラリを先に読み込ませることができます。 実行プログラムの形式にELF形式を採用しているOSで使うことができます。 Linuxであれば問題なく使用できるはずです。 何ができるのか プログラムを変更することなく、任意の関数を上書きしたり、任意の関数にフックすることができます。 libhookwriteを作ってみた 簡単なサンプルプログラムとしてlibhookwriteというのを作ってみました。 libhookwriteはその名の通りwrite(2)にフックをかけることができます。 といってもできることは限られていてファイルのタイムスタンプの更新か、任意のプログラムをsh

    kaito834
    kaito834 2011/07/05
    環境変数 LD_PRELOAD を使った関数の hook(フック)。「実行プログラムの形式にELF形式を採用しているOSで使うことができます」 via 「ファジング ブルートフォースによる脆弱性発見手法」 p.93 ライブラリのプレロード。
  • ASLR, setarch -RL, prelink, PIE and LD_USE_LOAD_BIAS - memologue

    独り言です。(慣れないkernelの)コードをざーっと調べて、あまりまじめには検証しないで書いてます。FC5限定なので細かい記述の賞味期間はあと30日くらいでしょうか。 ASLR 私の使っているFC5のkernel/glibcには、一般にASLR(address space layout randomization)とか呼ばれている、日々のhackの邪魔になるセキュリティ的に大変よろしい機能があります。ASLRをフルに機能させると、プロセスの動作するアドレス空間において DSOをどこに貼り付けるか (glibcの elf/dl-load.c の _dl_map_object_from_fd()) ELFのinterp (/lib/ld.so) をどこに貼り付けるか (kernel の fs/binfmt_elf.c の load_elf_interp()) 実行ファイルをどこに貼り付けるか

    ASLR, setarch -RL, prelink, PIE and LD_USE_LOAD_BIAS - memologue
    kaito834
    kaito834 2011/04/21
    Linux における ASLR(Address Space Layout Randomization) の話題。/proc/sys/kernel/randomize_va_space の存在を知り、検索してたどり着いた。スタック(Stack)の開始位置やヒープ(Heap)の開始位置などがずれるようだ。
  • 1