乐于分享
好东西不私藏

Predator间谍软件iOS内核利用引擎深度解析

Predator间谍软件iOS内核利用引擎深度解析

商用间谍软件突破苹果指针身份验证,实现内核内存访问

在前期研究中,Jamf记录了Predator间谍软件如何规避iOS反分析检测、绕过iOS录音指示器的技术。这些报告揭示了Predator的攻击行为,却未说明其获取系统深层权限的实现方式。

相关阅读:
苹果手机间谍软件Predator中未公开的反检测反蜜罐反取证技术

苹果手机间谍软件劫持iOS私有API:摄像头麦克风偷偷录制毫无提示

本文将揭晓这一核心答案。

通过对Predator iOS样本的持续逆向分析,在首份报告的基础上,首次披露Predator内核利用引擎支撑其监控能力的完整技术原理。

本次分析的攻击链针对iOS 17以下版本,覆盖A16及前代芯片设备。苹果在A15设备中引入的安全页表监视器(SPTM) 将页表管理迁移至EL2异常级别,从架构层面有效缓解了本文所述的内核代码篡改技术。

核心发现

1. FDGuardNeonRW:一款内核读写原语,利用ARM NEON向量寄存器作为隐蔽数据通道,实现任意内核内存的读写操作;

2. 基于JavaScriptCore工具链挖掘的PAC绕过:Predator在苹果原生JavaScriptCore框架中检索特定20字节ARM64指令序列,伪造PAC签名指针;

3. 256项PAC签名缓存:按地址字节索引预计算签名指针,实现无加密延迟的实时钩子回调;

4. RWTransfer:通过受保护文件描述符与Mach端口操控,实现进程间内核读写权限的传递;

5. callFunc:一套远程函数执行框架,借助Mach异常消息劫持线程状态;

6. 覆盖21款设备型号(iPhone XS至iPhone 14 Pro Max),划分为5个设备适配类别。

背景:Predator必须突破的iOS安全特性

指针身份验证码(PAC)

自A12芯片(2018年iPhone XS)起,苹果引入PAC硬件安全特性,为代码指针添加加密签名。处理器执行函数指针或返回地址前会校验签名,攻击者篡改指针将触发校验失败与系统异常。

内核地址空间布局随机化(KASLR)

iOS每次开机都会随机化内核基地址,所有内核代码与静态数据结构均偏移不可预测的数值。即便攻击者掌握内核漏洞,也需先获取可靠的内核内存读取原语以计算偏移量——而这正是FDGuardNeonRW的核心能力。

发现一:FDGuardNeonRW——通过向量寄存器实现内核内存访问

命名解析

FDGuardNeonRW的类名完整编码了其技术原理:

组成部分 含义
FD 文件描述符,漏洞利用涉及change_fdguard_np系统调用
Guard 操控文件描述符防护机制,搭建内核原语
Neon ARM NEON向量寄存器作为数据传输通道
RW 实现内核内存的读写双向访问

这是Predator所有功能的核心原语:所有钩子、进程注入、PAC绕过,均依赖FDGuardNeonRW对任意内核内存的读写能力。

NEON数据通道

ARM NEON是一组128位向量寄存器(V0-V31),原生用于SIMD并行运算,也是内核上下文切换时保存/恢复的线程状态数据。

Predator复用经典攻击技术:通过thread_get_state/thread_set_state Mach API,跨线程读写完整寄存器状态(含NEON寄存器)。其创新点在于专用NEON寄存器组传输内核数据:32个128位向量寄存器单次调用可传输528字节数据(含FPSR、FPCR与对齐填充),远超通用寄存器的272字节传输能力。

该通道依赖初始漏洞搭建的内核组件:NEON仅为传输载体,内核内存读写由内核权限代码执行。

(图1:FDGuardNeonRW以NEON寄存器为高带宽内核数据通道的读写原语)

读取原语(单次528字节)

读取操作依赖初始漏洞植入的内核代码路径:将受控内核地址的数据加载至NEON寄存器后触发陷阱指令。目标线程恢复执行并触发陷阱,Predator异常处理程序接收ID为2406(0x966)的Mach异常消息,获取携带内核数据的NEON状态。程序最多重试10次解决时序竞争问题,单次读取528字节。

写入原语(轮询确认)

