当前位置:首页>iOSAPP>iOS 内存修改工具箱:扫描、定位、修改

iOS 内存修改工具箱:扫描、定位、修改

  • 2026-08-17 19:18:58
iOS 内存修改工具箱:扫描、定位、修改

从 g_gold = 1250 出发,点击一个按钮,用 mt_scan_u32 扫描内存找到地址,mach_vm_write 写入 8888,同一行代码都没动,UI 上 1250 变成了 8888。完整源码见文末获取方式。


1. 什么是内存修改,能解决什么问题

内存修改,就是绕过正常代码逻辑,直接读写进程的虚拟内存。
App 里的任何变量最终都存在于进程地址空间的某个地址上。正常改 g_gold = 8888 要经过编译器生成的 store 指令。但如果你能直接往 g_gold 所在的内存地址写 8888——什么 setter、KVC、属性观察者、所有上层逻辑全部跳过。你直接改了物理事实。
它能做什么:
场景
做什么
游戏修改
定位金币、血量、等级的内存地址,直接改成目标值
越狱检测绕过
把 check_jailbreak() 的入口指令 patch 成 return 0
安全研究
观察某段内存区域在运行时如何变化
逆向分析
修改函数参数、返回值来观察程序行为变化

内存修改 vs Hook vs 注入,对抗检测的能力差别

方式
做了什么
留下什么痕迹
对抗检测能力
GOT Hook(fishhook)
改 __la_symbol_ptr 函数指针
指针指向非预期 image,dladdr 立即可查
最低
Inline Hook(Dobby)
改写函数入口指令为跳板
__TEXT
 页哈希变化 + rwx 权限标记
动态库注入
往进程塞 Mach-O
dyld_all_image_infos
 多一条记录
内存修改
mach_vm_write
 直接写值
什么都不加,只改已有数据
最高
GOT Hook 改指针,dladdr 一查就暴露。Inline Hook 改指令,代码段哈希会变。注入多一个 image,dyld 有记录。内存修改不进 dyld、不改符号表、不改指令——你只改了数据段里一个值,或者临时改了代码段一个字节。安全 SDK 可以扫描 rwx 页面来发现代码段权限异常,但对数据段的修改几乎无迹可寻——除非服务端发现了行为异常(金币从 1250 突然变成 999999),客户端拿不出直接证据。
内存修改的前提:同进程操作用 mach_task_self() 即可,跨进程操作需要越狱或 task_for_pid-allow。

2. Demo:一个按钮,让 1250 变成 8888

2.1 场景

ViewController 里有一个全局变量 g_gold,初始值 1250。界面上一个 Label 显示这个值,一个按钮。点击按钮 → 扫描内存找 1250 → 确认地址 → 写入 8888 → Label 刷新。

2.2 完整代码

// 全局变量static uint32_t g_gold = 1250;- (void)onTap {    if (self.hasRun) return;    self.hasRun = YES;    [self.actionBtn setTitle:@”执行中...” forState:UIControlStateNormal];    [self.actionBtn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];    self.actionBtn.enabled = NO;    self.stepLabel.text = @”扫描中...”;    self.stepLabel.textColor = [UIColor orangeColor];    dispatch_async(dispatch_get_global_queue(00), ^{        mt_ctx_t ctx;        mt_init(&ctx, mach_task_self());          // 初始化,task port = 自身        // 步骤 1:扫描值为 1250 的 4 字节整数        dispatch_async(dispatch_get_main_queue(), ^{            self.stepLabel.text = @”1/3  扫描内存中...  搜索值 = 1250”;        });        mach_vm_address_t addr = 0;        bool found = mt_scan_u32(&ctx, 1250&addr);  // 核心:内存扫描        if (!found) {            dispatch_async(dispatch_get_main_queue(), ^{                self.stepLabel.text = @”扫描失败:未找到值 1250”;                self.stepLabel.textColor = [UIColor redColor];            });            return;        }        // 步骤 2:定位到地址        dispatch_async(dispatch_get_main_queue(), ^{            self.stepLabel.text = [NSString stringWithFormat:                @”2/3  已定位到地址 0x%llx”, addr];        });        usleep(400000);        // 步骤 3:写入新值        dispatch_async(dispatch_get_main_queue(), ^{            self.stepLabel.text = @”3/3  写入新值 8888...”;        });        mt_write_u32(&ctx, addr, 8888);           // 核心:直接写内存        // 验证        uint32_t verify = 0;        mt_read_u32(&ctx, addr, &verify);        dispatch_async(dispatch_get_main_queue(), ^{            self.valueLabel.text = [NSString stringWithFormat:@”%u”, g_gold];            if (verify == 8888 && g_gold == 8888) {                self.valueLabel.textColor = [UIColor greenColor];                self.stepLabel.text = @” 验证通过:1250  8888”;                self.stepLabel.textColor = [UIColor greenColor];                [self.actionBtn setTitle:@” 修改成功” forState:UIControlStateNormal];            } else {                self.valueLabel.textColor = [UIColor redColor];                self.stepLabel.text = [NSString stringWithFormat:                    @” 失败  verify=%u  g_gold=%u”, verify, g_gold];                self.stepLabel.textColor = [UIColor redColor];            }        });    });}

