当前位置:首页>安卓APP>安卓端某音乐类 APP 逆向分享(二):协议分析

安卓端某音乐类 APP 逆向分享(二):协议分析

  • 2026-03-30 19:27:59
安卓端某音乐类 APP 逆向分享(二):协议分析

脱敏说明:本文涉及的应用域名、认证 Token、设备标识符(IMEI、MAC 地址、Android ID 等)均已脱敏处理,以 xxx 或 [MASKED] 代替,不包含任何可追溯至真实设备或账号的信息。文中截图仅用于技术原理说明。


一、以歌曲搜索协议为例

在上一篇中,我们借助 Postern 全局代理成功让 Charles 捕获了目标音乐APP 的所有流量。本文以「歌曲搜索」接口为例,深入分析协议结构,梳理出需要逆向破解的关键参数。

1.1 Charles 抓包查看协议详情

打开 Charles,在目标音乐APP 中触发一次歌曲搜索操作,即可在 Charles 中看到对应的请求:

Charles 中歌曲搜索协议详情

1.2 复制为 Curl 形式

Charles 支持将请求导出为 Curl 命令,便于在终端重现请求或作为代码编写的参照。以下是脱敏后的完整 Curl 请求:

curl \
  -H 'Host: interface3.music.xxx.com' \
  -H 'Cookie: EVNSM=1.0.0; NMCID=xxxxxx.1667355455436.01.4; versioncode=8008050; buildver=221010200836; resolution=2392x1440; deviceIdYD=[MASKED]; ntes_kaola_ad=1; mobilename=Nexus6P; __csrf=[MASKED]; osver=8.1.0; deviceIdZX=[MASKED]; os=android; channel=huawei1; MUSIC_A=[MASKED]; deviceId=[MASKED]; appver=8.8.50; NMDI=[MASKED]; NMTID=[MASKED]; packageType=release' \
  -H 'user-agent: MusicApp/8.8.50 (Android 8.1.0; Nexus 6P)' \
  -H 'cmpageid: SearchActivity' \
  -H 'mconfig-info: {"IuRPVVmc3WWul9fT":{"version":"2893824","appver":"8.8.50"},"tPJJnts2H31BZXmp":{"version":"1153024","appver":"3.25.00"}}' \
  -H 'x-mam-custommark: cronet' \
  -H 'content-type: application/x-www-form-urlencoded' \
  --data-binary "params=74A595527B7A1647174ADDB4F261E92FF2AFA5F42E4694960F9C5A3746841C9BA4DFA4F09AC5266109659469E031F06AE91ECFE7DB48EB4E9EFC1ECCD7562F7836FF6A0218FA861FA3B69A37A27D61C2D60AB011FF10E2DFD68262EE9744A31640FB1FC650D5679D5B2350FB9EC4B73249F33DAD34FA177056C73768AF0885D281..." \
  --compressed \
'https://interface3.music.xxx.com/eapi/search/song/page'

注意:上述 Curl 中的 Cookie 已全部脱敏,params 值为实际加密密文的截断示例,不影响对协议结构的分析。


二、请求结构分析

完整的请求结构可归纳如下图:

请求结构与逆向工作分解图

2.1 接口信息

属性
请求方法
POST
接口路径
/eapi/search/song/page
域名
interface3.music.xxx.com
Content-Type
application/x-www-form-urlencoded

接口路径中的 /eapi/ 前缀是该应用 Android 客户端专用的 API 命名空间,区别于网页端使用的 /api/ 接口,通常具有更强的加密和鉴权机制。

2.2 请求体:加密参数 params

POST Body 中只有一个字段:

params=74A595527B7A1647174ADDB4F261E92FF2AFA5F42E4694960F9C5A3746841C9B...

params 的值是一串十六进制大写字符串,是整个搜索请求的核心加密载荷。其明文内容猜测为搜索关键词、分页信息、客户端版本等构成的 JSON 结构,经过某种对称加密算法(AES 或自定义 XOR)处理后转为十六进制表示。

后续逆向工作:需在 App 反编译代码中找到 params 的构造与加密流程,提取加密密钥(key/iv)及算法,才能自主构造任意搜索请求。

2.3 请求头分析

请求头中主要包含以下几类信息:

请求头字段
含义
是否固定
Host
目标域名
固定
user-agent
客户端标识,含版本号和设备信息
相对固定
cmpageid
当前页面标识(此处为 SearchActivity)
随页面变化
mconfig-info
模块配置版本信息(JSON)
随版本变化,可固定
x-mam-custommark
网络栈标记(值为 cronet
固定
content-type
请求体格式
固定

mconfig-info 字段包含若干模块的版本号,推测用于服务端灰度下发配置,可直接沿用抓包中的值作为固定参数传入。

2.4 Cookie 参数逐项解析

Cookie 是本次协议中信息量最大、需要逆向工作最多的部分,共包含约 14 个字段。按性质分为四类:

类型一:固定参数(可直接硬编码)

字段
示例值
说明
EVNSM1.0.0
固定版本标记
versioncode8008050
客户端版本号(整型)
buildver221010200836
构建版本号(时间戳格式)
appver8.8.50
客户端版本号(字符串)
osandroid
操作系统,固定
ntes_kaola_ad1
广告标记,固定
packageTyperelease
构建类型,固定
channelhuawei1
渠道包标识,可固定

类型二:设备信息(依赖真实设备或可伪造)

字段
示例值
说明
resolution2392x1440
设备屏幕分辨率
mobilenameNexus6P
设备型号
osver8.1.0
Android 系统版本

这三个字段均为纯设备信息,可以直接读取设备属性后填入,或伪造为任意合法的设备参数。

类型三:设备 ID(结构已知,部分 Native 生成)

**deviceId**(最关键的设备 ID 字段)

其值为 Base64 编码字符串,解码后的明文结构为多字段 Tab 分隔拼接:

<IMEI(15位)>\t<MAC地址>\t<android_id(16位hex)>\t<native_id(16位hex)>
子字段
说明
来源
IMEI
设备唯一标识符,15 位数字
系统 API / TelephonyManager
MAC 地址
网卡物理地址,格式 xx:xx:xx:xx:xx:xx
系统 API
android_id
Android 设备唯一 ID,16 位十六进制
Settings.Secure.ANDROID_ID
native_id
由 App 的 Native 层 JNI 函数生成
反编译代码显示可置为空字符串

逆向结论deviceId 的结构已基本清晰,native_id 对应的 Native 函数(位于 com.example.music.deviceid.factory.JNIFactory 中的 JNI 方法)经反编译代码追踪,可以传入空字符串或 null 而不影响请求被接受,后续如有需要可进一步分析其生成逻辑。

NMCID

格式为 {6位随机字符串}.{13位毫秒时间戳}.01.4,猜测是客户端会话 ID,其中随机字符串部分需进一步确认是否有特定字符集或校验规则。

deviceIdYDdeviceIdZX

均为设备 ID 的另一种形式,采用 Base64 或 URL 编码的 JSON 格式封装,具体的生成逻辑尚未确认,需后续逆向分析。

类型四:认证 Token(需逆向破解)

字段
格式
分析
__csrf
32 位十六进制
跨站请求防伪 Token,生成算法未知
MUSIC_A
长十六进制字符串(约 200 字符)
推测为登录态/会话凭证,生成算法未知
NMDI
Base64 编码(约 180 字符)
认证 Token,生成算法未知
NMTID
字母数字混合(约 38 字符)
认证 Token,生成算法未知

这四个字段是整个 Cookie 中防护强度最高的部分,直接关系到请求能否被服务端认证通过。如果构造爬虫时直接复用抓包获取的真实 Token,存在被风控检测到账号异常的风险;更稳健的方案是逆向分析其生成算法,使每次请求都使用动态生成的 Token。


三、响应数据

值得注意的是,服务端返回的响应体同样是加密的,并非明文 JSON。这意味着即便成功构造出合法的请求,还需要额外实现响应解密才能获取有效数据。

# 响应体示例(密文,非明文 JSON)
{
"data""<encrypted_payload>..."
}

响应解密的逆向思路与 params 加密类似:在 App 代码中追踪 HTTP 响应的处理链路,找到解密函数,提取算法和密钥。


四、逆向工作总结

经过协议分析,完整实现该歌曲搜索接口的爬虫程序,需要解决以下三类逆向任务:

Task 1:请求参数 params 加密破解

  • 目标:确定 params 由什么明文内容组成,经过什么算法、使用什么密钥加密
  • 方向:在反编译代码中搜索 params 赋值点,逆向加密函数(可能涉及 AES-ECB/CBC 或自定义算法)

Task 2:Cookie 加密字段生成破解

需要破解的字段共 7 个,优先级建议如下:

  1. deviceId(结构已知,仅需确认 native_id 是否可为空)
  2. deviceIdYDdeviceIdZX(Base64/JSON 封装的设备 ID,优先级次之)
  3. NMCID(格式规律明显,需确认随机字符串的生成规则)
  4. __csrfMUSIC_ANMDINMTID(核心认证字段,难度最高,最后攻克)

Task 3:响应数据解密

  • 目标:解密服务端返回的加密响应,获取歌曲搜索结果的明文 JSON
  • 方向:追踪响应处理回调,找到解密入口函数,分析算法与密钥

五、Python 模拟请求框架(待补全)

在逆向工作完成前,可先搭建请求框架,待各加密字段逆向完成后逐步填充:

import requests
import hashlib
import base64
import time
import random
import string

# --- 设备信息(可自定义) ---
DEVICE_INFO = {
"resolution""2392x1440",
"mobilename""Nexus6P",
"osver""8.1.0",
"os""android",
"channel""huawei1",
"appver""8.8.50",
"versioncode""8008050",
"buildver""221010200836",
}

defbuild_nmcid() -> str:
"""
    构造 NMCID 字段:{6位随机字母数字}.{13位毫秒时间戳}.01.4
    格式规律已从抓包中归纳,随机串的字符集待逆向确认
    """

    random_part = ''.join(random.choices(string.ascii_lowercase + string.digits, k=6))
    timestamp_ms = int(time.time() * 1000)
returnf"{random_part}.{timestamp_ms}.01.4"

defbuild_device_id(imei: str, mac: str, android_id: str, native_id: str = "") -> str:
"""
    构造 deviceId 字段(Base64 编码)
    明文格式:{IMEI}\t{MAC}\t{android_id}\t{native_id}
    native_id 可置为空字符串(经反编译代码验证)
    """

    raw = f"{imei}\t{mac}\t{android_id}\t{native_id}"
return base64.b64encode(raw.encode()).decode()

defencrypt_params(payload: dict) -> str:
"""
    TODO: 加密请求体 params 字段
    待逆向分析后填充具体算法(AES or 自定义)
    :param payload: 搜索参数明文 dict,如 {"s": "关键词", "offset": 0, "limit": 30}
    :return: 加密后的十六进制字符串
    """

raise NotImplementedError("params 加密算法尚未逆向,待补全")

defbuild_cookie(device_id: str, nmcid: str) -> str:
"""
    拼装 Cookie 字符串
    TODO: __csrf / MUSIC_A / NMDI / NMTID 等认证字段待逆向破解后补全
    """

    cookie_parts = [
"EVNSM=1.0.0",
f"NMCID={nmcid}",
f"versioncode={DEVICE_INFO['versioncode']}",
f"buildver={DEVICE_INFO['buildver']}",
f"resolution={DEVICE_INFO['resolution']}",
"ntes_kaola_ad=1",
f"mobilename={DEVICE_INFO['mobilename']}",
"__csrf=TODO_REVERSE",        # 待逆向
f"osver={DEVICE_INFO['osver']}",
f"os={DEVICE_INFO['os']}",
f"channel={DEVICE_INFO['channel']}",
"MUSIC_A=TODO_REVERSE",       # 待逆向
f"deviceId={device_id}",
f"appver={DEVICE_INFO['appver']}",
"NMDI=TODO_REVERSE",          # 待逆向
"NMTID=TODO_REVERSE",         # 待逆向
"packageType=release",
    ]
return"; ".join(cookie_parts)

defsearch_song(keyword: str, offset: int = 0, limit: int = 30) -> dict:
"""
    歌曲搜索接口主函数
    :param keyword: 搜索关键词
    :param offset: 分页偏移
    :param limit: 每页数量
    :return: 解密后的响应 JSON(TODO: 响应解密待补全)
    """

# 构造 deviceId(示例值,实际需传入真实设备信息)
    device_id = build_device_id(
        imei="000000000000000",
        mac="00:00:00:00:00:00",
        android_id="0000000000000000",
    )
    nmcid = build_nmcid()

# 构造请求 payload(待加密)
    payload = {
"s": keyword,
"type"1,          # 1 = 歌曲搜索
"offset": offset,
"limit": limit,
"total"True,
    }

TODO: 加密 params(逆向完成后替换)
# encrypted_params = encrypt_params(payload)
    encrypted_params = "TODO_ENCRYPT"

    url = "https://interface3.music.xxx.com/eapi/search/song/page"
    headers = {
"Host""interface3.music.xxx.com",
"user-agent"f"MusicApp/{DEVICE_INFO['appver']} (Android {DEVICE_INFO['osver']}{DEVICE_INFO['mobilename']})",
"cmpageid""SearchActivity",
"x-mam-custommark""cronet",
"content-type""application/x-www-form-urlencoded",
"Cookie": build_cookie(device_id, nmcid),
    }
    data = {"params": encrypted_params}

    resp = requests.post(url, headers=headers, data=data)
    resp.raise_for_status()

TODO: 响应解密(逆向完成后替换)
# return decrypt_response(resp.content)
return resp.json()  # 当前返回原始响应,待解密逻辑补全后修改

说明:上述框架已搭好整体结构,encrypt_params()、响应解密逻辑、以及 __csrf / MUSIC_A / NMDI / NMTID 等认证字段的生成函数,将在后续逆向分析完成后逐步补全。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-07 02:40:49 HTTP/2.0 GET : https://c.mffb.com.cn/a/473103.html
  2. 运行时间 : 0.135857s [ 吞吐率:7.36req/s ] 内存消耗:4,435.25kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=261fb59c29b8d3dfca3943bc9feab3cd
  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.000606s ] mysql:host=127.0.0.1;port=3306;dbname=c_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000750s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000352s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000297s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000503s ]
  6. SELECT * FROM `set` [ RunTime:0.000197s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000572s ]
  8. SELECT * FROM `article` WHERE `id` = 473103 LIMIT 1 [ RunTime:0.005210s ]
  9. UPDATE `article` SET `lasttime` = 1775500849 WHERE `id` = 473103 [ RunTime:0.004350s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.003581s ]
  11. SELECT * FROM `article` WHERE `id` < 473103 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000543s ]
  12. SELECT * FROM `article` WHERE `id` > 473103 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000455s ]
  13. SELECT * FROM `article` WHERE `id` < 473103 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.039838s ]
  14. SELECT * FROM `article` WHERE `id` < 473103 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000898s ]
  15. SELECT * FROM `article` WHERE `id` < 473103 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.007453s ]
0.137536s