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

Fiddler HTTPS抓包失败原因与证书信任机制详解

1. 为什么HTTPS抓包总在“证书这关”卡死——不是Fiddler不行是系统和APP联手设防Fiddler HTTPS抓包避坑指南从证书安装失败到APP抓包不全的完整解决方案——这个标题里藏着太多人反复踩坑却始终没想通的真相。我带过三届移动测试团队每年新同事入职第一周必被这个问题堵住Fiddler明明启动了、HTTPS解密也勾上了、手机代理也配对了可一打开APPFiddler里空空如也或者更糟——连证书都装不进安卓手机提示“无法安装此证书”点开设置里的“已安装证书”列表根本找不到Fiddler根证书的影子。关键词就在这儿Fiddler、HTTPS抓包、证书安装失败、APP抓包不全。这不是配置漏了一步而是你正面对一套层层嵌套的防御机制操作系统级证书信任链、Android/iOS平台级证书策略、APP自身代码级网络校验Certificate Pinning、甚至还有现代TLS协议版本兼容性问题。很多人以为“装个证书万事大吉”实则证书只是整条信任链最表层的一块砖。Fiddler作为中间人MITM工具必须让设备相信它是“合法CA”而现代系统早已不再无条件信任用户手动安装的根证书。尤其从Android 7.0Nougat开始系统默认只信任系统分区预置的CA证书用户安装的证书仅对浏览器生效对绝大多数APP无效iOS则从iOS 10起强制要求用户手动开启“完全信任”开关且该开关在iOS 15之后还被藏得更深。更现实的是你抓的APP很可能启用了证书固定Certificate Pinning它根本不看系统证书库而是直接比对服务器证书的公钥哈希值——哪怕你Fiddler证书装得再完美APP一校验发现“这不是我认的那把锁”立刻断连。所以所谓“避坑”本质是理解并绕过这四道关卡证书安装关、系统信任关、APP校验关、协议兼容关。这篇文章不讲“怎么点菜单”而是带你一层层拆开Fiddler HTTPS抓包的黑盒告诉你每一步背后的操作逻辑、失败原因以及真正能落地的解决方案。适合所有正在被“Fiddler抓不到APP流量”折磨的测试工程师、开发调试人员、安全初学者——只要你需要看清APP和服务器之间真实传输的数据这篇就是你该反复翻看的排错地图。2. 证书安装失败不是操作错了是没搞清“用户证书”和“系统证书”的生死之别2.1 安卓端证书安装失败的三大典型场景与根因定位安卓设备上Fiddler证书安装失败90%的情况并非Fiddler导出的证书文件本身有问题而是你混淆了“用户证书”和“系统证书”的权限边界。我们来逐个击破场景一“无法安装此证书”Android 8.0 常见这是最典型的报错。根源在于Android 8.0Oreo引入了更严格的证书安装流程。当你通过浏览器下载.cer文件后点击安装系统会弹出“安装为‘用户证书’还是‘VPN和应用’”的选项。如果你选了后者系统会要求你输入锁屏密码或PIN码但即使输对了仍可能失败。为什么因为Android 8.0默认禁用“安装为VPN和应用证书”的入口除非你提前在“设置 安全 加密与凭据 信任的凭据 用户”里先手动触发一次“安装证书”动作比如点右上角“”号系统才会临时开放该通道。这是一个隐藏的“开关依赖”。实操中我建议跳过这个入口直接走“用户证书”路径——它虽不能被APP默认信任但却是后续启用“用户证书信任”的基础。场景二证书装进去了但在“已安装证书”列表里找不到这通常发生在Android 9Pie及更高版本。系统将“用户证书”和“系统证书”分开展示而Fiddler证书默认安装为“用户证书”但它被归类在“用户”标签页下而非顶部的“系统”标签页。很多人只盯着“系统”页找自然找不到。更关键的是Android 9对“用户证书”的显示做了限制只有当设备处于“开发者模式”且“USB调试”开启时“用户”标签页才会完整显示所有证书。否则它可能只显示最近安装的几个。验证方法很简单进入“设置 关于手机 连续点击‘版本号’7次”开启开发者模式再返回“设置 系统 开发者选项”确保“USB调试”已开启然后重新进入“加密与凭据 信任的凭据”切换到“用户”标签页——Fiddler证书大概率就躺在那儿。场景三证书显示已安装但Fiddler里仍提示“客户端证书未安装”这其实是Fiddler自身的校验逻辑在作祟。Fiddler在启动HTTPS解密时并非实时去读取设备证书库而是依赖一个本地缓存的“证书指纹数据库”。当你在手机上安装完证书后Fiddler桌面端可能并未刷新这个缓存。此时你需要手动触发一次“重置证书状态”在Fiddler主界面依次点击Tools Options HTTPS Actions Reset All Certificates然后点击Export Root Certificate to Desktop重新导出一份新证书注意不要覆盖旧文件改个名如FiddlerRoot_new.cer再用新证书重新安装到手机。这一步看似多余实则是清除Fiddler内部状态同步的“脏数据”。提示安卓证书安装的黄金组合路径是——用Chrome浏览器下载证书 → 在Chrome内点击安装 → 强制选择“用户证书” → 安装成功后立即进入“设置 加密与凭据 信任的凭据 用户”确认存在 → 最后在Fiddler中执行Reset All Certificates并重导证书。跳过任何一环都可能让证书“神隐”。2.2 iOS端证书安装的“三重门”从下载到完全信任的完整通关链iOS的证书安装流程比安卓更隐蔽它设置了三道必须全部通过的门缺一不可第一道门证书下载与初步安装iOS无法像安卓那样直接通过Safari下载.cer文件并安装。正确路径是在Fiddler中点击Tools Options HTTPS Export Root Certificate to Desktop得到一个.cer文件然后将此文件通过AirDrop、邮件附件或iCloud Drive发送到你的iPhone在iPhone上用“文件”App或邮件App打开该附件系统会自动调起“描述文件”安装向导点击“允许”→“安装”→输入锁屏密码→“完成”。此时证书已进入系统但仅处于“待激活”状态。第二道门在“设置”中找到并启用证书安装完成后证书并不会立刻生效。你必须手动进入设置 已下载描述文件iOS 15之前是“通用 描述文件与设备管理”在这里你会看到刚安装的“FiddlerRoot”描述文件。点击它进入详情页你会看到“已安装”状态但下方没有“完全信任”选项——这是第二道门的陷阱。此时你需要先点击右上角“安装”按钮它可能显示为灰色但点一下就会变亮完成一次“二次确认安装”之后页面才会刷新出现“完全信任”开关。第三道门开启“完全信任”并重启网络这才是最关键的一步。在描述文件详情页找到“完全信任”开关iOS 15之后该开关被移到了设置 通用 关于本机 证书信任设置里你需要在这里找到“FiddlerRoot”并开启。开启后系统会弹出警告“启用此根证书后您设备上的所有应用都将信任由该证书签发的网站证书。这可能会带来安全风险。”——这是苹果的免责声明你必须点“继续”确认。但很多人忽略了一个致命细节开启“完全信任”后必须重启Wi-Fi连接因为iOS的网络栈在建立TLS连接时会缓存证书信任状态不重启Wi-Fi旧的不信任状态会持续生效。实测下来最稳妥的做法是开启“完全信任”后立即关闭Wi-Fi开关等待5秒再重新打开。此时Fiddler才能真正开始解密HTTPS流量。注意iOS 16系统对证书信任的管控进一步收紧部分企业签名APP或使用了特定TLS库的APP即使开启了“完全信任”仍可能拒绝Fiddler证书。此时你必须转向更底层的方案比如使用mitmproxy配合iOS越狱环境或采用Xcode调试器直接Hook网络请求——但这已超出Fiddler范畴属于进阶安全分析领域。3. APP抓包不全当证书装对了为什么流量还是“隐身”3.1 证书固定Certificate Pinning——APP主动拒收Fiddler的“信任邀请”证书固定Certificate Pinning是APP开发者对抗中间人攻击的核心防线也是导致Fiddler抓包“不全”甚至“完全失效”的头号元凶。它的原理非常朴素APP在代码里硬编码了它所信任的服务器证书的公钥哈希值如SHA-256每次发起HTTPS请求时不查系统证书库而是直接提取服务器返回的证书计算其公钥哈希再与代码里预存的哈希值比对。一旦不匹配立刻终止连接。Fiddler的证书再“正规”其公钥哈希也绝不可能和目标服务器的哈希一致因此APP会直接报错“SSL handshake failed”或“Connection reset”Fiddler里自然一片空白。如何快速判断APP是否启用了证书固定最直接的方法是在Fiddler中开启HTTPS解密手机配好代理然后打开APP同时观察Fiddler的Log窗口View Log。如果Log里频繁出现类似The remote certificate is invalid according to the validation procedure.或Could not establish trust relationship for the SSL/TLS secure channel.的错误且这些错误集中出现在APP启动后的前几秒基本可以锁定是证书固定在作怪。另一个佐证是浏览器Chrome/Safari能正常抓到HTTPS流量但同一台手机上的APP却完全没动静——因为浏览器走的是系统证书信任链而APP走的是自己写的校验逻辑。绕过证书固定的方案有三类按实施难度和稳定性排序动态Hook推荐给开发者/高级测试使用Frida脚本在APP运行时Hook关键校验函数。例如对于Android上基于OkHttp的APPHookOkHostnameVerifier.verify()和CertificatePinner.check()方法直接返回true对于iOSHookNSURLSessionDelegate的urlSession:didReceiveChallenge:completionHandler:方法将challenge.protectionSpace.authenticationMethod为NSURLAuthenticationMethodServerTrust的挑战直接接受。Frida脚本编写有门槛但一旦写好可复用性强且不影响APP功能。静态Patch适合批量测试反编译APK用JADX或Apktool搜索关键词pin,cert,trust,X509TrustManager定位到证书校验逻辑将其替换为恒返回true的代码再重打包签名。iOS需越狱后使用Clutch等工具dump IPA再用Hopper Disassembler分析Patch Mach-O二进制。此法稳定但每次APP更新都要重做且iOS Patch需越狱适用场景有限。代理层透明转发最轻量适合日常调试放弃Fiddler改用支持自动绕过证书固定的代理工具如Charles Proxy内置SSL Proxying Certificate Pinning Bypass插件或mitmproxy配合--set ssl_insecuretrue参数。它们在底层实现了对常见Pin库如OkHttp Pinning、TrustKit的模拟响应无需修改APP。虽然不算“Fiddler方案”但却是解决“抓包不全”最务实的选择。实操心得我在某电商APP测试中遇到证书固定尝试Frida Hook失败APP做了反调试最后用Charles的Bypass插件5分钟搞定。记住不要和证书固定硬刚优先找现成的、经过验证的绕过方案。Fiddler是工具不是信仰。3.2 TLS协议版本与加密套件不兼容老系统与新APP的“代沟”即使APP没做证书固定Fiddler抓包仍可能“不全”另一个常被忽视的原因是TLS协议版本和加密套件的不匹配。Fiddler默认使用TLS 1.2但很多老旧APP尤其是基于Android 4.x或iOS 8以下系统开发的只支持TLS 1.0或1.1而一些新APP如银行类、金融类则强制要求TLS 1.3并禁用所有不安全的加密套件如RC4、3DES。当Fiddler作为中间人试图用APP不支持的TLS版本与其握手时连接会在ClientHello阶段就失败Fiddler日志里只会显示Tunnel to xxx.xxx:443后面再无下文。验证方法很简单在Fiddler中开启Rules Customize Rules在OnBeforeRequest函数里添加一行日志if (oSession.isHTTPS) { oSession[log] TLS Version: oSession.oRequest.headers.TLSVersion; }然后重启Fiddler。抓包时查看Session的Customize列就能看到每个HTTPS请求实际协商的TLS版本。如果发现大量请求显示TLS 1.0或TLS 1.3而你的Fiddler版本较老v4.x它很可能不支持TLS 1.3导致握手失败。解决方案分两步升级FiddlerFiddler v5.0原生支持TLS 1.3且默认启用。如果你还在用v4.x请立即升级。升级后在Tools Options HTTPS中勾选Decrypt HTTPS traffic并确保Ignore server certificate errors也被勾选它会忽略TLS握手过程中的证书错误让连接能继续。强制Fiddler使用兼容版本如果升级不可行如公司IT策略限制可在Fiddler脚本中强制降级。在Customize Rules的OnBeforeRequest里添加if (oSession.isHTTPS) { // 强制使用TLS 1.2避免与老APP握手失败 oSession.oRequest.headers[X-Override-TLS-Version] 1.2; }这行代码会告诉Fiddler的底层.NET框架无论客户端请求什么都用TLS 1.2去连接服务器。实测对Android 4.4的APP兼容性极佳。注意强制降级TLS版本虽能解决握手问题但会降低安全性。仅在调试环境中使用切勿在生产环境代理中启用。4. 从“能抓”到“抓全抓准”Fiddler HTTPS抓包的进阶配置与实战技巧4.1 过滤与高亮在千条请求中一眼锁定关键流量Fiddler抓包最大的痛点不是“抓不到”而是“抓太多”。一个普通APP启动瞬间涌进上百条HTTPS请求其中大部分是统计上报、广告SDK、推送服务的垃圾流量真正的业务接口如登录、支付、订单查询淹没其中。Fiddler提供了强大的过滤与高亮机制帮你从噪音中精准捕获信号。核心过滤策略Host过滤在Fiddler右上角Filter栏勾选Use Filters在Hosts区域输入目标域名如api.yourapp.com或*.yourdomain.com。注意*是通配符*.yourdomain.com能匹配api.yourdomain.com和pay.yourdomain.com但不匹配yourdomain.com根域名。若需匹配根域名需单独添加。URL Path过滤在Filters标签页勾选Show only the following URLs然后在下方文本框输入正则表达式如^https?://api\.yourapp\.com/v[1-3]/login.*即可只显示v1-v3版本的登录接口。响应状态码过滤在Status Code区域取消勾选2xx只保留4xx和5xx能快速定位APP的报错请求这对排查“为什么登录失败”极其高效。高亮技巧自定义高亮规则点击Rules Customize Rules在OnBeforeRequest函数中添加// 将所有POST请求标为红色 if (oSession.RequestMethod POST) { oSession[ui-color] red; } // 将包含error的响应标为橙色 if (oSession.ResponseHeaders oSession.ResponseHeaders.ExistsAndContains(Content-Type, json)) { var body oSession.GetResponseBodyAsString(); if (body body.indexOf(error) ! -1) { oSession[ui-color] orange; } }保存后所有POST请求在Session列表中显示为红色所有返回JSON且含error字段的响应显示为橙色视觉上一目了然。实战经验我曾用这套高亮规则在一个直播APP的抓包中5秒内就从200请求里揪出那个导致“开播失败”的401 Unauthorized POST请求——它的响应体里明晃晃写着{code:401,msg:token expired}而其他199个请求全是绿色的200根本不用点开看。4.2 自动化与复用用FiddlerScript打造你的专属抓包工作流FiddlerScript基于JScript.NET是Fiddler最被低估的利器。它允许你用代码自动化一切重复操作把Fiddler从“手动抓包工具”升级为“智能流量分析平台”。场景一自动注入请求头如Authorization TokenAPP登录后Token通常存在本地存储但Fiddler无法自动读取。你可以写一段脚本在每次发送请求前自动从一个本地文件读取Token并注入static function OnBeforeRequest(oSession: Session) { if (oSession.HostnameIs(api.yourapp.com) oSession.RequestMethod GET) { // 从本地文件读取Token var tokenFile C:\\fiddler\\token.txt; try { var token System.IO.File.ReadAllText(tokenFile).Trim(); oSession.oRequest.headers[Authorization] Bearer token; } catch(e) { // 文件不存在或读取失败跳过 } } }这样你只需在token.txt里维护最新的Token所有发往api.yourapp.com的GET请求都会自动带上它再也不用手动复制粘贴。场景二自动保存关键响应为JSON文件调试支付接口时你总想把每次返回的order_id、pay_url存下来对比。脚本可以帮你自动完成static function OnBeforeResponse(oSession: Session) { if (oSession.HostnameIs(api.yourapp.com) oSession.uriContains(/pay/create) oSession.responseCode 200) { var body oSession.GetResponseBodyAsString(); try { var json JSON.parse(body); if (json.order_id) { var filename C:\\fiddler\\pay_ System.DateTime.Now.ToString(yyyyMMdd_HHmmss) .json; System.IO.File.WriteAllText(filename, body); oSession[ui-backcolor] lightgreen; // 标记已保存 } } catch(e) { // 不是有效JSON跳过 } } }每次成功创建支付订单脚本都会生成一个带时间戳的JSON文件内容就是完整的响应体方便你离线分析或发给后端同事复现。提示FiddlerScript的调试很痛苦没有IDE支持。我的经验是——永远在OnBeforeRequest里加一句if (oSession.url.Contains(test)) { FiddlerObject.alert(hit); }先确保脚本能被触发再逐步加逻辑。否则你可能对着空白的Session列表怀疑人生。4.3 终极避坑清单那些文档里不会写的“血泪教训”最后分享我在十年Fiddler实战中总结的终极避坑清单每一条都来自真实的、让人拍桌的瞬间坑1Wi-Fi代理设置后APP仍走蜂窝网络很多安卓手机尤其华为、小米的“智能网络切换”功能会自动将APP流量从Wi-Fi切到4G/5G以规避Wi-Fi代理。解决方案进入手机设置 移动网络 智能网络切换或类似名称关闭它或更彻底地在Fiddler中设置Rules Customize Rules OnBeforeRequest添加if (oSession.isHTTPS) { oSession[x-no-wifi] 1; }然后在APP里手动设置代理为127.0.0.1:8888需APP支持绕过系统Wi-Fi代理。坑2Fiddler抓到请求但响应体是乱码gzip/brotli压缩现代APP普遍启用Content-Encoding: gzip或brbrotli压缩。Fiddler默认不解压你看到的是一堆乱码。解决在Fiddler菜单栏点击Inspectors Response TextView然后在TextView面板右上角点击Decode按钮图标为两个箭头交叉Fiddler会自动解压并显示明文。若没看到Decode按钮说明响应头里没声明Content-Encoding可能是APP用了自定义压缩此时需用Raw视图看原始字节再用外部工具解压。坑3抓包时电脑蓝屏/死机这通常发生在Windows 10/11上Fiddler与某些杀毒软件如McAfee、Bitdefender的网络驱动冲突。解决方案在FiddlerTools Options HTTPS中取消勾选Decrypt HTTPS traffic先确认是否是HTTPS解密引发若确认是将Fiddler加入杀软白名单或暂时退出杀软再试。我的经验是——Fiddler和杀软是天敌调试期间要么关杀软要么换轻量代理如mitmproxy。坑4抓到的请求用Postman重放却失败常见原因是APP在Header里加了动态签名如X-Signature: sha256(timestampnoncebody)而Fiddler只抓到了签名结果没抓到生成签名的原始参数。此时单纯重放请求必然失败。正确做法是在Fiddler中右键该Session →Copy Copy as cURL (bash)然后在终端里执行观察是否成功若失败说明签名依赖时间戳或随机数需用Postman的Pre-request Script动态生成。我在某社交APP的测试中曾为一个X-Auth-Token签名抓耳挠腮三天最后发现它依赖设备IMEI和当前毫秒时间戳的MD5。Fiddler能抓但无法重放——因为重放时时间戳已过期。最终方案是用FiddlerScript在OnBeforeRequest里动态计算并注入签名。这提醒我们抓包只是第一步理解APP的认证逻辑才是调试的终点。我个人在实际使用中发现Fiddler HTTPS抓包的成败80%取决于对操作系统和APP网络栈的理解深度20%才是工具本身的配置。证书安装失败从来不是Fiddler的问题而是你和系统之间的一场信任谈判APP抓包不全也从来不是Fiddler的缺陷而是APP开发者在安全与便利间做出的取舍。每一次成功的抓包都是你对这套复杂机制的一次精准解构。所以别再抱怨“Fiddler又不行了”静下心来打开Log窗口看一眼那行红色的错误信息——它不是障碍而是系统在向你发出的、最诚实的对话邀请。

相关文章:

Fiddler HTTPS抓包失败原因与证书信任机制详解

1. 为什么HTTPS抓包总在“证书这关”卡死?——不是Fiddler不行,是系统和APP联手设防Fiddler HTTPS抓包避坑指南:从证书安装失败到APP抓包不全的完整解决方案——这个标题里藏着太多人反复踩坑却始终没想通的真相。我带过三届移动测试团队&…...

APP 的架构设计

APP 的架构设计是指构建移动应用时的整体结构规划,主要解决“代码怎么组织、模块怎么分工、数据怎么流动、功能怎么扩展”等问题。一个好的架构能让 APP 更稳定、更易维护、更易多人协作和长期迭代。下面从常见架构模式 → 核心分层 → 设计原则 → 技术选型 → 实际…...

Netcat (nc) 全面使用指南

Netcat 被誉为网络工具中的"瑞士军刀",是一个功能强大的网络调试和诊断工具。它可以在 TCP/UDP 协议下进行连接、监听、端口扫描、文件传输和代理转发等操作。 一、安装与基本语法 1.1 安装方法 操作系统安装命令Ubuntu/Debiansudo apt install netcat…...

SSH Host key verification failed 原因与安全处理指南

1. 这个报错不是故障,而是SSH在认真履职“Host key verification failed”——第一次看到这个提示时,我正远程部署一个客户服务器,敲完ssh user192.168.3.45回车,终端突然卡住两秒,然后跳出这行红字,后面还…...

别再只用XGBoost了!用Python手把手教你玩转Stacking和Blending模型融合

别再只用XGBoost了!用Python手把手教你玩转Stacking和Blending模型融合当你在Kaggle竞赛中反复调整XGBoost参数却始终无法突破0.01的AUC提升,或者在业务场景中发现单一模型对某些特殊样本总是预测失误时,或许该换个思路了——就像交响乐团需要…...

从客户分群到市场细分:系统聚类法在Python/R中的商业案例分析

从客户分群到市场细分:系统聚类法在Python/R中的商业案例分析在商业分析领域,数据驱动的决策正变得越来越重要。无论是电商平台的用户画像构建,还是零售行业的市场细分,亦或是金融领域的风险评估,聚类分析都扮演着关键…...

qmcdump完整指南:3步轻松解密QQ音乐加密文件

qmcdump完整指南:3步轻松解密QQ音乐加密文件 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump qmcdump是一款简…...

量子机器学习提升软件测试效率的混合优化框架

1. 量子机器学习如何革新软件测试效率在DevOps和敏捷开发成为主流的今天,软件测试面临着前所未有的挑战。传统测试方法在应对现代复杂系统时显得力不从心——根据行业调研,大型系统中测试环节消耗的开发资源高达40-50%。更棘手的是,随着微服务…...

ARM ETE跟踪单元与单次比较器控制技术解析

1. ARM ETE跟踪单元的核心机制解析在嵌入式系统调试领域,ARM的嵌入式跟踪扩展(Embedded Trace Extension, ETE)提供了一套完整的指令执行流监控方案。其核心组件跟踪单元(Trace Unit)通过地址比较器(Address Comparator)实现细粒度的执行监控,能够捕获特…...

3DMAX傻瓜式插件SimpleRope:一键生成绳子软管螺旋线!

3MAX简单绳子插件SimpleRope,从样条线生成螺旋线网格(包括简单的绳子)。本教程将带你全面掌握SimpleRope插件的使用方法,从普通的绳子、柔性的软管,到参数可调的螺旋线,只需一条样条线路径,点击…...

ARM SVE2指令集与USUBWB指令优化实践

1. ARM SVE2指令集概述在当今计算密集型应用领域,向量处理能力已成为衡量处理器性能的关键指标。ARM架构的Scalable Vector Extension 2(SVE2)作为第二代可扩展向量指令集,在2021年随ARMv9架构一同发布,为高性能计算领…...

ARM SVE2向量指令UQSHLR与URSHLR详解

1. ARM SVE2向量指令概述在ARMv9架构中,SVE2(Scalable Vector Extension 2)作为第二代可伸缩向量扩展,为高性能计算和机器学习工作负载提供了强大的并行处理能力。与传统的NEON指令集相比,SVE2最大的特点是支持向量长度…...

【架构实战】解决长文本多轮对话中的“上下文腐化”问题:基于 Multi-Agent 的异步调度引擎设计

大家好,最近在研究 LLM 辅助编程和多角色对话时,我发现了一个非常头疼的问题:“上下文腐化”(Context Rot)。 当你在一个 Session 里塞入多个 System Prompt(比如试图让几个不同的 AI 角色在一个群里聊天&…...

别再死磕OFDMA了!用Python+PyTorch手把手复现NOMA的SIC接收机(附代码)

用PythonPyTorch实战NOMA的SIC接收机:从理论到代码实现在5G和后5G时代,非正交多址接入(NOMA)技术因其卓越的频谱效率而备受关注。与传统的正交多址(OFDMA)不同,NOMA允许用户在相同时频资源上叠加传输,通过功率域复用和先进的接收机…...

ARM Trace Buffer扩展与调试同步机制详解

1. ARM Trace Buffer扩展与调试状态同步机制解析在嵌入式系统和处理器架构设计中,调试与追踪技术是开发人员不可或缺的工具。ARM架构通过Trace Buffer Extension(TBE)提供了强大的指令级执行流追踪能力,其核心原理是通过专用硬件单…...

芯祥联MQTT BROKER 各服务器平台部署方法培训-1

BROKER部署方法_哔哩哔哩_bilibili 培训视频请进入B站,谢谢。...

别再死记公式了!用Python手把手复现西瓜书3.0α数据集的对率回归(附完整代码与可视化)

从西瓜数据集到决策边界:Python实战对率回归的数学之美机器学习初学者常陷入公式推导与代码落地的断层中——明明理解了教材中的数学原理,面对实际数据集时却无从下手。本文将以周志华《机器学习》中的西瓜数据集3.0α为蓝本,用Python完整演绎…...

告别默认图表:手把手教你定制VASPKIT的PLOT.In文件,画出符合期刊要求的能带图

科研绘图进阶:深度定制VASPKIT能带图的专业技巧在学术论文写作中,一张精心设计的能带图往往能成为研究成果的视觉名片。VASPKIT作为材料计算领域的利器,其自动绘图功能虽然便捷,但默认输出往往难以满足高端期刊的审美要求。本文将…...

Nature|619372人循环代谢性状的遗传分析

尽管复杂疾病的全基因组关联研究(GWAS)通常会分析多达100多万人,但分子特征的研究却滞后了。在这里,研究对爱沙尼亚生物库和英国生物库中多达619,372名个体的249个循环代谢特征进行了GWAS荟萃分析。从8,398个趋同于共享基因和通路…...

魔兽争霸3终极优化指南:5分钟彻底解决画面拉伸和帧率锁定问题

魔兽争霸3终极优化指南:5分钟彻底解决画面拉伸和帧率锁定问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为经典游戏魔兽争霸3在现…...

勒索软件时代:你的备份数据安全吗?

最近几个月,我连续接到好几个客户的求助电话,都是中了勒索病毒。说真的,干灾备这行十几年,以前一年也碰不到几个勒索案例,现在一个月就能听到好几起。有个客户是做电商的,凌晨三点被锁了数据库,…...

QM/MM与ML/MM模拟对比:从呋喃光化学弛豫看机器学习力场结构保真度

1. 项目概述:从呋喃的光化学弛豫看QM/MM与ML/MM模拟的实战差异在计算化学和分子模拟领域,我们常常需要回答一个核心问题:一个分子在吸收光能量后,究竟会经历怎样的微观旅程?这个过程充满了不确定性,电子在几…...

机器学习势函数与量子热浴结合:精准模拟钛酸钡相变中的核量子效应

1. 项目概述:当机器学习势函数遇上量子热浴在计算材料科学领域,我们一直面临着一个核心矛盾:精度与效率的权衡。研究像钛酸钡(BaTiO₃)这样的经典铁电材料相变,我们需要在原子尺度上追踪成千上万个原子在温…...

如何安装OpenClaw?2026年京东云部署及配置Token Plan详细攻略

如何安装OpenClaw?2026年京东云部署及配置Token Plan详细攻略。OpenClaw是开源的个人AI助手,Hermes Agent则是一个能自我进化的AI智能体框架。阿里云提供计算巢、轻量服务器及无影云电脑三种部署OpenClaw 与 Hermes Agent的方案、百炼Token Plan兼容主流…...

终极QMC解密指南:如何快速将QQ音乐加密音频转换为MP3/FLAC格式

终极QMC解密指南:如何快速将QQ音乐加密音频转换为MP3/FLAC格式 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾经从QQ音乐下载了喜欢的歌曲&#xff0c…...

人形机器人场景数据采集实战:从方案设计到质量验收

人形机器人场景数据采集实战:从方案设计到质量验收 摘要:人形机器人场景数据采集与传统工业数据采集有本质区别——场景复杂、交互多样、数据量巨大。本文基于多个落地项目经验,从采集方案设计、设备选型、场景编排、质量验收四个环节&#x…...

Redis 缓存实战案例与技术详解

Redis 缓存实战案例与技术详解 1. Redis 简介 Redis 是一种开源的内存数据存储,常用于缓存和消息队列。 2. 配置优化 使用 LRU 淘汰策略配置数据持久化功能 3. 实战案例 案例一:电商秒杀系统 架构:前端系统 Redis 持久化缓存特点&#xff1a…...

ros2_control 代码架构分析

ros2_control 代码架构分析 一、整体框架 1.1 代码框架 ├── ros2_control/ # ★ 框架本体(vendored,jazzy 分支) │ ├── controller_manager/ # 核心运行时:ros2_control_node │ ├── hardware_interface/ # 硬件抽象 +…...

不只是驱动问题:深度排查Windows CMD中nvidia-smi失效的5种可能及解决方案

不只是驱动问题:深度排查Windows CMD中nvidia-smi失效的5种可能及解决方案当你在Windows CMD中键入nvidia-smi命令却只得到"不是内部或外部命令"的提示时,多数教程会告诉你"配置环境变量Path即可解决"。但现实往往更复杂——特别是当…...

S32K144FTM定时器中断

目录 FTM定时器概念定义 定时器运用常用概念 S32DS添加FTM库 S32DSFTM外设配置 S32DS添加库冲突概念理解 FTM_DRV_Init函数定义 FTM_DRV_InitCounter外设函数 FTM_DRV_InitCounter外设函数 FTM_DRV_CounterStart外设函数 INT_SYS_InstallHandler外设函数 INT_SYS_Ins…...