2.3 运行效果

左侧 1250(黄色)、右侧 8888(绿色)。g_gold = 1250 这一行代码从来没执行过 g_gold = 8888——值是被 mach_vm_write 从外部直接改的。
下面拆解 onTap 里调用的四个核心函数,每一步在 Mach 内核里发生了什么。

3. 步骤一:mt_init — 拿到 task port

mt_ctx_t ctx;mt_init(&ctx, mach_task_self());
一切 Mach VM 操作的前提是 task port。同进程用 mach_task_self(),跨进程(外部工具改其他 App)需要越狱后通过 task_for_pid 拿目标 task port。

4. 步骤二:mt_scan_u32 — 扫描内存找到 1250

mach_vm_address_t addr = 0;bool found = mt_scan_u32(&ctx, 1250, &addr);
从输入(值 1250)到输出(地址 addr),内部做了三步:

4.1 枚举所有可读写区域

mach_vm_region 遍历进程的虚拟地址空间,过滤出 VM_PROT_READ | VM_PROT_WRITE 的区域——全局变量和堆在这里。系统库在 dyld_shared_cache 里(地址 0x180000000+),数据不会存在那里,直接过滤掉。
kern_return_t kr = mach_vm_region(task, &addr, &size,    VM_REGION_BASIC_INFO_64,    (vm_region_info_t)&info, &info_count, &object_name);// 过滤条件if ((info.protection & VM_PROT_READ) && (info.protection & VM_PROT_WRITE)    && !is_in_shared_cache(addr)) {    // 这个区域值得扫描}
一个坑:某些内核区域返回 size=0,不手动跳过就是无限循环。

4.2 分块读取并匹配

对每个可读写区域,用 mach_vm_read_overwrite 逐块拉数据到本地缓冲区,然后搜索字节序列 0xE2 0x04 0x00 0x00(1250 的小端表示):
#define CHUNK (1024 * 1024)  // 1MB 块uint8_t buf[CHUNK];while (cur < region_end) {    mach_vm_read_overwrite(task, cur, CHUNK, (mach_vm_address_t)buf, &bytes_read);    // 在 buf 中搜索 1250 的 4 字节编码    for (size_t i = 0; i <= bytes_read - 4; i++) {        if (*(uint32_t *)(buf + i) == 1250) {            *out_addr = cur + i;   // 命中!返回地址            return true;        }    }    cur += bytes_read - 3;  // 回退 3 字节,防止跨块漏匹配}
mach_vm_read_overwrite 比 mach_vm_read 高效——前者的数据直接写到调用方缓冲区,后者需要内核分配新内存再映射回来,多了两次上下文切换。

4.3 更多搜索方式

除了精确值扫描,工具还支持:
// 带通配符的 AoB(Array of Bytes)mt_scan_aob(&ctx, pattern, mask, pat_len, &addr);// 多结果收集(所有命中地址)mt_result_set_t rs;mt_result_init(&rs);mt_scan_u32_all(&ctx, 1250, &rs);// 然后在结果集中缩小范围(经典游戏修改器流程)mt_narrow_search_u32(&ctx, &rs, 1180);  // 只保留变成 1180 的// 各种宽度mt_scan_u8(&ctx, 42, &addr);mt_scan_f32(&ctx, 3.14f, &addr);  // 游戏坐标常用mt_scan_u64(&ctx, 0xDEAD, &addr);// 指针链追踪(多级间接引用)uint64_t offsets[] = {0x100x240x08};mt_follow_pointer(&ctx, game_manager_base, offsets, 3, &gold_addr);

