
CVE-2015-1474の概念実証エクスプロイト。Android SurfaceFlingerにおける不正なパーセルクラッシュをデシリアライゼーション経由で実証し、影響を受けるデバイスでの権限昇格を可能にします。
このコードは、CVE-2015-1474 の PoC の試作品となることを意図しています。 コードは screencap コマンドのコードをベースにしていますが、デシリアライズ時に SurfaceFlinger をクラッシュさせる不正な Parcel を生成します。 詳細は http://forum.xda-developers.com/kindle-fire-hdx/orig-development/evaluating-cve-2015-1474-to-escalate-to-t3045163 を参照してください。
frameworks/base/cmds/badscreencap 以下にクローンし、mmm frameworks/base/cmds/badscreencap でコンパイルしてください。 コンパイルするには、BBinder::onTransact の可視性を public に変更する必要があります(frameworks/native/include/Binder.h 内)。これはそのメソッドの vtable オフセットを取得するために必要です。
ネイティブの Android フレームワーク全体をビルドしたくない場合は、必要な .so ファイルをデバイス(または OTA パッケージ)から取得できます。