写入操作反向复用传输通道:Predator挂起目标线程,读取VFP/NEON基准状态,按设备专属偏移修改目标地址与数据,发送携带修改后状态的异常响应。内核将状态还原至线程上下文,线程恢复后,漏洞内核代码从NEON寄存器读取数据并写入目标内核地址。程序最长轮询3秒,比对回传数据确认写入成功。

选用NEON寄存器的核心优势

• 大容量:单次操作传输512字节以上数据;

• 内核托管:属于标准线程状态管理范畴;

• 异常可见:完整包含于Mach异常消息;

• 双向复用:读写共用同一套机制。

(图2-3:NEON读写原语的IDA反汇编与反编译代码)

发现二:在JavaScriptCore中挖掘PAC绕过工具链

技术痛点

Predator在系统进程中安装钩子需重定向函数执行,即修改代码指针。PAC设备(iPhone XS及后续机型)的所有代码指针均携带加密签名,Predator必须为重定向指针伪造有效签名。

解决方案:复用苹果原生代码

Predator未自研签名算法,而是在苹果JavaScriptCore框架(Safari JS引擎原生组件)中,检索可控输入的PAC签名原生代码序列,目标函数为JSC::JSArrayBuffer::isShared()。

(图4:基于JSC工具链挖掘+256项预计算签名缓存的PAC绕过方案)

20字节核心工具链

Predator通过memmem()在isShared符号前后1000字节范围内,精准匹配以下20字节ARM64指令:

机器码 ARM64指令 功能
30 02 C1 DA PACIA X16, X17 以X17为上下文,硬件签名X16指针
E8 03 90 9A CSEL X8,XZR,X16,EQ 校验有效则复制结果
1F 01 00 F1 CMP X8, #0 校验签名是否成功
E0 07 9F 1A CSET W0, NE 设置返回值
C0 03 5F D6 RET 返回签名指针

核心指令PACIA X16, X17可通过硬件PAC密钥签名指针,Predator操控X16/X17寄存器,即可伪造任意指针的有效签名。

(图5-7:远程PACIA工具链挖掘流程的反汇编、反编译与十六进制数据)

发现三:256项PAC签名缓存

单次remotePACIA调用需创建线程、配置异常端口、修改内核线程状态,耗时毫秒级,无法满足微秒级的钩子回调需求。

预计算签名表

Predator初始化时构建256项预签名指针缓存,覆盖地址所有高字节取值,钩子触发时可即时查询有效签名指针。
参数 数值 说明
缓存大小 4096字节 256项×16字节/项
条目格式 [签名PC, 签名LR] 各8字节
PC鉴别器 0x7481000000000000 程序计数器签名
LR鉴别器 0x77D3000000000000 链接寄存器签名
索引规则 cache[16×(flags>>24)] CPSR标志位高字节
哈希算法 CityHash64(谷歌) 哈希桶查询

PC/LR独立鉴别器是苹果的纵深防御机制,Predator针对性适配;每个函数目标仅需执行512次高耗时remotePACIA调用,后续钩子回调均为零延迟缓存查询。

发现四:callFunc——远程函数执行框架

callFunc是Predator在远程进程中执行任意函数的核心机制,整合PAC缓存、Mach异常与线程状态操控,支持传入函数指针与最多6个参数(x0-x5)。

实现原理

远程进程中驻留木马线程(Predator内部命名),持续触发断点生成Mach异常。callFunc接收异常后填充参数寄存器,从PAC缓存查询签名PC/LR,异常响应携带修改后的线程状态;内核交付响应后,木马线程以指定参数执行目标函数。

毒化LR返回地址指向另一断点,函数返回时触发新异常,Predator重新接管控制权,形成可无限复用的远程过程调用机制。

源码溯源:0x10000B028函数日志标注文件为TaskROPDevOff.h,证实这是面向未开启开发者模式设备的ROP技术。

(图8:callFunc反编译代码——缓存未命中时构建256项缓存,命中时即时查询签名指针)

发现五:RWTransfer——进程间内核原语共享

Predator采用多进程架构:监控进程管理生命周期,辅助进程执行实际监控。初始漏洞仅赋予监控进程内核读写权限,RWTransfer实现权限跨进程传递。

(图9:RWTransfer进程间内核读写权限传递协议)