5. 步骤三:mt_write_u32 — 直接写入 8888

mt_write_u32(&ctx, addr, 8888);
底层就是 Mach 内核的 mach_vm_write:
kern_return_t kr = mach_vm_write(task, addr, (vm_offset_t)&value, sizeof(value));// kr == KERN_SUCCESS
这一行执行完,addr 处的物理内存已经被改写。需要特别注意的是:mach_vm_write 直接写内存,完全绕过了任何语言运行时。没有 setter、没有 KVO、没有 willChange/didChange 回调——ObjC runtime 不知道这件事发生过。只有当你重新读出这个地址的值时,才会发现它已经变了。

6. 步骤四:mt_read_u32 — 验证写入

uint32_t verify = 0;mt_read_u32(&ctx, addr, &verify);// verify == 8888  ✓
通过 mach_vm_read_overwrite 读回确认。在 onTap 的最后一步,同时检查了 verify == 8888 和 g_gold == 8888——两者是同一个物理地址,读出来的结果一致,证明了 mach_vm_write 确实改到了 g_gold 的内存。

7. 完整源码获取

ios_mem_toolkit.h — 全部 API 声明
ios_mem_toolkit.c — 完整实现,含分块扫描、缩小搜索、指针链、代码段 Patch、平台兼容层
获取方式:关注后私信回复「内存工具箱」即可获取完整源码。

8. 参考资料

[1] Apple Mach VM API — mach_vm_region, mach_vm_read_overwrite, mach_vm_write, mach_vm_protect
[2] XNU 源码 — vm_map.c,https://github.com/apple-oss-distributions/xnu
[3] ARM Architecture Reference Manual — ARM64 指令编码(MOV/CBZ/B/SUBS)
[4]  — segment_command_64, max_protection 字段

技术交流

对 iOS 内存操作、Mach VM API 或逆向工程感兴趣,欢迎深入探讨。
读完本文,如果你希望把零散的知识点串成完整的攻防体系,可以系统学习《iOS逆向安全从入门到攻防实战》
阶段
内容
入门篇
逆向基础、越狱、环境搭建、Hook 入门,动手修改 IDFA / IDFV
基础篇
MachOView / Hopper / IDA Pro 工具链、Mach-O 格式精讲、脱壳、反编译分析
中级篇
Method Swizzling / FishHook / Dobby / Frida 四套 Hook 方案,覆盖 OC 方法、C 函数、符号表、运行时注入
高级篇
非 MonkeyDev 重打包、注入动态库、越狱 Tweak 插件开发、Tweak 与 App 通信
实战篇
虚拟相机(替换摄像头帧 + 预览视频)、虚拟定位(开发者方式 / Hook / 注入三类方案)
防护篇
Method Swizzling 检测、Got 表 Hook 检测、InlineHook 检测、重打包检测
设备指纹
概念、稳定性实现、抹机不变、篡改三方指纹
整套课程攻防双视角,从工具使用讲到工程落地。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-18 01:17:07 HTTP/2.0 GET : https://c.mffb.com.cn/a/503885.html
  2. 运行时间 : 0.188895s [ 吞吐率:5.29req/s ] 内存消耗:4,317.24kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=81c85f25e3ce61e7f65194cbe493de9d
  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.001024s ] mysql:host=127.0.0.1;port=3306;dbname=c_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001472s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000723s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000721s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001397s ]
  6. SELECT * FROM `set` [ RunTime:0.000551s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.002367s ]
  8. SELECT * FROM `article` WHERE `id` = 503885 LIMIT 1 [ RunTime:0.001708s ]
  9. UPDATE `article` SET `lasttime` = 1786987027 WHERE `id` = 503885 [ RunTime:0.003839s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000684s ]
  11. SELECT * FROM `article` WHERE `id` < 503885 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001776s ]
  12. SELECT * FROM `article` WHERE `id` > 503885 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001471s ]
  13. SELECT * FROM `article` WHERE `id` < 503885 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002293s ]
  14. SELECT * FROM `article` WHERE `id` < 503885 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003011s ]
  15. SELECT * FROM `article` WHERE `id` < 503885 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002244s ]
0.192598s