diff --git a/module_clear_usb_trace/changelog.txt b/module_clear_usb_trace/changelog.txt new file mode 100644 index 00000000..6af93b11 --- /dev/null +++ b/module_clear_usb_trace/changelog.txt @@ -0,0 +1,5 @@ +0.0.3更新内容: + 兼容新版本SKRoot Pro + +0.0.1: + 测试版本发布 \ No newline at end of file diff --git a/module_clear_usb_trace/module.zip b/module_clear_usb_trace/module.zip new file mode 100644 index 00000000..3ee10add Binary files /dev/null and b/module_clear_usb_trace/module.zip differ diff --git a/module_clear_usb_trace/update.json b/module_clear_usb_trace/update.json new file mode 100644 index 00000000..71ee3902 --- /dev/null +++ b/module_clear_usb_trace/update.json @@ -0,0 +1,5 @@ +{ + "version": "0.0.3", + "zipUrl": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_clear_usb_trace/module.zip", + "changelog": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_clear_usb_trace/changelog.txt" +} \ No newline at end of file diff --git a/module_demo/module_fake_system_file.zip b/module_demo/module_fake_system_file.zip new file mode 100644 index 00000000..e0f2b00a Binary files /dev/null and b/module_demo/module_fake_system_file.zip differ diff --git a/module_demo/module_hello_world.zip b/module_demo/module_hello_world.zip new file mode 100644 index 00000000..65fe024f Binary files /dev/null and b/module_demo/module_hello_world.zip differ diff --git a/module_demo/module_install_uninstall_cb_demo.zip b/module_demo/module_install_uninstall_cb_demo.zip new file mode 100644 index 00000000..96fefede Binary files /dev/null and b/module_demo/module_install_uninstall_cb_demo.zip differ diff --git a/module_demo/module_update_demo.zip b/module_demo/module_update_demo.zip new file mode 100644 index 00000000..8ceb3953 Binary files /dev/null and b/module_demo/module_update_demo.zip differ diff --git a/module_demo/module_web_ui_example.zip b/module_demo/module_web_ui_example.zip new file mode 100644 index 00000000..0fa32f29 Binary files /dev/null and b/module_demo/module_web_ui_example.zip differ diff --git a/module_fake_device/aling_fake_dev_changelog.txt b/module_fake_device/aling_fake_dev_changelog.txt new file mode 100644 index 00000000..d5597425 --- /dev/null +++ b/module_fake_device/aling_fake_dev_changelog.txt @@ -0,0 +1,2 @@ +5.2.2: + 修正IQOO 15机型设置属性不全的问题 \ No newline at end of file diff --git a/module_fake_device/aling_fake_dev_module.zip b/module_fake_device/aling_fake_dev_module.zip new file mode 100644 index 00000000..5dbd9940 Binary files /dev/null and b/module_fake_device/aling_fake_dev_module.zip differ diff --git a/module_fake_device/aling_fake_dev_update.json b/module_fake_device/aling_fake_dev_update.json new file mode 100644 index 00000000..7ea5e191 --- /dev/null +++ b/module_fake_device/aling_fake_dev_update.json @@ -0,0 +1,5 @@ +{ + "version": "5.2.2", + "zipUrl": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_fake_device/aling_fake_dev_module.zip", + "changelog": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_fake_device/aling_fake_dev_changelog.txt" +} \ No newline at end of file diff --git a/module_fake_device/aling_fake_zui_changelog.txt b/module_fake_device/aling_fake_zui_changelog.txt new file mode 100644 index 00000000..e69de29b diff --git a/module_fake_device/aling_fake_zui_module.zip b/module_fake_device/aling_fake_zui_module.zip new file mode 100644 index 00000000..b571dd3f Binary files /dev/null and b/module_fake_device/aling_fake_zui_module.zip differ diff --git a/module_fake_device/aling_fake_zui_update.json b/module_fake_device/aling_fake_zui_update.json new file mode 100644 index 00000000..460fba6e --- /dev/null +++ b/module_fake_device/aling_fake_zui_update.json @@ -0,0 +1,5 @@ +{ + "version": "1.0.1", + "zipUrl": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_fake_device/aling_fake_zui_module.zip", + "changelog": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_fake_device/aling_fake_zui_changelog.txt" +} \ No newline at end of file diff --git a/module_fake_device/cycle1337_bypass_device_flag_changelog.txt b/module_fake_device/cycle1337_bypass_device_flag_changelog.txt new file mode 100644 index 00000000..927b12fd --- /dev/null +++ b/module_fake_device/cycle1337_bypass_device_flag_changelog.txt @@ -0,0 +1,5 @@ +4.0.3版本: + 1.修复指纹分区问题。 + +4.0.2版本: + 1.修复一些反馈的问题。 \ No newline at end of file diff --git a/module_fake_device/cycle1337_bypass_device_flag_module.zip b/module_fake_device/cycle1337_bypass_device_flag_module.zip new file mode 100644 index 00000000..948fa81f Binary files /dev/null and b/module_fake_device/cycle1337_bypass_device_flag_module.zip differ diff --git a/module_fake_device/cycle1337_bypass_device_flag_update.json b/module_fake_device/cycle1337_bypass_device_flag_update.json new file mode 100644 index 00000000..037aa785 --- /dev/null +++ b/module_fake_device/cycle1337_bypass_device_flag_update.json @@ -0,0 +1,5 @@ +{ + "version": "4.0.3", + "zipUrl": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_fake_device/cycle1337_bypass_device_flag_module.zip", + "changelog": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_fake_device/cycle1337_bypass_device_flag_changelog.txt" +} \ No newline at end of file diff --git a/module_fake_thermal/changelog.txt b/module_fake_thermal/changelog.txt new file mode 100644 index 00000000..368b5a67 --- /dev/null +++ b/module_fake_thermal/changelog.txt @@ -0,0 +1,8 @@ +1.0.3: + 进一步提高性能 + +1.0.2: + 稳定性修复 + +1.0.0: + 模块发布 \ No newline at end of file diff --git a/module_fake_thermal/module.zip b/module_fake_thermal/module.zip new file mode 100644 index 00000000..1631181d Binary files /dev/null and b/module_fake_thermal/module.zip differ diff --git a/module_fake_thermal/update.json b/module_fake_thermal/update.json new file mode 100644 index 00000000..33ea19b5 --- /dev/null +++ b/module_fake_thermal/update.json @@ -0,0 +1,5 @@ +{ + "version": "1.0.3", + "zipUrl": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_fake_thermal/module.zip", + "changelog": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_fake_thermal/changelog.txt" +} \ No newline at end of file diff --git a/module_hide_data_dir/changelog.txt b/module_hide_data_dir/changelog.txt new file mode 100644 index 00000000..d5f41d32 --- /dev/null +++ b/module_hide_data_dir/changelog.txt @@ -0,0 +1,17 @@ +1.0.8更新内容: + 联动【隐蔽的终端】模块,仅【隐蔽的终端】可查看目录。 + +1.0.5更新内容: + 稳定性修复 + +1.0.4更新内容: + 兼容新版本SKRoot Pro + +1.0.3更新内容: + 兼容新版本SKRoot Pro + +0.0.7更新内容: + 支持加号+设置路径 + +0.0.1: + 测试版本发布 \ No newline at end of file diff --git a/module_hide_data_dir/module.zip b/module_hide_data_dir/module.zip new file mode 100644 index 00000000..27a9850f Binary files /dev/null and b/module_hide_data_dir/module.zip differ diff --git a/module_hide_data_dir/update.json b/module_hide_data_dir/update.json new file mode 100644 index 00000000..5cb3422f --- /dev/null +++ b/module_hide_data_dir/update.json @@ -0,0 +1,5 @@ +{ + "version": "1.0.8", + "zipUrl": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_hide_data_dir/module.zip", + "changelog": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_hide_data_dir/changelog.txt" +} \ No newline at end of file diff --git a/module_hide_sh_exec/changelog.txt b/module_hide_sh_exec/changelog.txt new file mode 100644 index 00000000..8763e009 --- /dev/null +++ b/module_hide_sh_exec/changelog.txt @@ -0,0 +1,21 @@ +3.0.5: + 1.新增可显示隐藏的目录 + +3.0.4: + 1.修复无法回车的问题。 + 2.修复无法隐藏目录的问题。 + +3.0.3: + 修复一些可执行程序无法执行的问题。 + +3.0.2: + 修复一些sh无法执行的问题。 + +3.0.1: + 全新界面:新增文件管理、输入模拟器 + +2.0.0: + 修复卸载管理器APP时,隐蔽的系统终端模块会断线的bug。 + +1.0.0: + 模块发布 \ No newline at end of file diff --git a/module_hide_sh_exec/module.zip b/module_hide_sh_exec/module.zip new file mode 100644 index 00000000..e4d826b0 Binary files /dev/null and b/module_hide_sh_exec/module.zip differ diff --git a/module_hide_sh_exec/update.json b/module_hide_sh_exec/update.json new file mode 100644 index 00000000..9cc6215b --- /dev/null +++ b/module_hide_sh_exec/update.json @@ -0,0 +1,5 @@ +{ + "version": "3.0.5", + "zipUrl": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_hide_sh_exec/module.zip", + "changelog": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_hide_sh_exec/changelog.txt" +} \ No newline at end of file diff --git a/module_tricky_store/changelog.txt b/module_tricky_store/changelog.txt new file mode 100644 index 00000000..8d5c2c3b --- /dev/null +++ b/module_tricky_store/changelog.txt @@ -0,0 +1,14 @@ +1.4.1-r5更新内容: + 1.修复一些细节痕迹问题。 + 2.不再清空adb和tmp文件夹。 + +1.4.1-r3更新内容: + 1.修复获取APP列表会失败的问题。 + +1.4.1-b更新内容: + 1.新增隐藏BL功能. + 2.修复系统属性被侦测问题。 + 3.修复卸载模块时有残留的问题。 + +1.4.1-a更新内容: + 兼容SKRoot Pro diff --git a/module_tricky_store/module.zip b/module_tricky_store/module.zip new file mode 100644 index 00000000..22f4b898 Binary files /dev/null and b/module_tricky_store/module.zip differ diff --git a/module_tricky_store/update.json b/module_tricky_store/update.json new file mode 100644 index 00000000..b2a33122 --- /dev/null +++ b/module_tricky_store/update.json @@ -0,0 +1,5 @@ +{ + "version": "1.4.1-r5", + "zipUrl": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_tricky_store/module.zip", + "changelog": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_tricky_store/changelog.txt" +} \ No newline at end of file diff --git a/skroot_pro_app/app.apk b/skroot_pro_app/app.apk new file mode 100644 index 00000000..e9f8a614 Binary files /dev/null and b/skroot_pro_app/app.apk differ diff --git a/skroot_pro_app/changelog.txt b/skroot_pro_app/changelog.txt new file mode 100644 index 00000000..ff55347f --- /dev/null +++ b/skroot_pro_app/changelog.txt @@ -0,0 +1,145 @@ +4.3.5更新内容: + 1.修复skroot模块后台运行,内存会被回收问题。 + 2.新增 ADB 开发者模式开关。 + 3.支持华为nova2s Linux4.9机型 + +4.3.4更新内容: + 1.修复管理器的一些bug。 + 2.修复 ADB 漏洞会被恶意利用导致被侦测的BUG。 + 3.修复"小米8PadPro"修补缺陷,导致残留痕迹会被侦测的问题(需重新修补)。 + 4.修复 su 命令根目录不正确的问题,导致部分程序运行异常。 + 5.新增偏移量接口 (跨内核):file->f_flags,f_mode,f_pos + 6.新增管理器显示系统基本环境。 + 7.支持华为荣耀Linux4.4机型。 + +4.3.3更新内容: + 1.修复su无法查看/data/data的问题。 + +4.3.2更新内容: + 1.修复部分android16设备无法越狱的问题。 + 2.修复skroot模块安装、卸载回调无法使用部分接口问题。 + 3.新增偏移量接口 (跨内核):inode->i_rdev,i_bdev + 4.新增偏移量接口 (跨内核):renamedata->old_dir,new_dir + 5.新增清空日志按钮。 + 6.升级【防标记&自动清理】模块。 + 7.升级【隐蔽的终端】模块:添加文件操作、输入模拟器。 + +4.3.1更新内容: + 1.修复GPU漏洞被利用时触发死机警报(需重新修补)。 + 2.修复一些痕迹安全问题。 + 3.修复小米17、红米K90、一加15无法越狱的问题。 + 4.新增添加adb授权功能。 + 5.新增软重启功能。 + 6.新增内核API调用 (export_symbol.h) + +4.3.0更新内容: + 1.修复一加手机越狱残留痕迹(免解Root模式,一加可解决momo调试环境提示)。 + 2.修复内核安装Hook偶尔会失败的问题。 + +4.2.9更新内容: + 1.修复内核函数Hook之后再 blr 调用会死机的缺陷。 + 2.修复小米6、小米9机型不兼容的问题。 + 3.修复一加ace2会睡死问题(需重新修补)。 + 4.新增热启动模式(免解Root模式,一加可解决momo调试环境提示)。 + 5.新增偏移量接口 (跨内核):cred->cap_inheritable、task->stack、THREAD_SIZE + 6.新增内核API调用 (export_symbol.h) + +4.2.7更新内容: + 1.修复管理器的一些bug。 + 2.修复移除 Root 授权时会死机的问题。 + 3.修复卸载管理器APP时,隐蔽的系统终端模块会断线的bug。 + 4.新增WebUI常驻回调选项。 + 5.新增模块“运行异常”状态。 + 6.新增一些伪装机型模块。 + +4.2.6更新内容: + 1.修复管理器的一些bug。 + 2.修复su无法独立后台运行的问题。 + 3.新增偏移量接口 (跨内核):file->private_data + 4.新增内核API调用 (export_symbol.h) + 5.新增隐蔽的系统终端模块。 + 6.新增温控解除模块。 + +4.2.5更新内容: + 1.新增WebUI工具函数。 + 2.新增保险丝开关文件,便于开发者调试。 + 3.新增原子32位/64位内核内存读写接口。 + 4.新增偏移量接口 (跨内核):inode->i_mapping, i_state, i_rwsem + 5.新增偏移量接口 (跨内核):vm_area_struct->vm_flags + 6.新增偏移量接口 (跨内核):file->f_op + 7.新增偏移量接口 (跨内核):proc_ops, file_operations, miscdevice, super_block + 8.新增内核API便捷调用写法 (export_symbol.h) + 9.新增模块市场。 + 10.新增伪装机型模块。 + 11.新增系统文件伪造 Demo。 + 12.修复卸载skroot环境时,卸载模块回调缺失。 + 13.修正错误注释。 + +4.2.3更新内容: + 1.修复当第三方APP已卸载,但未解除su授权时会出现问题。 + +4.2.2更新内容: + 1.移除模块root_key传参,开发更便捷。 + 2.修复skroot框架崩溃时,无法读取崩溃日志的问题。 + 3.修复Linux kernel < 4.19无法开机的问题。 + 4.修复部分机型显示发生故障。 + 5.新增"is_syscall_args_in_ptregs"接口,方便开发者对老机型兼容Hook syscall。 + 6.新增偏移量接口 (跨内核):dentry, fdtable, files_struct, file, inode, mm_struct, task_struct, vm_area_struct + 7.新增内核IRQ中断等函数导出 (跨内核)。 + 8.新增WebUI写法:自带path、body入参。 + 9.新增WebUI工具函数头文件。 + +4.2.0更新内容: + 1.修复部分手机日志丢失的问题。 + 2.修复模块的资源文件权限、SELinux属性错误的问题。 + 3.添加更多字符串工具函数(覆盖单元测试)。 + 4.添加更详细的用法注释、寄存器说明。 + +4.1.7更新内容: + 1.修复“单项测试”在未安装SKRoot框架时无法使用的问题。 + 2.修复审计日志中有残留会被侦测问题。 + 3.修复显示故障中的错误状态 + +4.1.6更新内容: + 1.新增 StackBufGuard 工具类:更便捷的使用SP栈内存。 + 2.新增“无法开机”保护机制,会自动禁用SKRoot框架,避免反复死机。 + 3.修复审计日志会被侦测的问题。 + 4.修复 TrickyStore 会自爆日志问题。 + 5.修复 Linux 6.10 内核无法使用模块的问题。 + 6.修复以某种顺序传递参数调用内核API时会死机的问题。 + 7.优化移除 RegProtectGuard 类中的SkipX0。 + +4.1.5更新内容: + 1.新增安装模块回调(可选):仅安装模块前触发,可拒绝安装,附演示模块 + 2.新增卸载模块回调(可选):仅删除模块前触发,用于清理与收尾,附演示模块 + 3.新增便捷获取 sys_call_table 内核地址接口。 + 4.新增 Hook 能力:支持在 Hook 函数中手动执行原函数 + 5.修复 su 部分机型授权无效的问题。 + 6.修复 Hook 接口遇到BIT指令会死机的问题。 + 7.修复 TrickyStore 集成模块被侦测和残留的问题。 + 8.修正头文件中很多注释错误,优化了aarch64_asm_helper.h + +4.1.3更新内容: + 1.修复一个可能会被侦测的痕迹。 + 2.修复覆盖安装不会加载模块的问题。 + 3.修复当模块仅有WebRoot文件夹时,无法识别WebUI的问题。 + 4.新增模块内存独立隔离功能,模块之间的内存不会相互影响。 + 5.修复su部分命令无法执行的问题。 + 6.修复部分sdk接口会导致死机的问题。 + +4.0.7更新内容: + 1.改进架构,拓展更多玩法 + 2.修复部分机型死机 + +3.0.0更新内容: + 1.优化内核架构,速度更快、更稳定。 + 2.修复无法开机兼容性问题。 + +2.0.0更新内容: + 1.修复安全漏洞。 + 2.修复无法随意修改进程cred。 + 3.修复偶发情况下提权无效的问题。 + 4.更快的模块运行机制 + +1.0.0: + 内测版本发布 diff --git a/skroot_pro_app/module_market.json b/skroot_pro_app/module_market.json new file mode 100644 index 00000000..887e191d --- /dev/null +++ b/skroot_pro_app/module_market.json @@ -0,0 +1,174 @@ +{ + "module_list": [ + { + "chn_name": "隐藏/data目录", + "eng_name": "", + "ver": "1.0.8", + "desc": "内核级隐藏 /data 指定目录,彻底阻断文件扫描;底层拦截机制,免疫各类基于漏洞的暴力扫盘。", + "author": "SKRoot", + "uuid": "ae12076c010ebabbb233affdd0239c14", + "update_date": "2026-4-11", + "source_url": "https://github.com/abcz316/SKRoot-linuxKernelRoot/tree/master/Pro(%E4%BC%97%E6%B5%8B%E5%BC%80%E6%94%BE%E4%B8%AD)/src/testModule/module_hide_data_dir", + "download_url": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_hide_data_dir/module.zip", + "download_chn_alert": "", + "download_eng_alert": "" + }, + { + "chn_name": "清理usb调试痕迹", + "eng_name": "", + "ver": "0.0.3", + "desc": "在系统早期阶段清除 USB/ADB 调试痕迹,关闭相关调试通道,提升设备隐匿性。", + "author": "SKRoot", + "uuid": "fb044e7a140697bb1a6d1ddb6f15b0b4", + "update_date": "2025-12-10", + "source_url": "https://github.com/abcz316/SKRoot-linuxKernelRoot/tree/master/Pro(%E4%BC%97%E6%B5%8B%E5%BC%80%E6%94%BE%E4%B8%AD)/src/testModule/module_clear_usb_trace", + "download_url": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_clear_usb_trace/module.zip", + "download_chn_alert": "", + "download_eng_alert": "" + }, + { + "chn_name": "隐蔽的系统终端", + "eng_name": "", + "ver": "3.0.5", + "desc": "提供隐蔽的 sh 执行通道,彻底替代终端类 App,避免终端类 App 带来的特征暴露。", + "author": "SKRoot", + "uuid": "zse9vkTjLjWXbafvx8Mlh1MTf8SMTUEL", + "update_date": "2026-4-11", + "source_url": "https://github.com/abcz316/SKRoot-linuxKernelRoot/tree/master/Pro(%E4%BC%97%E6%B5%8B%E5%BC%80%E6%94%BE%E4%B8%AD)/src/testModule/module_hide_sh_exec", + "download_url": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_hide_sh_exec/module.zip", + "download_chn_alert": "", + "download_eng_alert": "" + }, + { + "chn_name": "温控解除", + "eng_name": "", + "ver": "1.0.3", + "desc": "内核级伪装处理器温度曲线,实现去除温控,安全可靠。", + "author": "SKRoot", + "uuid": "kO8hT9tT2fB0hY9hV2bB4eJ6aY2nQ6kL", + "update_date": "2026-4-9", + "source_url": "https://github.com/abcz316/SKRoot-linuxKernelRoot/tree/master/Pro(%E4%BC%97%E6%B5%8B%E5%BC%80%E6%94%BE%E4%B8%AD)/src/testModule/module_fake_thermal", + "download_url": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_fake_thermal/module.zip", + "download_chn_alert": "", + "download_eng_alert": "" + }, + { + "chn_name": "Tricky Store", + "eng_name": "", + "ver": "1.4.1-r5", + "desc": "提供系统证书接管与 TEE 状态修复能力。", + "author": "5ec1cff, aviraxp, Cyberenchanter and topjohnwu", + "uuid": "c3a70f603b48380a611131d29c50aac3", + "update_date": "2025-12-30", + "source_url": "https://github.com/abcz316/SKRoot-linuxKernelRoot/tree/master/Pro(%E4%BC%97%E6%B5%8B%E5%BC%80%E6%94%BE%E4%B8%AD)/src/testModule/module_tricky_store", + "download_url": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_tricky_store/module.zip", + "download_chn_alert": "", + "download_eng_alert": "" + }, + { + "chn_name": "防设备标记&自动清理", + "eng_name": "", + "ver": "4.0.3", + "desc": "需要手动添加包名", + "author": "SKRoot & 蜃 & Cycle1337", + "uuid": "Vk0EFJTuG2aBLQqc6WLHVPHnhfiZ8VKG", + "update_date": "2026-4-5", + "ban": false, + "source_url": "https://github.com/abcz316/SKRoot-linuxKernelRoot/tree/master/Pro(%E4%BC%97%E6%B5%8B%E5%BC%80%E6%94%BE%E4%B8%AD)/src/testModule/module_fake_device", + "download_url": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_fake_device/cycle1337_bypass_device_flag_module.zip", + "download_chn_alert": "风险警告:此模块为高风险模块,仅满足使用效果,不保证隐藏效果,若继续安装,请点击“确认”,产生一切后果请自负。", + "download_eng_alert": "" + }, + { + "chn_name": "阿灵的机型模拟", + "eng_name": "", + "ver": "5.2.2", + "desc": "需要手动选择模拟机型,TG频道:@Whitelist520", + "author": "阿灵", + "uuid": "z2rYhJP0gOTKK9lYmXS9sanxw6cIZGYD", + "update_date": "2026-4-22", + "source_url": "https://github.com/abcz316/SKRoot-linuxKernelRoot/tree/master/Pro(%E4%BC%97%E6%B5%8B%E5%BC%80%E6%94%BE%E4%B8%AD)/src/testModule/module_fake_device", + "download_url": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_fake_device/aling_fake_dev_module.zip", + "download_chn_alert": "风险警告:此模块为高风险模块,仅满足使用效果,不保证隐藏效果,若继续安装,请点击“确认”,产生一切后果请自负。", + "download_eng_alert": "" + }, + { + "chn_name": "Zui游戏助手-去除机型校验", + "eng_name": "", + "ver": "1.0.1", + "desc": "解决Zui系统(如联想Y700系列),使用模拟机型模块时,无法使用游戏助手的问题,TG频道:@Whitelist520", + "author": "阿灵", + "uuid": "u6rQGRK4WoE7IJRvYsSxD70eBtutYK31", + "update_date": "2026-4-12", + "source_url": "https://github.com/abcz316/SKRoot-linuxKernelRoot/tree/master/Pro(%E4%BC%97%E6%B5%8B%E5%BC%80%E6%94%BE%E4%B8%AD)/src/testModule/module_fake_device", + "download_url": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_fake_device/aling_fake_zui_module.zip", + "download_chn_alert": "", + "download_eng_alert": "" + }, + { + "chn_name": "【教程】系统文件伪造 Demo", + "eng_name": "", + "ver": "1.0.0", + "desc": "内核级伪造 /system 只读文件,实现内容无痕篡改;无视任何文件校验,完美过所有侦测手段。", + "author": "SKRoot", + "uuid": "xhTxKsI5kHacgHJ04b5VhO4ffiOP4sdc", + "update_date": "2026-2-12", + "source_url": "https://github.com/abcz316/SKRoot-linuxKernelRoot/tree/master/Pro(%E4%BC%97%E6%B5%8B%E5%BC%80%E6%94%BE%E4%B8%AD)/src/testModule/module_fake_system_file", + "download_url": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_demo/module_fake_system_file.zip", + "download_chn_alert": "", + "download_eng_alert": "" + }, + { + "chn_name": "【教程】内置 WebUI Demo", + "eng_name": "", + "ver": "1.0.0", + "desc": "演示在模块中使用WebUI页面。", + "author": "SKRoot", + "uuid": "6080b19fb2db26c534af3051103f541f", + "update_date": "2025-12-10", + "source_url": "https://github.com/abcz316/SKRoot-linuxKernelRoot/tree/master/Pro(%E4%BC%97%E6%B5%8B%E5%BC%80%E6%94%BE%E4%B8%AD)/src/testModule/module_web_ui_example", + "download_url": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_demo/module_web_ui_example.zip", + "download_chn_alert": "", + "download_eng_alert": "" + }, + { + "chn_name": "【教程】URL 配置更新 Demo", + "eng_name": "", + "ver": "0.0.1", + "desc": "演示配置更新 JSON。", + "author": "SKRoot", + "uuid": "62027df1409d6109da7e153d04915074", + "update_date": "2025-12-10", + "source_url": "https://github.com/abcz316/SKRoot-linuxKernelRoot/tree/master/Pro(%E4%BC%97%E6%B5%8B%E5%BC%80%E6%94%BE%E4%B8%AD)/src/testModule/module_update_demo", + "download_url": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_demo/module_update_demo.zip", + "download_chn_alert": "", + "download_eng_alert": "" + }, + { + "chn_name": "【教程】安装/卸载回调 Demo", + "eng_name": "", + "ver": "0.0.1", + "desc": "演示模块安装、卸载回调。", + "author": "SKRoot", + "uuid": "b7e4d333fd4689044b58b59e631a40e5", + "update_date": "2025-12-10", + "source_url": "https://github.com/abcz316/SKRoot-linuxKernelRoot/tree/master/Pro(%E4%BC%97%E6%B5%8B%E5%BC%80%E6%94%BE%E4%B8%AD)/src/testModule/module_install_uninstall_cb_demo", + "download_url": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_demo/module_install_uninstall_cb_demo.zip", + "download_chn_alert": "", + "download_eng_alert": "" + }, + { + "chn_name": "【教程】Hello World", + "eng_name": "", + "ver": "1.0.0", + "desc": "", + "author": "SKRoot", + "uuid": "3608c9af28db4dcfc05c32bbc584753e", + "update_date": "2025-12-10", + "source_url": "https://github.com/abcz316/SKRoot-linuxKernelRoot/tree/master/Pro(%E4%BC%97%E6%B5%8B%E5%BC%80%E6%94%BE%E4%B8%AD)/src/testModule/module_hello_world", + "download_url": "https://abcz316.github.io/SKRoot-linuxKernelRoot/module_demo/module_hello_world.zip", + "download_chn_alert": "", + "download_eng_alert": "" + } + ] +} \ No newline at end of file diff --git a/skroot_pro_app/update.json b/skroot_pro_app/update.json new file mode 100644 index 00000000..8f5c7b76 --- /dev/null +++ b/skroot_pro_app/update.json @@ -0,0 +1,5 @@ +{ + "version": "4.3.4", + "appUrl": "https://abcz316.github.io/SKRoot-linuxKernelRoot/skroot_pro_app/app.apk", + "changelog": "https://abcz316.github.io/SKRoot-linuxKernelRoot/skroot_pro_app/changelog.txt" +} \ No newline at end of file diff --git a/testRoot/README.md b/testRoot/README.md deleted file mode 100644 index 117e997d..00000000 --- a/testRoot/README.md +++ /dev/null @@ -1,13 +0,0 @@ - printf( - "======================================================\n" - "本工具名称: Linux ARM64 完美隐藏ROOT演示\n" - "本工具功能列表:\n" - "\t1.显示自身权限信息\n" - "\t2.获取ROOT权限\n" - "\t3.绕过SELinux\n" - "\t4.还原SELinux\n" - "\t5.执行ROOT权限级别的Shell命令\n" - "\t6.赋予ADB最高级别权限\n" - "\t新一代root,跟面具完全不同思路,摆脱面具被检测的弱点,完美隐藏root功能,挑战全网root检测手段,兼容安卓APP直接JNI调用,稳定、流畅、不闪退。\n" - "======================================================\n" - ); diff --git a/testRoot/jni/Android.mk b/testRoot/jni/Android.mk deleted file mode 100644 index f1a70c67..00000000 --- a/testRoot/jni/Android.mk +++ /dev/null @@ -1,11 +0,0 @@ -LOCAL_PATH := $(call my-dir) - -include $(CLEAR_VARS) -LOCAL_CPPFLAGS += -std=c++1y -LOCAL_CFLAGS += -fPIE -LOCAL_CFLAGS += -fvisibility=hidden -LOCAL_LDFLAGS += -fPIE -pie -LOCAL_DISABLE_FATAL_LINKER_WARNINGS := true -LOCAL_MODULE := testRoot.out -LOCAL_SRC_FILES := ../main.cpp ../adb_inject.cpp ../ptrace_arm64_utils.cpp -include $(BUILD_EXECUTABLE) diff --git a/testRoot/jni/Application.mk b/testRoot/jni/Application.mk deleted file mode 100644 index d67ad626..00000000 --- a/testRoot/jni/Application.mk +++ /dev/null @@ -1,2 +0,0 @@ -APP_ABI := arm64-v8a -APP_STL := c++_static \ No newline at end of file diff --git a/testRoot/main.cpp b/testRoot/main.cpp deleted file mode 100644 index ca905fee..00000000 --- a/testRoot/main.cpp +++ /dev/null @@ -1,147 +0,0 @@ -#include -#include - -#include "super_root.h" -#include "adb_inject.h" -#define ROOT_KEY 0x7F6766F8 - -void show_capability_info() -{ - struct __user_cap_header_struct cap_header_data; - cap_user_header_t cap_header = &cap_header_data; - - struct __user_cap_data_struct cap_data_data; - cap_user_data_t cap_data = &cap_data_data; - - cap_header->pid = getpid(); - cap_header->version = _LINUX_CAPABILITY_VERSION_3; //_1、_2、_3 - - if (capget(cap_header, cap_data) < 0) { - perror("FAILED capget()"); - exit(1); - } - - printf("Cap data 0x%x, 0x%x, 0x%x\n", cap_data->effective, cap_data->permitted, cap_data->inheritable); - printf("now getuid()=%d,geteuid()=%d,getgid()=%d,getegid()=%d\n", getuid(), geteuid(), getgid(), getegid()); - - FILE * fp = popen("getenforce", "r"); - if (fp) - { - char cmd[512] = { 0 }; - fread(cmd, 1, sizeof(cmd), fp); - pclose(fp); - - printf("SELinux status: %s\n", cmd); - } -} -void test_root() -{ - show_capability_info(); - - printf("get_root ret:%d\n", get_root(ROOT_KEY)); - - show_capability_info(); - - //system("id"); - //system("/data/local/tmp/getmyinfo"); - //system("insmod /sdcard/rwProcMem37.ko ; echo $?"); - //system("cat /proc/1/maps"); - //system("ls /proc"); - //system("screencap -p /sdcard/temp.png"); - return; -} - -void test_disable_selinux() -{ - int ret = disable_selinux(ROOT_KEY); - printf("disable_selinux ret:%d\n", ret); - printf("done.\n"); - return; -} - -void test_enable_selinux() -{ - int ret = enable_selinux(ROOT_KEY); - printf("enable_selinux ret:%d\n", ret); - printf("done.\n"); - return; -} - - -void test_run_cmd(char * cmd, bool bKeepAdbRoot = false) { - printf("inject_cmd_remote_process(%s)\n", cmd); - char szResult[0x1000] = { 0 }; - ssize_t ret = safe_inject_adb_process_run_cmd_wrapper(ROOT_KEY, cmd, bKeepAdbRoot, szResult, sizeof(szResult)); - printf("inject_cmd_remote_process ret val:%zd\n", ret); - printf("inject_cmd_remote_process result:%s\n", szResult); -} - -int main(int argc, char *argv[]) -{ - printf( - "======================================================\n" - "本工具名称: Linux ARM64 完美隐藏ROOT演示\n" - "本工具功能列表:\n" - "\t1.显示自身权限信息\n" - "\t2.获取ROOT权限\n" - "\t3.绕过SELinux\n" - "\t4.还原SELinux\n" - "\t5.执行ROOT权限级别的Shell命令\n" - "\t6.赋予ADB最高级别权限\n" - "\t新一代root,跟面具完全不同思路,摆脱面具被检测的弱点,完美隐藏root功能,挑战全网root检测手段,兼容安卓APP直接JNI调用,稳定、流畅、不闪退。\n" - "======================================================\n" - ); - - - ++argv; - --argc; - - - int cmdc; - char *cmdv[6]; - - while (argc) { - // Clean up - cmdc = 0; - memset(cmdv, 0, sizeof(cmdv)); - - // Split the commands - for (char *tok = strtok(argv[0], " "); tok; tok = strtok(nullptr, " ")) - { - cmdv[cmdc++] = tok; - if (cmdc == 0) - { - continue; - } - } - - - if (strcmp(cmdv[0], "show") == 0) { - show_capability_info(); - } - else if (strcmp(cmdv[0], "root") == 0) { - test_root(); - } - else if (strcmp(cmdv[0], "disable") == 0) { - test_disable_selinux(); - } - else if (strcmp(cmdv[0], "enable") == 0) { - test_enable_selinux(); - } - else if (strcmp(cmdv[0], "cmd") == 0) { - test_run_cmd("id"); - //test_run_cmd("id > /sdcard/run.txt"); - //test_run_cmd("insmod rwProcMem37.ko > /sdcard/run.txt"); - } - else if (strcmp(cmdv[0], "adb") == 0) { - test_run_cmd("id", true); - } - else { - return 1; - } - - --argc; - ++argv; - } - return 0; -} \ No newline at end of file diff --git a/testRoot/ptrace_arm64_utils.cpp b/testRoot/ptrace_arm64_utils.cpp deleted file mode 100644 index 3cccfeb4..00000000 --- a/testRoot/ptrace_arm64_utils.cpp +++ /dev/null @@ -1,247 +0,0 @@ -#include "ptrace_arm64_utils.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -int ptrace_readdata(pid_t pid, uint8_t *src, uint8_t *buf, size_t size) -{ - long i, j, remain; - uint8_t *laddr; - size_t bytes_width = sizeof(long); - - union u { - long val; - char chars[sizeof(val)]; - } d; - - j = size / bytes_width; - remain = size % bytes_width; - - laddr = buf; - - for (i = 0; i < j; i++) { - d.val = ptrace(PTRACE_PEEKTEXT, pid, src, 0); - memcpy(laddr, d.chars, bytes_width); - src += bytes_width; - laddr += bytes_width; - } - - if (remain > 0) { - d.val = ptrace(PTRACE_PEEKTEXT, pid, src, 0); - memcpy(laddr, d.chars, remain); - } - - return 0; -} - -/* -Func : 将size字节的data数据写入到pid进程的dest地址处 -@param dest: 目的进程的栈地址 -@param data: 需要写入的数据的起始地址 -@param size: 需要写入的数据的大小,以字节为单位 -*/ -int ptrace_writedata(pid_t pid, uint8_t *dest, uint8_t *data, size_t size) -{ - long i, j, remain; - uint8_t *laddr; - size_t bytes_width = sizeof(long); - - //很巧妙的联合体,这样就可以方便的以字节为单位写入4字节数据,再以long为单位ptrace_poketext到栈中 - union u { - long val; - char chars[sizeof(val)]; - } d; - - j = size / bytes_width; - remain = size % bytes_width; - - laddr = data; - - //先以4字节为单位进行数据写入 - - for (i = 0; i < j; i++) { - memcpy(d.chars, laddr, bytes_width); - ptrace(PTRACE_POKETEXT, pid, dest, d.val); - - dest += bytes_width; - laddr += bytes_width; - } - - if (remain > 0) { - //为了最大程度的保持原栈的数据,先读取dest的long数据,然后只更改其中的前remain字节,再写回 - d.val = ptrace(PTRACE_PEEKTEXT, pid, dest, 0); - for (i = 0; i < remain; i++) { - d.chars[i] = *laddr++; - } - - ptrace(PTRACE_POKETEXT, pid, dest, d.val); - } - - return 0; -} - - -int ptrace_getregs(pid_t pid, struct pt_regs * regs) -{ - int regset = NT_PRSTATUS; - struct iovec ioVec; - - ioVec.iov_base = regs; - ioVec.iov_len = sizeof(*regs); - if (ptrace(PTRACE_GETREGSET, pid, (size_t)regset, &ioVec) < 0) { - perror("ptrace_getregs: Can not get register values"); - TRACE(" io %p, %lu", ioVec.iov_base, ioVec.iov_len); - return -1; - } - return 0; -} - -int ptrace_setregs(pid_t pid, struct pt_regs * regs) -{ - int regset = NT_PRSTATUS; - struct iovec ioVec; - - ioVec.iov_base = regs; - ioVec.iov_len = sizeof(*regs); - if (ptrace(PTRACE_SETREGSET, pid, (size_t)regset, &ioVec) < 0) { - perror("ptrace_setregs: Can not get register values"); - return -1; - } - return 0; -} - -int ptrace_continue(pid_t pid) -{ - if (ptrace(PTRACE_CONT, pid, NULL, 0) < 0) { - perror("ptrace_cont"); - return -1; - } - - return 0; -} - -int ptrace_attach(pid_t pid) -{ - if (ptrace(PTRACE_ATTACH, pid, NULL, 0) < 0) { - perror("ptrace_attach"); - return -1; - } - - int status = 0; - waitpid(pid, &status, WUNTRACED); - - return 0; -} - -int ptrace_detach(pid_t pid) -{ - if (ptrace(PTRACE_DETACH, pid, NULL, 0) < 0) { - perror("ptrace_detach"); - return -1; - } - - return 0; -} - -uint64_t ptrace_retval(struct pt_regs * regs) -{ - return regs->ARM_r0; -} - -uint64_t ptrace_ip(struct pt_regs * regs) -{ - return regs->ARM_pc; -} - -//总结一下ptrace_call_wrapper,它的完成两个功能: -//一是调用ptrace_call函数来执行指定函数,执行完后将子进程挂起; -//二是调用ptrace_getregs函数获取所有寄存器的值,主要是为了获取r0即函数的返回值。 -int ptrace_call_wrapper(pid_t target_pid, const char * func_name, void * func_addr, unsigned long * parameters, int param_num, struct pt_regs * regs) -{ - TRACE("[+] Calling %s in target process.\n", func_name); - if (ptrace_call(target_pid, (uintptr_t)func_addr, parameters, param_num, regs) == -1) - return -1; - - if (ptrace_getregs(target_pid, regs) == -1) - return -1; - TRACE("[+] Target process returned from %s, return value=%" PRIu64 ", pc=%" PRIu64 " \n", - func_name, ptrace_retval(regs), ptrace_ip(regs)); - return 0; -} - -/* -功能总结: -1,将要执行的指令写入寄存器中,指令长度大于4个long的话,需要将剩余的指令通过ptrace_writedata函数写入栈中; -2,使用ptrace_continue函数运行目的进程,直到目的进程返回状态值0xb7f(对该值的分析见后面红字); -3,函数执行完之后,目标进程挂起,使用ptrace_getregs函数获取当前的所有寄存器值,方便后面使用ptrace_retval函数获取函数的返回值。 -*/ -int ptrace_call(pid_t pid, uintptr_t addr, unsigned long *params, int num_params, struct pt_regs* regs) -{ - int i; - int num_param_registers = 8; //aarch64 - for (i = 0; i < num_params && i < num_param_registers; i++) { - regs->uregs[i] = params[i]; - } - - // - // push remained params onto stack - // - if (i < num_params) { - regs->ARM_sp -= (num_params - i) * sizeof(long); - ptrace_writedata(pid, (uint8_t *)regs->ARM_sp, (uint8_t *)& params[i], (num_params - i) * sizeof(long)); - } - //将PC寄存器值设为目标函数的地址 - regs->ARM_pc = addr; - //进行指令集判断 - if (regs->ARM_pc & 1) { - /* thumb */ - regs->ARM_pc &= (~1u); - // #define CPSR_T_MASK ( 1u << 5 ) CPSR为程序状态寄存器 - regs->ARM_cpsr |= CPSR_T_MASK; - } - else { - /* arm */ - regs->ARM_cpsr &= ~CPSR_T_MASK; - } - - //设置子程序的返回地址为空,以便函数执行完后,返回到null地址,产生SIGSEGV错误,详细作用见后面的红字分析 - regs->ARM_lr = 0; - - /* - *Ptrace_setregs就是将修改后的regs写入寄存器中,然后调用ptrace_continue来执行我们指定的代码 - */ - if (ptrace_setregs(pid, regs) == -1 - || ptrace_continue(pid) == -1) { - TRACE("error\n"); - return -1; - } - - int stat = 0; - waitpid(pid, &stat, WUNTRACED); - /* WUNTRACED告诉waitpid,如果子进程进入暂停状态,那么就立即返回。如果是被ptrace的子进程,那么即使不提供WUNTRACED参数,也会在子进程进入暂停状态的时候立即返回。 - 对于使用ptrace_cont运行的子进程,它会在3种情况下进入暂停状态:①下一次系统调用;②子进程退出;③子进程的执行发生错误。这里的0xb7f就表示子进程进入了暂停状态,且发送的错误信号为11(SIGSEGV),它表示试图访问未分配给自己的内存, 或试图往没有写权限的内存地址写数据。那么什么时候会发生这种错误呢?显然,当子进程执行完注入的函数后,由于我们在前面设置了regs->ARM_lr = 0,它就会返回到0地址处继续执行,这样就会产生SIGSEGV了!*/ - - //这个循环是否必须我还不确定。因为目前每次ptrace_call调用必定会返回0xb7f,不过在这也算是增加容错性吧~ - - //通过看ndk的源码sys/wait.h以及man waitpid可以知道这个0xb7f的具体作用。首先说一下stat的值:高2字节用于表示导致子进程的退出或暂停状态信号值,低2字节表示子进程是退出(0x0)还是暂停(0x7f)状态。0xb7f就表示子进程为暂停状态,导致它暂停的信号量为11即sigsegv错误。 - while (stat != 0xb7f) { - if (ptrace_continue(pid) == -1) { - TRACE("error\n"); - return -1; - } - waitpid(pid, &stat, WUNTRACED); - } - - return 0; -} - diff --git a/testRoot/ptrace_arm64_utils.h b/testRoot/ptrace_arm64_utils.h deleted file mode 100644 index d63bb6d7..00000000 --- a/testRoot/ptrace_arm64_utils.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef PTRACE_UTILS_H_ -#define PTRACE_UTILS_H_ -#include - -//安静输出模式 -//#define QUIET_PRINTF - -#ifdef QUIET_PRINTF -#define TRACE(fmt, ...) -#else -#define TRACE(fmt, ...) printf(fmt, ##__VA_ARGS__) -#endif - -#ifndef __aarch64__ -#error "Not supported" -#endif - -#define pt_regs user_pt_regs -#define uregs regs -#define ARM_pc pc -#define ARM_sp sp -#define ARM_cpsr pstate -#define ARM_lr regs[30] -#define ARM_r0 regs[0] - -#define CPSR_T_MASK ( 1u << 5 ) -#define MAX_PATH 256 - -int ptrace_readdata(pid_t pid, uint8_t *src, uint8_t *buf, size_t size); -/* -Func : 将size字节的data数据写入到pid进程的dest地址处 -@param dest: 目的进程的栈地址 -@param data: 需要写入的数据的起始地址 -@param size: 需要写入的数据的大小,以字节为单位 -*/ -int ptrace_writedata(pid_t pid, uint8_t *dest, uint8_t *data, size_t size); - -int ptrace_getregs(pid_t pid, struct pt_regs * regs); - -int ptrace_setregs(pid_t pid, struct pt_regs * regs); - -int ptrace_continue(pid_t pid); -int ptrace_attach(pid_t pid); - -int ptrace_detach(pid_t pid); - -uint64_t ptrace_retval(struct pt_regs * regs); - -uint64_t ptrace_ip(struct pt_regs * regs); -//总结一下ptrace_call_wrapper,它的完成两个功能: -//一是调用ptrace_call函数来执行指定函数,执行完后将子进程挂起; -//二是调用ptrace_getregs函数获取所有寄存器的值,主要是为了获取r0即函数的返回值。 -int ptrace_call_wrapper(pid_t target_pid, const char * func_name, void * func_addr, unsigned long * parameters, int param_num, struct pt_regs * regs); -/* -功能总结: -1,将要执行的指令写入寄存器中,指令长度大于4个long的话,需要将剩余的指令通过ptrace_writedata函数写入栈中; -2,使用ptrace_continue函数运行目的进程,直到目的进程返回状态值0xb7f(对该值的分析见后面红字); -3,函数执行完之后,目标进程挂起,使用ptrace_getregs函数获取当前的所有寄存器值,方便后面使用ptrace_retval函数获取函数的返回值。 -*/ -int ptrace_call(pid_t pid, uintptr_t addr, unsigned long *params, int num_params, struct pt_regs* regs); - -#endif /* PTRACE_UTILS_H_ */ diff --git a/testRoot/testRoot.vcxproj b/testRoot/testRoot.vcxproj deleted file mode 100644 index 87beb8d5..00000000 --- a/testRoot/testRoot.vcxproj +++ /dev/null @@ -1,94 +0,0 @@ - - - - - Debug - ARM - - - Release - ARM - - - Debug - ARM64 - - - Release - ARM64 - - - Debug - x86 - - - Release - x86 - - - Debug - x64 - - - Release - x64 - - - - {2a287d40-5742-4389-a623-50f6bcea2a0f} - Linux - testRoot - 15.0 - Linux - 1.0 - Generic - {D51BCBC9-82E9-4017-911E-C93873C4EA2B} - - - - true - - - false - - - true - - - false - - - true - - - false - - - false - - - true - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/testRoot/testRoot.vcxproj.filters b/testRoot/testRoot.vcxproj.filters deleted file mode 100644 index 52b27543..00000000 --- a/testRoot/testRoot.vcxproj.filters +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - {4f0b16e1-e05c-44ce-8377-35b973d209f5} - - - - - jni - - - jni - - - - - - - - \ No newline at end of file diff --git a/testRoot/testRoot.vcxproj.user b/testRoot/testRoot.vcxproj.user deleted file mode 100644 index 6e2aec7a..00000000 --- a/testRoot/testRoot.vcxproj.user +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file