当前位置: 首页 > article >正文

PHPStudy+upload-labs靶场搭建避坑指南:从环境配置到蚁剑连接全流程

从零到一构建你的本地Web安全实战环境与upload-labs靶场深度解析对于刚踏入Web安全领域的学习者而言最大的障碍往往不是复杂的漏洞原理而是第一步——如何搭建一个稳定、可复现的实战环境。你是否曾满怀热情地下载了某个知名靶场却在配置环节被各种“404 Not Found”、“服务启动失败”或“连接被拒绝”等问题反复劝退这种挫败感我深有体会。今天我将以一个过来人的身份手把手带你走通这条从环境配置到漏洞验证的完整链路避开那些新手最容易踩的“坑”。我们不仅要把环境搭起来更要理解每一步背后的逻辑让你知其然更知其所以然。1. 基石PHPStudy环境配置的深度解析与避坑搭建本地Web测试环境选择一个趁手的集成工具至关重要。PHPStudy小皮面板因其对Windows环境的友好和开箱即用的特性成为许多人的首选。但“友好”不代表没有门槛错误的配置选择会让你在后续的漏洞复现中举步维艰。1.1 版本选择TS与NTS的抉择及其深远影响下载PHPStudy后你首先会面临一个关键选择使用哪个PHP版本这不仅仅是版本号高低的问题更核心的是线程安全Thread Safe, TS与非线程安全Non-Thread Safe, NTS版本的区别。这个选择将直接决定你能否成功复现某些特定类型的漏洞。简单来说TS版本内置了线程安全机制通常与以多线程方式运行的Web服务器如Apache的mod_php模块配合使用。它通过为每个线程分配独立的存储空间来避免资源竞争。NTS版本不包含线程安全机制性能稍优通常与以多进程或FastCGI模式运行的Web服务器如Nginx PHP-FPM或Apache的mod_fcgid配合使用。为什么这对upload-labs靶场如此重要因为靶场中部分关卡如利用.htaccess文件解析自定义后缀的实现依赖于Apache服务器特定的模块和配置指令。这些指令在PHP以Apache模块mod_php形式运行时才能生效而这通常需要TS版本的PHP支持。注意PHPStudy默认提供的PHP版本多为NTS。如果你想完整体验所有关卡尤其是涉及Apache解析器配置的题目强烈建议手动切换到TS版本。一个常见的误区是在PHPStudy的Apache配置文件中添加了AddType application/x-httpd-php .png等指令却发现.png文件依然无法被解析为PHP代码。这很可能就是因为你的PHP是NTS版本运行在FastCGI模式下Apache的AddType指令对其无效。操作指南如何为PHPStudy更换PHP TS版本获取TS版本PHP前往PHP官方Windows版本下载页面寻找对应版本如PHP 5.4、7.0等的“Thread Safe”版本压缩包通常是Zip格式。替换文件关闭PHPStudy所有服务。进入PHPStudy安装目录下的Extensions\php文件夹。将原有PHP版本文件夹如php-7.3.4-nts重命名备份然后将下载的TS版本PHP解压到此目录并命名为一个易于识别的名字如php-7.3.4-ts。切换版本打开PHPStudy主界面在“软件管理”-“PHP版本”中选择你刚刚放置的TS版本目录。验证模式重启Apache服务后创建一个包含?php phpinfo(); ?的info.php文件放入网站根目录通常是WWW通过浏览器访问。在输出的信息中查找“Server API”这一项。如果显示“Apache 2.0 Handler”恭喜你TS版本配置成功。如果显示“CGI/FastCGI”则仍是NTS/FastCGI模式。1.2 路径、端口与服务启动的常见问题排查环境搭建的另一个拦路虎是各种“启动失败”和“访问404”。问题一Apache或MySQL服务启动失败端口冲突这是最常见的原因。Apache默认使用80端口MySQL默认使用3306端口。如果这些端口被其他程序如IIS、Skype、其他MySQL实例占用服务就会启动失败。解决方案在PHPStudy的“设置”或“其他选项菜单”中找到“端口常规设置”修改Apache和MySQL的端口号例如改为81和3307。修改后访问网站需加上端口如http://localhost:81/upload-labs。缺少VC运行库某些PHP版本需要特定版本的Microsoft Visual C Redistributable。如果启动失败并提示相关错误请根据PHP版本要求安装对应的VC运行库。问题二访问靶场出现404错误路径问题确保你将upload-labs靶场文件解压到了正确的目录。PHPStudy的网站根目录通常是安装路径下的WWW文件夹。例如你的靶场完整路径应该是D:\phpstudy_pro\WWW\upload-labs。文件夹命名一致性从GitHub下载的压缩包解压后的文件夹名可能是upload-labs-master。你需要将其重命名为upload-labs以确保浏览器访问的URLlocalhost/upload-labs与磁盘上的文件夹名称完全一致。权限问题虽然Windows下较少见但确保Apache运行用户或Everyone对WWW及其子目录有读取和执行权限。2. 核心upload-labs靶场部署与结构剖析成功启动PHPStudy后接下来就是将upload-labs靶场部署到你的本地Web服务器中。这个过程不仅是简单的文件复制更是理解Web应用目录结构的好机会。2.1 靶场文件部署与目录权限从GitHub克隆或下载upload-labs项目后将其整个文件夹放入PHPStudy的WWW目录。此时你的目录结构应类似于D:\phpstudy_pro\WWW\ ├── index.php (可能存在的默认首页) └── upload-labs/ ├── index.php (靶场首页) ├── Pass-01/ ├── Pass-02/ ├── ... ├── upload/ (用户上传文件存储目录) └── ...关键目录upload需要具备写入权限因为靶场练习需要向其中上传文件。在Windows环境下PHPStudy通常以系统或管理员权限运行一般会自动拥有写入权。如果遇到上传失败提示“文件夹不存在”或“权限不足”请手动检查upload文件夹属性中的安全设置确保Users或Everyone组有“修改”和“写入”权限。2.2 靶场初始化与数据库配置如需要upload-labs的大部分关卡不依赖数据库但部分进阶关卡或为了记录上传历史可能会用到。如果靶场包含SQL文件如.sql你需要打开PHPStudy启动MySQL服务。使用phpMyAdmin通常集成在PHPStudy中访问http://localhost/phpmyadmin或任何MySQL客户端。新建一个数据库例如命名为upload_labs。选择该数据库点击“导入”选择靶场提供的.sql文件执行完成数据表的创建。完成上述步骤后在浏览器中访问http://localhost/upload-labs如果修改了端口则为http://localhost:端口号/upload-labs你应该能看到upload-labs的关卡选择界面这标志着靶场部署成功。3. 实战典型关卡漏洞原理与利用手法拆解环境就绪靶场点亮真正的安全实战学习才刚刚开始。upload-labs的每一关都精心设计代表了Web应用文件上传功能中一种常见的安全缺陷。我们挑选几个具有代表性的关卡深入其代码逻辑并演示如何利用。3.1 前端绕过JavaScript校验的脆弱性Pass-01第一关通常是最简单的旨在揭示仅依赖客户端浏览器端进行安全校验是多么不可靠。漏洞原理 查看网页源代码你会发现一个JavaScript函数checkFile()它在上传表单提交onsubmit事件时被调用用于检查文件扩展名。如果不符合白名单如只允许.jpg,.png则阻止表单提交。form action methodpost enctypemultipart/form-data onsubmitreturn checkFile() input typefile nameupload_file input typesubmit namesubmit value上传 /form script function checkFile() { var filename document.getElementsByName(upload_file)[0].value; // 简单检查后缀名 if (!/\.(jpg|png|gif)$/i.test(filename)) { alert(只允许上传图片文件); return false; } return true; } /script利用方法 既然校验发生在客户端攻击者就有多种方式绕过禁用浏览器JavaScript在浏览器开发者工具F12的设置中或通过插件临时禁用JavaScript然后直接上传.php文件。拦截并修改请求使用Burp Suite等代理工具拦截浏览器发出的HTTP请求包在请求包中直接将文件名filenameshell.php修改为filenameshell.jpg绕过前端检查但服务器端接收到的仍是.php文件。本地修改HTML将网页源代码保存到本地删除onsubmitreturn checkFile()这段属性然后用浏览器打开本地文件进行上传。这一关的核心教训是任何客户端校验都只能作为提升用户体验的辅助手段绝不能作为安全依赖。服务器端必须进行严格、彻底的校验。3.2 服务端校验MIME类型与黑名单的博弈Pass-02 Pass-03从第二关开始校验逻辑移到了服务器端安全性提升但攻防博弈也更加精彩。Pass-02MIME类型校验绕过服务器通过检查HTTP请求头中的Content-Type字段例如image/jpeg来判断文件类型。这个信息是由浏览器根据文件扩展名生成的同样可以被轻易篡改。利用步骤准备一个包含恶意代码的文本文件将其重命名为shell.jpg。使用Burp Suite拦截上传请求。在Burp Suite的Repeater模块中找到请求体部分将Content-Type: image/jpeg修改为Content-Type: image/jpeg实际上只要匹配服务器校验的白名单即可如image/png,image/gif。同时确保filename参数仍为shell.jpg或你想要的任何名字。转发请求服务器因为只检查了Content-Type头就会允许文件上传。Pass-03黑名单绕过之特殊后缀服务器采用黑名单机制禁止上传.php,.asp,.jsp等脚本文件。但黑名单永远存在遗漏的可能。$deny_ext array(.asp,.aspx,.php,.jsp); // ... 检查 $file_ext 是否在 $deny_ext 中 ...利用方法 Apache等Web服务器可以通过配置将多种后缀名关联到PHP解析器。除了常见的.php还有.php3,.php4,.php5,.php7(旧版本PHP的备用后缀).phtml,.pht(也被某些配置视为PHP文件)甚至在某些特定配置下.php.末尾带点也可能被解析。操作将你的WebShell文件重命名为shell.php3或shell.phtml。直接上传。如果服务器没有将这些后缀列入黑名单且服务器配置允许解析它们攻击就成功了。关键点这通常需要服务器Apache的httpd.conf或.htaccess文件中包含类似AddType application/x-httpd-php .php3 .phtml的配置。这也是为什么在TS版本Apache模块环境下这类漏洞更容易复现的原因。3.3 解析漏洞与配置攻击.htaccess与.user.iniPass-04 Pass-05当直接上传脚本文件受阻时攻击者可能会转向攻击服务器的解析逻辑本身。Pass-04.htaccess文件攻击.htaccess是Apache服务器的一个分布式配置文件它可以覆盖其所在目录及子目录的服务器配置。如果服务器允许上传.htaccess文件且配置不当AllowOverride All或包含FileInfo攻击者就可以上传一个自定义的.htaccess文件让服务器将特定后缀如图片后缀的文件当作PHP来解析。恶意.htaccess文件内容示例AddType application/x-httpd-php .jpg或FilesMatch shell\.jpg SetHandler application/x-httpd-php /FilesMatch利用流程先上传一个包含PHP代码的shell.jpg图片马。再上传一个包含上述内容的.htaccess文件。访问http://your-site/upload/shell.jpg该文件将被Apache的PHP模块解析执行。Pass-05.user.ini文件攻击.user.ini是PHP特有的配置文件作用类似于.htaccess但它是针对PHP设置的。在PHP以FastCGI模式通常对应NTS版本运行时.user.ini可以生效。它最常见的利用方式是auto_prepend_file和auto_append_file指令。恶意.user.ini文件内容示例auto_prepend_fileshell.jpg这行配置意味着在该目录及其子目录下任何PHP文件在执行前都会自动包含执行shell.jpg文件的内容。利用流程确保服务器上存在一个可访问的PHP文件例如靶场自带的index.php或readme.php。上传包含PHP代码的shell.jpg。上传包含上述配置的.user.ini文件。访问同目录下的任何一个PHP文件如index.php你的shell.jpg中的代码就会被执行。这种方式非常隐蔽因为攻击者并没有直接上传PHP文件而是通过合法的PHP文件“牵引”出了恶意代码。4. 验证使用蚁剑AntSword连接WebShell成功上传WebShell文件只是第一步能够连接并执行命令才证明漏洞利用真正成功。蚁剑是一款开源的跨平台WebShell管理工具图形化界面友好是安全测试和学习中的常用工具。4.1 蚁剑的安装与基本配置下载与安装从GitHub官方仓库下载蚁剑的安装包。它基于Electron开发有Windows、macOS、Linux版本。安装过程非常简单。启动与界面启动蚁剑后你会看到一个空白的Shell管理界面。核心操作区域是左侧的“数据管理”和右侧的“虚拟终端”、“文件管理”等。4.2 添加与连接WebShell假设我们通过upload-labs的某一关成功将一句话木马文件shell.php上传到了服务器其访问地址为http://localhost/upload-labs/upload/1234567890.php注意靶场通常会重命名上传的文件。一句话木马内容?php eval($_POST[ant]); ?这段代码的意思是通过POST请求传递一个名为ant的参数其值将被当作PHP代码执行。在蚁剑中添加Shell在蚁剑主界面右键点击空白处或点击“添加”按钮。在弹出的配置窗口中填写URL地址你的WebShell完整访问地址即http://localhost/upload-labs/upload/1234567890.php。连接密码对应一句话木马中$_POST[‘’]里面的字符串本例中是ant。编码器默认选择defaultbase64编码即可用于绕过一些简单的WAF或编码检查。备注可自定义如“upload-labs测试Shell”。点击“添加”。如果信息正确该Shell会出现在左侧列表中通常显示为绿色或带有连接图标。4.3 功能测试与漏洞验证双击新添加的Shell如果连接成功右侧会打开一个新的标签页通常默认显示“文件管理”视图。在这里你可以浏览服务器文件系统验证你是否具有读取目录的权限。上传/下载文件测试文件操作能力。打开虚拟终端尝试执行系统命令如whoami查看当前用户权限、ipconfig或ifconfig查看网络信息、dir或ls列出目录。数据库管理如果服务器有数据库且PHP配置了相应扩展可以尝试连接和管理数据库。连接失败的常见原因URL或密码错误仔细核对WebShell的访问路径和一句话木马中定义的密码。文件未成功上传或已被删除返回靶场或服务器文件系统确认文件是否存在。代码未被执行可能因为后缀名不被解析如上传了.php3但服务器未配置、文件内容被安全软件过滤、或代码本身有语法错误。可以在WebShell文件中使用?php phpinfo(); ?测试最基本的PHP解析功能。防护软件拦截本地安全软件或服务器端的WAF可能拦截了蚁剑的特征流量。可以尝试使用蚁剑的编码器、加密器功能或使用更简单的连接工具进行测试。4.4 安全警示与清理在本地测试环境中使用蚁剑是安全的但务必牢记仅用于授权测试绝对不要在未经授权的真实网站或系统上进行任何渗透测试行为这是违法行为。测试后及时清理完成漏洞复现学习后应删除上传的WebShell文件、.htaccess或.user.ini等配置文件避免留下后门。理解防御之道通过攻击手段的学习最终目的是为了理解如何防御。针对文件上传漏洞防御措施应包括使用白名单校验文件扩展名和MIME类型对上传文件进行重命名避免用户控制文件名将上传文件存储在Web根目录之外通过代理脚本访问对图片等文件进行二次渲染或内容检查禁用危险的服务端解析配置等。搭建环境、分析漏洞、利用验证、思考防御这是一个完整的学习闭环。upload-labs靶场就像一本生动的教科书而PHPStudy和蚁剑则是你的纸和笔。过程中遇到的每一个错误解决的每一个问题都会让你对Web安全体系的理解加深一分。记住耐心和细致是安全研究员最重要的品质之一从搭建环境这一步就开始培养吧。当你终于看到蚁剑成功连接并能在自己的“服务器”上执行命令时那份成就感会告诉你所有的折腾都是值得的。接下来就深入每一个关卡去探索更多精妙的绕过技巧和防御思路吧。

