Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
UnPlus — CVE-2026-43499 ブート毎のrootエクスプロイト — 中核ロジック (arm64 Android GKI 6.6) | Kitploit
ツール/GitHubGitHub/no-22-github/unplus
Androidセキュリティ特権昇格エクスプロイトペネトレーションテストバイナリエクスプロイト
GitHubno-22-github/unplus

UnPlus

CVE-2026-43499 ブート毎のrootエクスプロイト — 中核ロジック (arm64 Android GKI 6.6)

リポジトリを見る
2326日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

unplus

UnPlus

CVE-2026-43499 (Futex PI UAF) カーネル任意アドレス書き込みエクスプロイトのコアロジックコード。SELinux をバイパスして root を取得するために使用します。

このリポジトリには、コアエクスプロイトロジックのソースコード(src/)と単一バイナリパッケージャー(wrapper/)のみが含まれています。 src/target.h はテンプレートであり、自分のデバイスのパラメータを入力して初めて実行できます(下記「デバイス適合」を参照)。

ビルド

コアロジック(src/)

root@kitploit:~
# 环境要求: Android NDK r29+ (API 35, aarch64)
export ANDROID_NDK_ROOT=/path/to/android-ndk

# 构建纯逻辑产物
make
# → build/unplus            (exploit 二进制)
# → build/unplus_preload.so (preload 库)

成果物は2つのELFであり、外部バイナリは埋め込まれていません。

完全な単一バイナリパッケージング(wrapper/)

エクスプロイトと外部ペイロード(magiskpolicy / ksud / kernelsu.ko)をワンクリックで実行できる単一バイナリにパッケージングするには、これらの外部ペイロードを自分で用意した上で wrapper/ を使用してパッケージングします:

root@kitploit:~
# 1. 先构建 src/ 产物(见上)
# 2. 生成 payload 数据(payload_data.h 不在仓库,由用户自生成,含外部二进制字节流)
cd wrapper
python3 embed_payloads.py \
  --unplus ../build/unplus \
  --preload ../build/unplus_preload.so \
  --magiskpolicy <path> \
  --ksud <path> \
  --kernelsu <path> \
  --out payload/
# 3. 编译单二进制
make    # → wrapper/build/unplus

ソースコード構成

root@kitploit:~
src/
├── target.h          设备参数模板(◆ FILL IN 标记处需填你的设备值)
├── offset.h          target.h 的路由胶水(经 -DTARGET_CONFIG_H 注入)
├── unplus.h          编排头 + 共享声明(含 P0 alias / data_addr 等派生宏)
├── main.c            入口编排
├── stage1.c          Write 1/2:SELinux 关闭 + cred 覆写
├── root.c            Android root 落地(SELinux golden 修复 + sepolicy + KSU allowlist)
├── slide.c           KASLR leak
├── fops.c            configfs/fops 路由 + 内核基址推导
├── route.c           PI futex 路由线程
├── direct_write.c    direct read 原语
├── pipe_direct.c     direct pselect write
├── pipe_physrw.c     pipe physrw 原语
├── util.c            工具函数
├── utils.h           通用工具(日志、procfs 路径)
├── kernelsnitch.h    架构层(ARM64/x86 identity-map)
├── futex_hash.h      内核 jhash 移植(通用)
└── timeutils.h       架构层计时(ARM/x86/AMD)

デバイス適合

src/target.h の定数は2種類に分かれます:

  • ◆ FILL IN でマークされたもの:デバイス/カーネル関連で、自分の値を入力する必要があります。テンプレートでは 0xDEADBEEF... がプレースホルダになっており、コンパイルはできますが実行するとクラッシュします。
  • マークがないもの:GKI 6.6 の不変条件(struct フィールドオフセット)で、通常は変更不要です。

デバイスを変更する場合 = ◆ FILL IN 部分を埋めます。各フィールドの詳細と取得方法は、下記 付録:フィールド説明 を参照してください。

付録:フィールド説明

target.h 内の ◆ FILL IN フィールドは用途別にグループ化されています:

一般的な経験則:すべての *_OFF 系オフセットは、root 化されたデバイスの kallsyms_lookup_name でシンボルアドレスを取得し、KIMAGE_TEXT_BASE を引けば得られます。TARGET_PCPU_* と TARGET_SELINUX_GOLDEN は実行時/ダンプ値であり、静的イメージからは取得できません。

ライセンス

WTFPL — Do What The Fuck You Want To Public License.

謝辞

  • CyberMeowfia チーム — pipe physrw 特権昇格フレームワーク
  • コミュニティのデバイス適合に関する参考
ツールをダウンロード
グループフィールド(例)意味 / 取得方法
Build identityBUILD_VARIANT_LABEL、BUILD_FINGERPRINT任意の識別文字列で、ログに使用します。デバイスの build fingerprint を入力します
Memory layoutKIMAGE_TEXT_BASE、P0_PHYS_OFFSET、VMEMMAP_START 等カーネルの仮想/物理アドレスレイアウト。arm64 VA39 は通常デフォルト値が与えられています;IKCONFIG / kallsyms / /proc/iomem から確認します
ASHMEMASHMEM_IOCTL_OFF ... ASHMEM_MISC_FOPS_OFFashmem ドライバの各 fops メンバー + misc のシンボルオフセット。kallsyms_lookup_name("ashmem_fops") など
CONFIGFS / PIPE / VFSCONFIGFS_READ_ITER_OFF、ANON_PIPE_BUF_OPS_OFF、KMALLOC_CACHES_OFF 等configfs の読み書き、splice、pipe_buf_ops、kmalloc_caches のオフセット。kallsyms で調べます
SELinuxSELINUX_ENFORCING_OFF、SELINUX_BLOB_SIZES_OFF、SECURITY_HOOK_HEADS_OFFselinux_state / selinux_blob_sizes / security_hook_heads のオフセット。SELINUX_ENFORCING_OFF はカーネルビルド一致のアンカーであり、正確である必要があります
Core kernel symbolsINIT_TASK_OFF、INIT_CRED_OFF、ENTRY_TASK_PERCPU_OFF 等init_task / init_cred / entry_task / __per_cpu_offset / root_task_group のオフセット。kallsyms で調べます;ENTRY_TASK_PERCPU_OFF は percpu section 内での __entry_task のオフセットです
Per-CPU runtimeTARGET_PCPU_BASE_ADDR、TARGET_PCPU_UNIT_SIZEper-CPU chunk の実行時アドレス(KASLR 後)。起動のたびに変わります。実行時ダンプが必要です;UNIT_SIZE は CPU 数に依存します
SLIDE (KASLR leak)SLIDE_NFULNL_LOGGER_OFF、SLIDE_RANDOM_BOOT_ID_DATA_OFF 等KASLR リークに使用するカーネルデータシンボルのオフセット(nfulnl_logger / boot_id data など)。kallsyms で調べます
SELinux goldenTARGET_SELINUX_GOLDENselinux_state の先頭 16 バイトの boolean テンプレート。再起動をまたいで安定していますが、デバイスごとに異なります。自分のデバイスの selinux_state ダンプから取得する必要があります。byte0 は enforcing ビットで、呼び出し側が 0x00 を書き込むと permissive を意味します
pipe inode infoPIPE_INODE_INFO_*、PIPE_HEAD_OFF 等pipe_inode_info 構造体のレイアウト。同じ GKI family 内では通常安定しており、カーネルビルドを変更した場合は検証が必要です