by shigemk2

当面は技術的なことしか書かない

malloc分からん #kernelvm

@6f70

本当に分からない

本当に?

やりたかったこと

Memory Disclosureの脆弱性を作りこみたい

CTFの問題を作っていた

SECCON 競技コンテスト開催!

  • メモリー上の秘密のデータを読み出せたら点数を得る(Heartbleed的な)

  • クイズゲームを模した対話的プログラム
  • ヒープ上の狭いレンジを読み出せる脆弱性
  • ヒープのレイアウトを調整する必要

mallocを複数回呼び出す

理想

mallocした領域から下位アドレスから上位アドレスに向かって積み上がる

現実

mallocの気まぐれ

  • mallocが避けた領域には何もないはずなのに
  • 1/5くらいの確率で素直に積み上がる
  • eglibc

64byte以下のサイズでもズレが起こる

Embedded GLIBC - Wikipedia

break @ gdb

予期しないところからmallocが呼ばれている?

dump memory @ gdb

なにも分からないのでひたすらdumpを眺める

推測まとめ

  • 過去にfreeした領域でサイズが近いものが残っている場合はアドレスをすっ飛ばして再利用するのか?
  • malloc分からん
  • mallocの確保先は予測できる
  • 運頼み