相关文章:

PHPStudy+upload-labs靶场搭建避坑指南:从环境配置到蚁剑连接全流程

从零到一:构建你的本地Web安全实战环境与upload-labs靶场深度解析 对于刚踏入Web安全领域的学习者而言,最大的障碍往往不是复杂的漏洞原理,而是第一步——如何搭建一个稳定、可复现的实战环境。你是否曾满怀热情地下载了某个知名靶场&#xf…...

【RocketMQ 生产者和消费者】- 事务消息的使用

本文章基于 RocketMQ 4.9.3 1. 前言 【RocketMQ】- 源码系列目录【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息【RocketMQ 生产者和消费者】- 消费者启动源码【RocketMQ 生产者和消费者】- 消费者重平衡(1)【RocketMQ 生产者和消费者】- 消…...

CM311-1a机顶盒system分区只读?3种方法教你强制卸载并删除预装应用

CM311-1a机顶盒system分区只读?3种方法教你强制卸载并删除预装应用 手头这台CM311-1a机顶盒,开机后满屏的运营商应用和广告推送,用起来实在不够清爽。相信不少折腾过这类盒子的朋友都动过删除预装软件的念头,但当你兴致勃勃地连接…...

Linux运维进阶指南:从RHCSA到RHCA,如何规划你的红帽认证之路?

