Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
UnPlus — CVE-2026-43499 Pro-Boot-Root-Exploit — Kernlogik (arm64 Android GKI 6.6) | Kitploit
Tools/GitHubGitHub/no-22-github/unplus
Android-SicherheitPrivilege EscalationExploitationPenetrationstestsBinary-Exploitation
GitHubno-22-github/unplus

UnPlus

CVE-2026-43499 Pro-Boot-Root-Exploit — Kernlogik (arm64 Android GKI 6.6)

Repository anzeigen
237vor 1 MonatNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

unplus

UnPlus

Kernlogikcode für den Kernel-Exploit zum Schreiben an beliebige Adressen (CVE-2026-43499 (Futex PI UAF)), um SELinux zu umgehen und Root zu erlangen.

Dieses Repository enthält nur den Quellcode der Kern-Exploit-Logik (src/) und den Single-Binary-Packer (wrapper/). src/target.h ist eine Vorlage, die mit den Parametern deines Geräts ausgefüllt werden muss, um ausgeführt zu werden (siehe unten »Geräteanpassung«).

Build

Kernlogik (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 库)

Das Ergebnis sind zwei ELF-Dateien, die keine externen Binärdateien einbetten.

Vollständiges Single-Binary-Paket (wrapper/)

Um den Exploit und die externen Payloads (magiskpolicy / ksud / kernelsu.ko) zu einem einzigen ausführbaren Binary zu packen, musst du diese externen Payloads selbst bereitstellen und dann mit wrapper/ packen:

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

Quellstruktur

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)

Geräteanpassung

src/target.h unterteilt sich in zwei Arten von Konstanten:

  • Mit ◆ FILL IN markierte: Geräte-/Kernel-bezogen, müssen mit deinen eigenen Werten gefüllt werden. In der Vorlage stehen Platzhalter wie 0xDEADBEEF..., sie kompilieren, aber das Programm stürzt ab.
  • Nicht markierte: GKI 6.6-Invarianten (Struct-Feld-Offsets), müssen normalerweise nicht geändert werden.

Gerätewechsel = Fülle den ◆ FILL IN-Teil aus. Was jedes Feld bedeutet und wie man es erhält, siehe unten 附录:字段说明.

Anhang: Feldbeschreibungen

target.h里◆ FILL IN的字段按用途分组:

Allgemeiner Hinweis: Alle *_OFF-Offsets können auf einem gerooteten Gerät mit kallsyms_lookup_name ermittelt werden, indem man die Symboladresse nimmt und KIMAGE_TEXT_BASE abzieht. TARGET_PCPU_* und TARGET_SELINUX_GOLDEN sind Laufzeit-/Dump-Werte und können nicht aus einem statischen Image gewonnen werden.

Lizenz

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

Danksagungen

  • CyberMeowfia Team — Pipe-physrw-Privilegieneskalations-Framework
  • Community-Geräteanpassungsreferenz
Tool herunterladen
GruppeFeld (Beispiel)Bedeutung / Abrufmethode
Build-IdentitätBUILD_VARIANT_LABEL、BUILD_FINGERPRINTBeliebige Kennungszeichenfolge für Logs. Trage den Build-Fingerprint deines Geräts ein.
SpeicherlayoutKIMAGE_TEXT_BASE、P0_PHYS_OFFSET、VMEMMAP_START usw.Layout der virtuellen/physikalischen Kernel-Adressen. Für arm64 VA39 sind normalerweise Standardwerte angegeben; über IKCONFIG / kallsyms / /proc/iomem bestätigen.
ASHMEMASHMEM_IOCTL_OFF ... ASHMEM_MISC_FOPS_OFFSymbol-Offsets der fops-Mitglieder und misc des ashmem-Treibers. kallsyms_lookup_name("ashmem_fops") usw.
CONFIGFS / PIPE / VFSCONFIGFS_READ_ITER_OFF、ANON_PIPE_BUF_OPS_OFF、KMALLOC_CACHES_OFF usw.Offsets von configfs read/write, splice, pipe_buf_ops, kmalloc_caches. Über kallsyms ermitteln.
SELinuxSELINUX_ENFORCING_OFF、SELINUX_BLOB_SIZES_OFF、SECURITY_HOOK_HEADS_OFFOffsets von selinux_state / selinux_blob_sizes / security_hook_heads. SELINUX_ENFORCING_OFF ist der Ankerpunkt für den Kernel-Build-Abgleich, muss exakt sein.
Core-Kernel-SymboleINIT_TASK_OFF、INIT_CRED_OFF、ENTRY_TASK_PERCPU_OFF usw.Offsets von init_task / init_cred / entry_task / __per_cpu_offset / root_task_group. Über kallsyms ermitteln; ENTRY_TASK_PERCPU_OFF ist der Offset von __entry_task innerhalb der percpu-Sektion.
Per-CPU-LaufzeitTARGET_PCPU_BASE_ADDR、TARGET_PCPU_UNIT_SIZELaufzeit-Adresse des per-CPU-Chunks (nach KASLR), ändert sich bei jedem Boot. Muss zur Laufzeit ausgelesen werden; UNIT_SIZE hängt von der Anzahl der CPUs ab.
SLIDE (KASLR-Leak)SLIDE_NFULNL_LOGGER_OFF、SLIDE_RANDOM_BOOT_ID_DATA_OFF usw.Kernel-Daten-Symbol-Offsets für KASLR-Leak (nfulnl_logger / boot_id data usw.). Über kallsyms ermitteln.
SELinux-GoldenTARGET_SELINUX_GOLDENBoolesche Vorlage der ersten 16 Bytes von selinux_state, über Neustarts hinweg stabil, aber gerätespezifisch. Muss aus dem selinux_state-Dump deines Geräts ermittelt werden. Byte0 ist das enforcing-Bit, der Aufrufer schreibt 0x00 für permissive.
Pipe-Inode-InfoPIPE_INODE_INFO_*、PIPE_HEAD_OFF usw.Strukturlayout von pipe_inode_info, innerhalb derselben GKI-Familie normalerweise stabil, bei Kernel-Build-Wechsel überprüfen.