组件 数值 功能
传输魔数 0x998B3D24 标识内核内存中的权限传输结构
端口防护 0x9991AF84 应用于Mach接收端口
文件描述符 200个指向"/"的FD 调用change_fdguard_np(guard=100)创建
线程创建 pthread_create_suspended_np 专属传输线程
传输方式 mach_msg 向辅助进程发送FD数组+线程端口

监控进程遍历内核链表(按设备类别适配偏移),定位辅助进程的任务结构、IPC空间与端口条目,是Predator最复杂的组件,同步操控Mach端口、文件描述符、内核链表与线程状态。

发现六:远程Objective-C方法解析

Predator挂钩远程进程Objective-C方法时,无法依赖本地运行时查询:dyld共享缓存方法地址全进程一致,而应用二进制方法受进程级ASLR偏移影响。

因此Predator通过callFunc远程执行完整Objective-C运行时解析链路,保证结果精准:

阶段 运行时函数 功能
1 sel_registerName 方法名转选择器
2 objc_getClass 获取类对象
3 class_getInstanceMethod 获取方法结构体
4 method_getImplementation 获取实现指针

每次调用均完整执行Mach异常→PAC缓存→线程状态操控流程,彻底解决ASLR带来的地址偏移问题。

发现七:设备支持矩阵——5类适配,覆盖21款机型

不同iPhone的SoC、安全特性、内核版本导致内核结构布局差异,Predator按设备类别配置精准内核偏移。

类别 芯片 iPhone机型 数量
0 A12仿生 XS、XS Max、XS Max(国行)、XR 4
1 A13仿生 11、11 Pro、11 Pro Max、SE(第二代) 4
3 A14仿生 12 mini、12、12 Pro、12 Pro Max 4
4 A15/A16 13全系列、SE(第三代)、14全系列 9

注:样本未使用类别2,大概率为硬件版本预留或合并适配;不支持设备返回错误码5,安全终止执行避免内核崩溃。总计覆盖2018-2022年21款iPhone。

XOR比对解码

反编译代码中的十六进制常量为XOR编码ASCII字符串:程序调用uname()获取设备标识(如iPhone15,3),XOR比对结果为0即匹配设备。编码规则为小端序,如0x3531对应ASCII"15"、0x332C对应",3",直接映射iPhone型号。

示例:iPhone15,3(iPhone 14 Pro Max)匹配双重XOR校验为0的条件。

(图10:设备适配分发函数反编译——XOR字符串比对识别设备,返回0-4类别,不支持返回5)

完整攻击链

Predator iOS:全流程漏洞利用后渗透链

1. 初始漏洞:通过JSKit利用CVE-2023-41993,实现Safari/WebKit远程代码执行;

2. 内核读写:搭建FDGuardNeonRW,以NEON为隐蔽通道获取内核权限;

3. PAC绕过:JSC工具链+256项签名缓存,突破指针身份验证;

4. 远程执行:callFunc通过Mach异常+木马线程,实现远程函数调用;

5. 权限传递:RWTransfer共享内核读写权限至辅助进程;

6. 监控实施:远程解析OC方法,挂钩SpringBoard、mediaserverd等核心进程。

全链路强依赖,单环节失败即终止执行;配合错误码体系,攻击者可精准定位故障阶段。

(图11:从初始漏洞到监控实施的完整后渗透攻击链)


结论

FDGuardNeonRW证实,专为并行计算设计的ARM NEON向量寄存器,可被改造为内核内存隐蔽访问通道;528字节读取与轮询确认写入原语,稳定支撑Predator整套后渗透框架。

PAC绕过技术表明:硬件安全特性虽大幅提升攻击门槛,但攻击者获取内核读写权限后仍可突破。通过挖掘苹果原生框架工具链+预计算签名缓存,Predator以极低运行开销绕过指针身份验证。

权限传递机制彰显了商用间谍软件的工程化成熟度:跨进程内核读写权限传递,同步操控Mach端口、文件描述符、内核链表与线程状态,体现了长期、专业的技术投入。

这些发现揭示了一个严峻现实:商用间谍软件厂商不仅深耕零日漏洞挖掘,更在后渗透工程化上重金投入。防御此类威胁,需要底层硬件级证明、密封内核内存、带外监控等不依赖设备软件栈完整性的安全方案。

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