Linux运维进阶指南:从RHCSA到RHCA,如何规划你的红帽认证之路? 很多朋友在掌握了Linux基础操作后,会感到一丝迷茫。日常的服务器维护、脚本编写似乎已经得心应手,但职业的天花板也隐约可见。下一步该往哪里走&#xff…...

Deepin系统远程办公实战:用xrdp实现Windows无缝连接(含密码安全配置技巧)

Deepin系统远程办公实战:用xrdp实现Windows无缝连接(含密码安全配置技巧) 在混合办公与分布式团队日益普及的今天,拥有一套稳定、安全且高效的远程桌面解决方案,已成为许多职场人士和技术爱好者的刚需。如果你恰好是De…...

五、BGP路由优化与实战配置指南

1. 为什么你的BGP网络总是不稳?从理解路由优化开始 搞网络的朋友,尤其是负责中大型数据中心或者跨地域骨干网的,估计没少被BGP折腾过。我见过太多这样的场景:网络平时看着好好的,流量一上来就抖,或者某个链…...

MacOS高效配置FFmpeg与FFprobe的完整指南

1. 为什么你的FFmpeg安装总是失败?先避开这些坑 如果你在Mac上折腾过FFmpeg,大概率经历过这样的场景:跟着网上某个教程,一通操作猛如虎,最后在终端里输入 ffmpeg -version,结果给你来一句“command not fou…...

