Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SKRoot Pro 奥创版 (Ultron Edition) V3.0

概述

SKRoot Pro 奥创版是SKRoot的最新专业版本,专门针对Linux 6.6内核深度优化。基于超强隐蔽版架构,新增三个Phase的增强功能。

版本演进

版本 特性
Lite版 基础ROOT + SELinux绕过
Pro版 模块系统 + 动态Hook
超强隐蔽版 .text段NOP注入 + 分布式存储
奥创版 内存安全 + prctl通信 + dm-verity绕过

奥创版新增功能

Phase 1: 安全加固

  • 内存边界检查: CMD 1/2验证内核地址范围(高16位=0xFFFF)
  • 块复制优化: 8字节批量复制,性能提升8倍
  • 缓存刷新: CMD 5添加DC/IC/DSB/ISB序列确保Hook立即生效
  • 错误码体系: CommError命名空间定义-1到-7错误码

Phase 2: 功能增强

  • 进程隐藏: .sk_前缀文件/进程在/proc中不可见
  • SELinux动态控制: CMD 9运行时切换enforcing/permissive
  • 反检测框架: kallsyms过滤、maps隐藏、完整性检查绕过

Phase 3: 隐蔽通信

  • prctl通信: 比execve更隐蔽,难以被strace检测
  • dm-verity绕过: 绕过Android根文件系统完整性验证
  • syscall符号支持: sys_call_table地址查找

目录结构

patch_kernel_sk/
├── patch_kernel_sk.cpp          # 主程序
├── patch_kernel_sk.h            # 主头文件
├── patch_base_6_6.h/cpp         # 6.6专用基类
├── patch_do_execve_6_6.h/cpp    # execve提权hook
├── patch_communication.h/cpp    # 通信处理器 (含奥创版增强)
├── patch_hook_area.h/cpp        # Hook跳板区
├── patch_avc_denied_6_6.h/cpp   # SELinux绕过
├── patch_audit_log_start_6_6.h/cpp  # 审计日志隐藏
├── patch_filldir64_6_6.h/cpp    # 目录隐藏
├── patch_current_avc_check_6_6.h/cpp # AVC检查函数
├── # 奥创版新增
├── patch_proc_hide_6_6.h/cpp    # 进程隐藏
├── patch_selinux_6_6.h/cpp      # SELinux增强
├── patch_anti_detect_6_6.h/cpp  # 反检测
├── patch_prctl_comm_6_6.h/cpp   # prctl通信
├── patch_verity_bypass_6_6.h/cpp # dm-verity绕过
├── analyze/                      # 符号分析
└── 3rdparty/                    # 第三方库

编译

使用Docker (推荐)

docker build -t skroot-ultron .
docker run --rm -v $(pwd)/output:/output skroot-ultron

本地编译

mkdir build && cd build
cmake ..
make -j$(nproc)

使用方法

1. 提取内核文件

magiskboot unpack boot.img
# 得到 kernel 文件

2. 运行patch工具

# 自动模式
./patch_kernel_sk kernel --auto

# 交互模式
./patch_kernel_sk kernel

3. 重新打包并刷入

magiskboot repack boot.img
fastboot flash boot new-boot.img

通信协议

execve方式 (传统)

格式: /<root_key>/<cmd>/<param1>/<param2>/...

命令码:
1 = 读取内核内存: /key/1/<kaddr>/<size>/<user_buf>
2 = 写入内核内存: /key/2/<kaddr>/<size>/<user_buf>
3 = 执行shellcode: /key/3/<code_addr>/<result_buf>
4 = 符号查找: /key/4/<name_ptr>/<result_buf>
5 = 安装Hook: /key/5/<target_addr>/<hook_handler>/<result_buf>
6 = 分配内核内存: /key/6/<size>/<result_buf>
7 = 释放内核内存: /key/7/<kaddr>
8 = 获取Hook区信息: /key/8/<result_buf>
9 = SELinux切换: /key/9/<state>/<result_buf> (奥创版新增)

prctl方式 (奥创版新增,更隐蔽)

// 操作码: 0x534B0000 - 0x534BFFFF

prctl(0x534B0000, key_ptr, 0, 0, 0);           // 认证
prctl(0x534B0001, kaddr, size, ubuf, 0);       // 读内存
prctl(0x534B0002, kaddr, size, ubuf, 0);       // 写内存
prctl(0x534B0003, code_addr, result_ptr, 0, 0);// 执行
prctl(0x534B0004, name_ptr, result_ptr, 0, 0); // 符号查找
prctl(0x534B0009, 0, 0, 0, 0);                 // 提权
prctl(0x534B0008, state, result_ptr, 0, 0);   // SELinux

SDK使用

传统execve方式

#include "module_base_kernel_mem.h"

kernel_module::init_root_key("your_48_char_root_key");
uint64_t kaddr = 0xffff800012340000;
uint8_t buf[128];
KModErr err = kernel_module::read_kernel_mem(kaddr, buf, sizeof(buf));

prctl方式 (奥创版推荐)

#include "module_prctl_comm.h"

using namespace kernel_module::prctl_comm;

// 检查可用性
if (is_available()) {
    // 认证
    authenticate("your_48_char_root_key");
    
    // 读内核内存
    uint8_t buf[128];
    read_kernel_mem(0xffff800012340000, buf, sizeof(buf));
    
    // 获取ROOT
    get_root();
    
    // 设置SELinux为permissive
    int old_state;
    set_selinux(0, &old_state);
}

错误码

CommError (内核返回)

错误码 名称 说明
0 OK 成功
-1 ERR_INVALID_CMD 无效命令码
-2 ERR_INVALID_ADDR 无效地址
-3 ERR_SIZE_TOO_LARGE 请求大小超限(>1MB)
-4 ERR_SYMBOL_NOT_FOUND 符号未找到
-5 ERR_ALLOC_FAILED 内存分配失败
-6 ERR_HOOK_RANGE Hook跳转超出±128MB
-7 ERR_NOT_AVAILABLE 功能不可用

注意事项

  1. 仅支持Linux 6.6内核: ARM64架构
  2. 需要解锁Bootloader: 刷入修改后的boot.img需要解锁
  3. 建议先测试: 在QEMU/模拟器中测试后再刷入实机
  4. 保留备份: 操作前务必备份原始boot.img

风险提示

  • 内核修改可能导致设备无法启动
  • 错误的Hook可能导致系统崩溃
  • dm-verity绕过可能影响OTA更新
  • 请确保了解所有操作的后果

更新日志

V3.0 (奥创版)

  • 新增Phase 1-3全部功能
  • prctl隐蔽通信
  • dm-verity绕过框架
  • 内存安全检查
  • SELinux动态控制

V2.0 (超强隐蔽版)

  • .text段NOP注入
  • 分布式代码存储
  • 文件大小不变

V1.0 (Pro版)

  • 模块系统
  • 动态Hook
  • 内核内存操作

License

本项目仅供学习研究使用。

About

SKRoot Pro 奥创版 - Linux 6.6内核ROOT工具

Resources

Stars

19 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages