当前位置:首页>安卓APP>一种新型的安卓隐蔽Root技术

一种新型的安卓隐蔽Root技术

  • 2026-03-29 19:46:12
一种新型的安卓隐蔽Root技术
小肩膀教育

一、这篇论文在做什么

一句话总结:在三星Galaxy A32(Android 13)上,完成Root →隐藏Root → 测试银行App能不能发现Root

这个过程分成三大阶段:

阶段1:获取Root权限(Bootloader解锁 → 固件下载 → Magisk补丁 → 刷机)        ↓阶段2:隐藏Root状态(Shamiko模块 + Zygisk DenyList + SafetyNet修复)        ↓阶段3:验证效果(测试25个银行App的Root检测是否被绕过)

下面逐步拆解每个操作。


二、阶段1:获取Root权限(完整操作流程)

前提条件

论文用的硬件和软件环境:

项目
具体内容
手机型号
三星 Galaxy A32 (SM-A32-F)
系统版本
Android 13
内存/存储
4GB RAM / 128GB存储
需要的软件
Magisk Manager、Shamiko模块、LSPosed
需要的权限
存储权限、超级用户权限
电脑端工具
ODIN(三星专用刷机工具)、ADB/Fastboot驱动

Step1:解锁Bootloader(引导程序)

这是什么? Bootloader是手机开机时最先运行的程序,负责加载操作系统。默认状态下,Bootloader是锁定的——它只允许加载三星官方签名的系统镜像。要刷入修改过的系统文件,必须先解锁Bootloader。

具体操作:

1. 打开手机 → 设置 → 关于手机 → 连续点击"版本号"7次   → 弹出提示"您已进入开发者模式"2. 返回设置 → 开发者选项 → 打开两个开关:   ✅ OEM解锁(允许解锁引导程序)   ✅ USB调试(允许电脑通过USB控制手机)3. 关机→ 同时按住 音量减键 + 电源键 → 进入Fastboot模式   (屏幕会显示一个警告页面,和正常开机画面不同)4. 用USB线连接电脑 → 在电脑命令行输入:   fastboot oem unlock   (手机屏幕会弹出确认提示,按音量上键确认)

解锁后果:

  • ⚠️ 手机会自动恢复出厂设置(所有数据清空)
  • ⚠️ 保修失效
  • ⚠️ 每次开机会显示"Bootloader已解锁"的警告
  • ⚠️ 部分三星手机解锁后会永久熔断Knox计数器(无法恢复)

为什么改机需要这一步? 因为不解锁Bootloader,就无法刷入修改过的固件。这是整个Root链条的第一把钥匙。


Step 2:下载官方固件

这是什么? 从三星固件网站下载这台手机对应型号和地区的完整官方固件包。

具体操作:

1. 打开 SamMobile 网站(samfw.com 或 sammobile.com)2. 输入手机型号 SM-A32-F,选择对应的地区/运营商版本3. 下载完整固件包(通常是一个.zip文件,大小约5-8GB)4. 解压固件包,里面有4-5个文件:   ├── AP_xxxxx.tar.md5   ← 系统分区(Android系统本体)★ 这是要修改的文件   ├── BL_xxxxx.tar.md5   ← Bootloader分区   ├── CP_xxxxx.tar.md5   ← 基带/通信模块   ├── CSC_xxxxx.tar.md5  ← 运营商配置   └── HOME_CSC_xxx.tar.md5 ← 运营商配置(保留用户数据版本)

为什么需要官方固件? 因为Magisk的Root方式是修改AP文件中的boot.img(启动镜像)。它不是直接往手机里"注入"什么东西,而是先在电脑上把官方的boot.img打上补丁,然后把修改过的boot.img刷回手机。这就是"systemless root"(无系统修改Root)的核心思路——不动/system分区,只改boot镜像。


Step 3:用Magisk打补丁(AP文件Patch)

这是什么? 把官方固件的AP文件传到手机上,用Magisk Manager修改它,生成一个带Root权限的新AP文件。

具体操作:

1. 在手机上安装 Magisk Manager(从magiskmanager.com 下载APK2. 把电脑上解压出来的 AP_xxxxx.tar.md5 文件传到手机上   (通过USB数据线或云盘传输,文件约5GB)3. 打开 Magisk Manager → 点击"安装" → 选择"选择并修补一个文件"4. 找到刚才传到手机上的 AP 文件,选中它5. Magisk开始打补丁(大约需要5-10分钟)→ 完成后会在手机的Download 文件夹生成一个新文件:   magisk_patched_xxxxx.tar6. 把这个打过补丁的文件传回电脑

Magisk在补丁过程中做了什么?

这是整个Root的核心技术环节。Magisk的补丁过程实际上做了以下事情:

原始 AP 文件└── boot.img(启动镜像)        ├── kernel(Linux内核)        ├── ramdisk(初始内存盘)        │├── init(初始化进程)        │     └── 其他系统文件        └── 其他组件↓ Magisk 补丁 ↓修改后的 AP 文件  └── boot.img(已修改)        ├── kernel(不变)        ├── ramdisk(已修改)        │     ├── init → magiskinit(Magisk替换了init进程)        │     ├── magisk二进制文件(提供su命令)        │     └── 其他系统文件(不变)        └── 其他组件

关键点:Magisk把系统的init进程替换成了自己的magiskinit。 手机开机时,magiskinit最先运行,它在系统启动之前就设置好了Root环境,然后再把控制权交给真正的init。这样做的好处是:

  • /system分区完全没有被修改(dm-verity验证不会失败)
  • Root权限是通过一个叫magiskd的守护进程提供的,而不是传统的su二进制文件
  • 所有修改都在boot.img的ramdisk中,不触及系统文件

这就是为什么叫**"systemless root"(无系统修改Root)**——它比传统Root(直接往/system里放su文件)更隐蔽。


Step 4:用ODIN刷入修改后的固件

这是什么? ODIN是三星官方的刷机工具(泄露版),用来把固件文件刷入手机的各个分区。

具体操作:

1. 手机关机 → 同时按住 音量减键 + Home键 + 电源键   → 进入Download模式(也叫Odin模式)   (屏幕会显示一个绿色/蓝色的下载图标)2. 用USB线连接电脑3. 在电脑上打开 ODIN 工具,确认ODIN识别到了手机   (左上角的COM端口会变成蓝色或绿色)4. 在ODIN中分别加载4个文件:   ┌─────────────────────────────────────────────┐   │ BL  → 选择原始的BL_xxxxx.tar.md5           │   │ AP  → 选择 magisk_patched_xxxxx.tar ★修改过的│   │ CP  → 选择原始的 CP_xxxxx.tar.md5           │   │ CSC → 选择原始的 HOME_CSC_xxx.tar.md5       │   └─────────────────────────────────────────────┘   注意:只有AP文件是修改过的,其他三个都用原始文件5. 点击 Start(开始刷机)   → 等待大约10-15分钟   → ODIN显示 PASS(绿色)= 刷机成功6. 手机自动重启(第一次启动会比较慢,约3-5分钟)
刷完后验证Root:
1. 打开 Magisk Manager → 查看"已安装"版本号   → 如果显示版本号(如v27.0),说明Root成功2. 或者安装一个 Root Checker App → 点击"验证Root"   → 如果显示"恭喜!Root访问已正确安装",确认成功

到这里,阶段1完成——手机已经获得了Root权限。但此时任何Root检测工具(包括银行App)都能轻松发现Root状态。接下来进入阶段2:隐藏Root。


三、阶段2:隐藏Root状态(核心技术)

获得Root权限只是第一步。如果银行App一打开就检测到Root然后拒绝运行,Root就没有实战意义。所以需要让特定App"看不到"Root的存在

论文测试了4种Root隐藏方法,从旧到新:

方法1:MagiskHide(已过时)

原理: MagiskHide是Magisk早期内置的Root隐藏功能。它的核心思路是:

正常情况:  银行App调用 → 系统API → 返回"设备已Root"MagiskHide介入后:  银行App调用 → MagiskHide拦截 → 伪造返回"设备未Root"

具体来说,MagiskHide做了以下事情:

  1. 把Magisk Manager自身伪装成一个随机包名的普通App(比如把com.topjohnwu.magisk改成com.random12345.app
  2. 对指定的App,隐藏/sbin/su/system/bin/su等Root相关文件的存在
  3. 对指定的App,修改/proc/mounts的内容,隐藏Magisk的挂载点

现状: MagiskHide在Android 11之后逐渐失效,因为Google更新了检测机制。Magisk v24以后已经移除了MagiskHide,用Zygisk + DenyList取代。


方法2:Zygisk DenyList(当前主流方法之一)

原理: Zygisk是Magisk v24引入的新架构。"Zygisk"= Magisk注入到了Zygote进程中。

背景知识:什么是Zygote?

Android启动流程:  init进程 → Zygote进程 → 所有App进程Zygote是Android系统中所有App的"母进程"每当你打开一个App,系统不是从零创建一个新进程,而是从Zygote进程"fork"(复制)出一个子进程。所以Zygote中有的东西,所有App进程中都有。
Zygisk的工作方式:
1. Magisk把自己的代码注入到Zygote进程中2. 每当一个新App启动(从Zygote fork出来时):   → 检查这个App是否在"DenyList"中   如果不在DenyList中:→ Magisk模块正常加载,App可以使用Root权限   如果在DenyList中(比如银行App):     → Magisk主动"撤回"自己的所有修改     → 这个App的进程中看不到任何Magisk/Root的痕迹     → 对这个App来说,设备就像从未被Root过一样
具体操作:
1. 打开 Magisk Manager → 设置 → 打开 "Zygisk"2. 打开 "配置 DenyList"3. 在App列表中,勾选你要隐藏Root的App:   ✅ 某银行App   ✅ Google Play Store(为了通过SafetyNet)   ✅ Google Play Services   ✅ 其他需要隐藏Root的App4. 重启手机

方法3:Shamiko模块(论文重点测试的方法)

原理: Shamiko是一个第三方Magisk模块,专门用来增强Root隐藏能力。它比Zygisk DenyList更强,因为它解决了DenyList的一个根本矛盾:

DenyList的矛盾:  DenyList的设计初衷是"对列表中的App,不加载Magisk模块"  但它只是不加载模块,Root本身的一些痕迹(如magiskd守护进程、  特定的SELinux上下文)仍然存在,高级检测可以发现Shamiko的解决方案:  Shamiko不仅不加载模块,还主动清理所有Root痕迹:  -隐藏magiskd守护进程  - 恢复正常的SELinux上下文  - 隐藏Magisk的挂载点  - 伪造/proc下的各种信息  - 隐藏Zygisk注入的痕迹本身
1. 下载 Shamiko 模块的ZIP文件   (从 GitHub: LSPosed/LSPosed.github.io/releases 下载)2. 打开 Magisk Manager → 模块 → 从本地安装   → 选择下载的 Shamiko ZIP文件   → 等待安装完成3. 重要设置:在Magisk设置中:   ✅ Zygisk:打开❌ 配置排除列表(DenyList):关闭   (注意:Shamiko要求DenyList功能本身是关闭的,但仍然使用DenyList的列表来决定对哪些App隐藏Root)4. 在DenyList中添加需要隐藏Root的App5. 重启手机

Shamiko为什么比DenyList更强?

论文发现,MagiskHide只在一个测试中失败了——检测到了Magisk Manager的包名(com.topjohnwu.magisk)。而Shamiko通过以下手段解决了这个问题:

  1. 进程级隔离:
     在被保护App的进程空间中,完全看不到任何Magisk相关的文件、进程、挂载点
  2. 内存隐藏:
     清理内存中Magisk相关的映射(/proc/self/maps中的Magisk路径)
  3. 属性隐藏:
     拦截getprop调用,隐藏Root相关的系统属性(如ro.debuggablero.secure

方法4:SafetyNet / Play Integrity 绕过

这是什么? Google SafetyNet(现已升级为Play Integrity API)是Google提供的设备完整性验证服务。银行App可以调用这个API来问Google:"这台设备安全吗?"

SafetyNet返回两个关键字段:

{  "basicIntegrity"true/false,    // 基本完整性:设备是否被篡改  "ctsProfileMatch"true/false    // CTS兼容性:设备是否通过Google兼容性测试}
  • basicIntegrity = false
     → 设备被Root/篡改/是模拟器
  • ctsProfileMatch = false
     → 设备不是Google认证的设备、或Bootloader已解锁

正常Root后,两个值都会变成false。要骗过银行App,需要让两个值都变成true。

具体操作:

1. 在Magisk 设置中:   ✅ 打开 Zygisk✅ 打开 Systemless Hosts(无系统修改的hosts文件)2. 下载 "Universal SafetyNet Fix" 或 "Play Integrity Fix" 模块   (从 GitHub: kdrag0n/safetynet-fix 或 chiteroman/PlayIntegrityFix 下载)3. 在 Magisk Manager → 模块 → 从本地安装   → 选择下载的模块ZIP文件4. 重启手机5. 验证:安装 "YASNAC"(Yet Another SafetyNet Checker)   → 运行检测   → 如果 basicIntegrity =✅, ctsProfileMatch = ✅   → SafetyNet绕过成功
这个模块做了什么?
SafetyNet的检测逻辑(简化版):1. 检查Bootloader是否已解锁→ SafetyNet Fix伪造:返回"已锁定"2. 检查系统属性(ro.boot.verifiedbootstate等)   → SafetyNet Fix 拦截getprop调用,返回正常值3. 检查设备的CTS配置文件   → SafetyNet Fix 伪造设备指纹,让Google服务器认为这是一台未修改的设备4. 检查TEE(可信执行环境)中的密钥认证   → 这是最难绕过的部分。硬件级别的TEE认证目前只有通过"泄露的密钥"才能绕过→ Google已经在逐步强制要求硬件级认证,     未来SafetyNet Fix可能会完全失效

四、阶段3:验证效果(银行App测试)

论文测试了25个银行和金融App(主要是巴基斯坦和阿联酋的银行),结果如下:

能检测到Root的App(15个)

App
银行
ADIB
阿布扎比伊斯兰银行
Askari Bank
巴基斯坦
Bank of Punjab
巴基斯坦
Faisal Digital Bank
巴基斯坦
Habib Bank Limited
巴基斯坦
JS Bank
巴基斯坦
Meezan Bank
巴基斯坦
National Bank of Pakistan
巴基斯坦国家银行
Payoneer
国际支付
SadaPay
巴基斯坦
Soneri Bank
巴基斯坦
Standard Chartered
渣打银行
United Bank Limited
巴基斯坦
Upaisa Bank
巴基斯坦
Zindagi Finance
巴基斯坦

不能检测到Root的App(10个)

App
银行
ADCB
阿布扎比商业银行
Al Habib Bank
巴基斯坦
Alibaba Payment Gateway
阿里巴巴支付
Allied Bank
巴基斯坦
Binance
加密货币交易所
JazzCash
巴基斯坦移动支付
Mashreq UAE
阿联酋
NayaPay
巴基斯坦
Swiss Group of Banks
瑞士
Telenor Finance
巴基斯坦

关键发现:40%的银行App(10/25)无法检测Root,即使没有使用Shamiko隐藏。

这说明很多银行App的Root检测非常薄弱——它们可能只是检查了su文件是否存在,或者只是调用了SafetyNet但没有正确处理返回结果。


五、银行App常用的Root检测方法(论文总结)

论文列出了App检测Root的6种常见方法:

检测方法1:检查SU二进制文件

// 检测代码示例(简化)String[] suPaths = {    "/system/bin/su",    "/system/xbin/su"    "/sbin/su",    "/data/local/su",    "/data/local/bin/su"};for (String path : suPaths) {    if (new File(path).exists()) {        // 检测到Root!}}

Magisk如何绕过: Magisk不使用传统的su文件路径,而是通过magiskd守护进程提供Root权限。Shamiko进一步隐藏了所有相关路径。

检测方法2:检查已知的Root文件和目录

// 检查Magisk相关文件String[] rootFiles = {    "/sbin/.magisk",    "/cache/.magisk",    "/data/adb/magisk",    "/data/adb/modules"};

Magisk如何绕过: Shamiko在被保护App的命名空间中隐藏这些路径。

检测方法3:检查Magisk Manager包名

// 检查已安装的App中是否有Magisk ManagerPackageManager pm = getPackageManager();try {    pm.getPackageInfo("com.topjohnwu.magisk"0);    // 检测到Magisk!catch (NameNotFoundException e) {    // 没有检测到}

Magisk如何绕过: Magisk Manager可以"隐藏自身"——把包名改成随机字符串(如com.xxxxx.yyyyy),图标也改成普通App的样子。

检测方法4:SafetyNet / Play Integrity API

// 调用Google SafetyNet APISafetyNet.getClient(this)    .attest(nonce, API_KEY)    .addOnSuccessListener(response -> {        // 解析response中的basicIntegrity和ctsProfileMatch        if (!basicIntegrity || !ctsProfileMatch) {            // 设备不安全!        }    });

Magisk如何绕过: Universal SafetyNet Fix / Play Integrity Fix模块。

检测方法5:检测Frida注入

// 检查是否有Frida服务器在运行// 方法1:检查默认端口27042try {    Socket socket = new Socket("127.0.0.1"27042);    // Frida可能在运行!catch (IOException e) {    // 没有检测到}// 方法2:检查/proc/self/maps中是否有frida相关的库BufferedReader reader = new BufferedReader(    new FileReader("/proc/self/maps"));String line;while ((line = reader.readLine()) != null) {    if (line.contains("frida") || line.contains("gadget")) {        // 检测到Frida!    }}

检测方法6:Verified Boot(验证启动)

Android的Verified Boot会在启动时验证每个分区的完整性:

启动流程:  Bootloader → 验证boot.img的签名 → 验证system分区的哈希→ 如果任何一步验证失败 → 显示警告或拒绝启动

Magisk如何绕过: Magisk修改的是boot.img的ramdisk部分,但保持了boot.img的整体结构。由于Bootloader已经被解锁,验证启动的检查被跳过。


六、论文提出的防御框架

论文提出了一个针对Shamiko的防御框架,分三层:

第1层:技术缓解

1. 扫描Root信号→ 不只是检查su文件,还要检查:     - /proc/self/maps中的异常映射     - SELinux状态是否被修改     - 系统属性的一致性(多个属性交叉验证)     - Magisk的mount namespace痕迹2. 实现安全启动验证   → 不依赖本地检查,而是请求服务器端验证   → 将设备的boot hash发送到服务器对比3. 代码校验   → App启动时验证自身代码是否被修改   → 使用代码混淆防止逆向工程4. 深度检查   → 多层检测,不要只用一种方法   → 在App运行过程中持续检测(不只是启动时检测一次)

第2层:研究缓解

- 预研未来可能出现的新绕过手段- 投资新的安全技术(如基于AI的异常检测)

第3层:教育缓解

- 告知用户保持设备更新- 教育开发者如何正确实现Root检测

最后:完整的"改机"技术栈

第1层:获取Root权限  Magisk +解锁Bootloader +刷入补丁boot.img第2层:隐藏Root状态  Shamiko + Zygisk DenyList + SafetyNet Fix第3层:修改设备标识符  用Xposed/LSPosed模块Hook以下API:  - Build.MODEL / Build.MANUFACTURER / Build.BRAND → 修改设备型号  - Settings.Secure.ANDROID_ID → 修改Android ID  - TelephonyManager.getDeviceId() → 修改IMEI  - TelephonyManager.getSubscriberId() → 修改IMSI  - WifiManager.getConnectionInfo().getMacAddress() → 修改MAC地址  - BluetoothAdapter.getAddress() → 修改蓝牙MAC  - Build.SERIAL → 修改序列号  - Build.FINGERPRINT → 修改系统指纹  - Display.getMetrics() → 修改屏幕分辨率  - 等等...第4层:修改应用层标识符  - Google Advertising ID (GAID) → 重置或伪造  - 应用数据清理 → 删除App的本地缓存和数据库  - 网络层修改 → VPN/代理修改IP地址和地理位置第5层:行为模拟  - 模拟真实用户的触摸模式、滑动速度  - 模拟真实的传感器数据(加速度计、陀螺仪)  - 模拟真实的电池消耗曲线  - 模拟真实的App使用时长和频率

每期研究论文发群里,可以找膀子聊天
下边是广告环节

小肩膀教育十年安全逆向教学
小肩膀教育作为国内十年逆向老机构,数十年如一日录制教程,涵盖网络爬虫、JS逆向、安卓逆向、IOS逆向、小程序逆向,AI逆向和指纹浏览器开发等多个版块,完全从零基础开始教学。
加入小肩膀,是加入了逆向技术圈子,互相学习、资源共享,欢迎加入小肩膀教育

海外IP代理
海外IP代理做的人很多,有贵的也有便宜的,那为什么和小肩膀合作呢?
因为和我们合作我们就有了联系,来找小肩膀合作购买海外动态、静态住宅和包月不限量IP的,价格绝对优惠。
有事一起合作,小肩膀十年老教育品牌。

海外数据采集
AI时代,必须有高质量的数据采集服务搭配才可以。
小肩膀教育提供海外数据采集代采集服务!
只要是有海外的数据采集需求:亚马逊、谷歌、ebay、雅虎、领英、X、youtube、TIKTOK等等,都可以来合作。

小肩膀本人联系方式↓

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-04 06:04:20 HTTP/2.0 GET : https://c.mffb.com.cn/a/474063.html
  2. 运行时间 : 0.094442s [ 吞吐率:10.59req/s ] 内存消耗:4,497.93kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=80a8acf34b903abe633136014c17c0e1
  1. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/runtime/temp/cefbf809ba1a84190cb04b0cb7abcf79.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000448s ] mysql:host=127.0.0.1;port=3306;dbname=c_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000854s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000292s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.007240s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000650s ]
  6. SELECT * FROM `set` [ RunTime:0.000271s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000700s ]
  8. SELECT * FROM `article` WHERE `id` = 474063 LIMIT 1 [ RunTime:0.001620s ]
  9. UPDATE `article` SET `lasttime` = 1775253861 WHERE `id` = 474063 [ RunTime:0.011068s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000273s ]
  11. SELECT * FROM `article` WHERE `id` < 474063 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000515s ]
  12. SELECT * FROM `article` WHERE `id` > 474063 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002630s ]
  13. SELECT * FROM `article` WHERE `id` < 474063 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000932s ]
  14. SELECT * FROM `article` WHERE `id` < 474063 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001033s ]
  15. SELECT * FROM `article` WHERE `id` < 474063 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001012s ]
0.095982s