Superset动态参数图表开发手册:手把手教你处理多值IN查询和日期断层问题

Superset动态参数图表开发手册:手把手教你处理多值IN查询和日期断层问题 你是否曾为在Superset中实现一个看似简单的动态筛选图表而焦头烂额?当业务方提出“我们需要一个能同时筛选多个部门、并且日期轴要连续不间断的报表”时,你信心满满地打…...

利用 Cloudflare CDN 代理,打通 IPv4 访问 IPv6 服务的网络鸿沟

1. 从一次真实的访问困境说起 前几天,我的一位朋友,一位资深开发者,在群里发了个哭笑不得的表情。他在自己家里,用一台旧电脑折腾了个私人网盘(NAS),还搭了个博客,图的就是个自由和…...

浏览器提示“代理服务器可能有问题”?三步排查法帮你快速解决

1. 问题初现:当浏览器突然“罢工” 相信不少朋友都遇到过这种情况:正想打开浏览器查个资料、看个视频,结果页面没刷出来,反而弹出一个让人心头一紧的提示——“代理服务器可能有问题”。那一瞬间,感觉就像开车时突然亮…...

基于龙芯2K0300久久派的OpenCV交叉编译实战:从虚拟机Ubuntu环境搭建到嵌入式视觉应用部署

1. 环境准备:虚拟机与Ubuntu的“新家”搭建 如果你正准备为龙芯2K0300久久派折腾OpenCV,那第一步绝对不是急着敲命令。我见过太多新手朋友,一上来就照着教程安装工具链,结果卡在奇奇怪怪的环境问题上,白白浪费一两天时…...

解锁Minio原生分片上传:从源码解析到实战封装

1. 为什么你需要Minio的原生分片上传? 如果你正在处理大文件上传,比如用户上传的视频、设计稿源文件,或者系统间的数据备份包,那你肯定遇到过这些问题:上传到一半网络断了,得全部重来;或者一个几…...

用VirtualBox快速搭建麒麟信安3.3-6C测试环境:附网络隔离方案与权限管理技巧

用VirtualBox快速搭建麒麟信安3.3-6C测试环境:附网络隔离方案与权限管理技巧 最近在折腾几个安全相关的测试项目,需要一个既能模拟内网环境、又能方便访问外部资源进行软件包更新的沙箱。物理机来回折腾太麻烦,云主机又不够“隔离”&#xff…...

主流人群计数数据集深度解析:从ShanghaiTech到JHU_CROWD++

1. 人群计数数据集:为什么选对数据集,你的模型就成功了一半? 刚入行人脸检测或者人群计数的时候,我踩过最大的一个坑,就是没把数据集研究明白。当时拿到一个开源模型,兴冲冲地用自己的几张图跑了一下&#…...

Mac用户福音:无需Root实现Android屏幕共享与远程控制的完整指南(附常见问题解决)

Mac用户福音:无需Root实现Android屏幕共享与远程控制的完整指南(附常见问题解决) 作为一名长期在Mac生态下工作的开发者或效率追求者,你是否曾为无法在Mac电脑上流畅地查看和控制Android手机屏幕而烦恼?无论是为了演示…...

ReDoc 实战:打造企业级 API 文档的进阶技巧与最佳实践

1. 为什么企业级项目需要 ReDoc?不止是“好看”那么简单 很多朋友第一次接触 ReDoc,可能和我当初一样,觉得它就是个“美化版”的 Swagger UI。确实,它三栏式的布局、清晰的排版,一眼看上去就比 Swagger UI 专业不少。但…...

open3d 结合VSCode与SSH实现远程服务器3D可视化界面本地渲染

1. 为什么我们需要远程3D可视化? 搞3D点云、三维重建或者计算机视觉的朋友,肯定都遇到过这个场景:代码和模型都跑在实验室或者公司的远程服务器上,那机器性能强劲,GPU给力,但就是没有显示器。你想看一眼自己…...

你的服务还在用HTTP轮询?一文搞懂Kafka——从零到百万级吞吐的C++实战

一、你的轮询,正在杀死你的服务器 想象一个场景:你写了一个C++后端服务,前端每隔500毫秒发一次HTTP请求来问"有没有新消息?“。大部分时候服务端回答"没有”,偶尔回一条。系统跑了半年没出过问题。 然后用户量翻了10倍。 你开始发现CPU占用莫名其妙地飙到70%…...

从传统到深度学习:图像分割算法的演进与应用场景解析

1. 图像分割:从“看”到“理解”的关键一步 想象一下,你给电脑看一张照片,它不仅能认出照片里有一只猫,还能精确地告诉你猫的轮廓在哪里,猫的眼睛、鼻子、耳朵分别属于图像的哪些像素。这个过程,就是图像分…...

全方位抓包实战指南:从浏览器到小程序的完整解决方案

1. 为什么你需要掌握全平台抓包? 作为一名和网络请求打了十几年交道的“老司机”,我见过太多开发者朋友在调试问题时,面对浏览器、手机APP、微信小程序或者一个独立的PC桌面应用,不知道如何下手去查看它们背后到底在和服务器“聊”…...

PyBullet实战:从零开始构建你的第一个机器人仿真环境

1. 环境准备:安装与初识PyBullet 想玩机器人仿真,但又觉得那些软件门槛太高?别担心,PyBullet就是为你准备的。我第一次接触它的时候,感觉就像发现了一个宝藏。它本质上是一个Python模块,把强大的Bullet物理…...

ASPP模块的深度解析:从多尺度感知到语义分割的实践应用

1. 为什么你的语义分割模型总“看不清”?聊聊多尺度感知的痛点 做语义分割的朋友,估计都遇到过这样的尴尬:模型对远处的小车识别得挺好,但画面里那棵近在眼前的大树,却死活分不清是树还是电线杆;又或者&…...

如何快速检测和修复BSPHP未授权访问漏洞?安全工程师的实用指南

从实战出发:BSPHP未授权访问漏洞的深度检测与根治方案 最近在帮一家电商平台做安全审计时,他们的技术负责人一脸愁容地找到我,说内部监控发现有几个奇怪的IP在频繁访问管理后台的日志接口,但查了登录记录却没有任何异常。我们花了…...

【SMB协议】Win10访问Linux共享文件夹:从“不安全的来宾登录”到用户映射的实战排障

1. 从“能ping通”到“打不开”:一个混合办公环境的真实困境 最近在帮一个朋友的公司搭建内部文件共享系统,他们有几台Windows 10的办公电脑,需要稳定地访问一台运行Ubuntu的服务器上的共享文件夹。听起来是个很常规的需求对吧?我…...

从MicroPython到C/C++:树莓派Pico双语言开发实战对比

从MicroPython到C/C:树莓派Pico双语言开发实战对比 如果你手头有一块树莓派Pico,面对MicroPython和C/C两种开发方式,是不是有点选择困难?我刚开始接触Pico的时候也纠结过,毕竟两种语言各有各的吸引力。MicroPython上手…...

为什么你的 SQL 测试快生产卡?金仓连接条件下推来解答

你是否遇到过这样的场景:一个看似复杂的SQL,在测试环境运行飞快,一到生产环境就“卡死”,一查执行计划,发现子查询生成了一个巨大的中间结果集,导致后续操作全部陷入性能泥潭? 如果你正被此类场…...

sd工具终极发展蓝图:从简单替换到智能编辑的完整进化指南

sd工具终极发展蓝图:从简单替换到智能编辑的完整进化指南 【免费下载链接】sd Intuitive find & replace CLI (sed alternative) 项目地址: https://gitcode.com/gh_mirrors/sd/sd 在现代开发工作流中,高效的文本处理工具是提升 productivity…...

终极指南:7个最适合用sd处理的真实案例解析

终极指南:7个最适合用sd处理的真实案例解析 【免费下载链接】sd Intuitive find & replace CLI (sed alternative) 项目地址: https://gitcode.com/gh_mirrors/sd/sd sd是一款直观的查找替换命令行工具,专为简化文本处理任务而设计。它采用Ja…...

AppManager Root功能终极指南:解锁Android系统的全部潜力

AppManager Root功能终极指南:解锁Android系统的全部潜力 【免费下载链接】AppManager A full-featured package manager and viewer for Android 项目地址: https://gitcode.com/gh_mirrors/ap/AppManager AppManager是一款功能全面的Android软件包管理器和…...

sd安装终极指南:5种快速安装方法让你告别sed复杂语法

sd安装终极指南:5种快速安装方法让你告别sed复杂语法 【免费下载链接】sd Intuitive find & replace CLI (sed alternative) 项目地址: https://gitcode.com/gh_mirrors/sd/sd sd是一款直观的命令行查找替换工具,作为sed的替代品,…...