OWASP MASTG UnCrackable 移动逆向挑战实战指南:Android 与 iOS 全关卡解析
文档教程网络安全【免费下载链接】mastgThe OWASP Mobile Application Security Testing Guide (MASTG) is a comprehensive manual for mobile app security testing and reverse engineering. It describes technical processes for verifying the OWASP Mobile Security Weakness Enumeration (MASWE) weaknesses, which are in alignment with the OWASP MASVS.项目地址https://gitcode.com/gh_mirrors/ow/mastg点击查看免费下载UnCrackable Mobile Apps 是 OWASP MASTGMobile Application Security Testing Guide移动应用安全测试指南仓库内置的一套跨平台逆向工程闯关挑战Crackmes包含 Android 与 iOS 共六个正式关卡外加一个授权验证关卡覆盖静态分析、动态调试、反篡改绕过、白盒密码学等移动安全核心技能。读完本文你将掌握每个挑战的目标与难点、在仓库中的对应文件与配套测试文档、以及从安装部署到使用 jadx / apktool / Frida 等工具完成解包、分析、调试与绕过的完整实战路径。UnCrackable Mobile Apps 官方 Logo什么是 UnCrackable Mobile AppsUnCrackable Mobile Apps 是 Crackmes/README.md 中正式介绍的挑战集合一系列专为 Android 与 iOS 设计的移动逆向工程题目由 MASTG 作者主要贡献者为 Bernhard Mueller制作。它们的定位有两重教学素材在整个 OWASP MASTG 文档体系中被反复作为示例应用引用用于演示反调试检测、反篡改、根检测、TLS 绕过等测试技术练习靶场任何人也可以把它们当作纯逆向练习题按难度逐级攻克Of course, you can also solve them for fun。MASTG 在 Document/0x04c-Tampering-and-Reverse-Engineering.md 中明确建议初学者从简单的逆向任务和 crackme入手先搭好基础工具环境学习汇编/字节码语言、操作系统与遇到的混淆手段再由易到难逐步进阶——UnCrackable 系列正是这一学习路径的官方载体。仓库根目录 README.md 也将 Crackmes 列为项目的重要入口之一。挑战全景仓库文件清单与关卡目标所有挑战文件集中在仓库的Crackmes/目录下Android 为 APKiOS 为 IPA同时每个挑战在 apps 目录中有独立的 ID 卡片MASTG-APP-xxxx记录目标描述与作者信息。Android 关卡关卡文件位置MASTG 条目挑战目标Level 1Crackmes/Android/Level_01/UnCrackable-Level1.apkMASTG-APP-0003某个 secret string 被藏在 App 中想办法提取它Level 2Crackmes/Android/Level_02/UnCrackable-Level2.apkMASTG-APP-0004App 内藏有 secret可能包含 native 代码痕迹并内置反篡改机制Level 3Crackmes/Android/Level_03/UnCrackable-Level3.apkMASTG-APP-0005The crackme from hell!——以多层加固著称的高难度关卡同样是提取隐藏 secret stringLevel 4Crackmes/Android/Level_04/r2pay-v0.9.apk、r2pay-v1.0.apkMASTG-APP-0015r2Pay 挑战找出 4 位 master PIN 与 saltflag 格式r2con{PIN_NUMERIC:SALT_LOWERCASE}并破解多层混淆保护的 r2pay master key 白盒flag 格式r2con{ascii(key)}License 1Crackmes/Android/License_01/validate—仓库以二进制可执行文件形式收录未附带独立说明文档iOS 关卡关卡文件位置MASTG 条目挑战目标Level 1Crackmes/iOS/Level_01/UnCrackable-Level1.ipaMASTG-APP-0025提取隐藏在 App 中的 secret string与 Android L1 同源Level 2Crackmes/iOS/Level_02/UnCrackable-Level2.ipaMASTG-APP-0026App 内藏 secretthis time it wont be tampered with!——同样内置反篡改防护从 App 元数据看iOS 第一关的包名为sg.vp.UnCrackable1显示名为UnCrackable Level 1版本1.0最低系统要求 iOS 8.0见 MASTG-TOOL-0135 中 PlistBuddy 打印出的 Info.plist 内容调试场景下实际 bundle id 为sg.vp.UnCrackable1.QH868V5764见 MASTG-TECH-0055。环境准备把挑战装进设备Android安装 APKAndroid 挑战以标准 APK 分发最直接的安装方式是adb installadb install UnCrackable-Repackaged.apk以上命令来自 MASTG-TECH-0039 的重签名安装流程——注意一旦你后续对 APK 做过解包修改原签名即失效必须重新签名后才能安装因此推荐保留一份原始 APK 用于首次直接安装对比。iOSSideload 安装 IPAiOS 挑战以未签名/侧载 IPA 形式分发无法直接走 App Store。安装方式在 MASTG-TECH-0056 中有完整清单主要包括SideloadlymacOS连接设备、输入 Apple ID将 IPA 拖入工具即可自动签名安装ideviceinstallerLinux/macOSUSB 连接ideviceinstaller -i Uncrackable.ipaios-deploymacOS需要先解压 IPA再以 app bundle 形式安装unzip UnCrackable.ipa ios-deploy --bundle Payload/UnCrackable Level 1.app -W -vxcrun devicectlmacOS Xcode安装已签名的 IPAxcrun devicectl device install app --device DEVICE_UDID ~/signed.ipa需要说明的前提无论哪种方式IPA 都必须先通过有效证书签名普通 Apple 账号会改写 bundle id开发者账号可保留原 id在越狱设备上则可通过钩子系统守护进程关闭签名校验从而直接安装详见 MASTG-TECH-0092 的重签名流程与 MASTG-TECH-0056 的越狱说明。静态分析解包与反编译三板斧jadx / jadx-guiJava 层还原Android 应用的classes.dex本质是 Dalvik 字节码可以无损转换为 Java 层源码。MASTG 官方推荐的首选反编译器是 jadxMASTG-TECH-0017它直接支持 APKjadx-gui UnCrackable-Level1.apk # 图形界面打开 jadx -d decompiled UnCrackable-Level1.apk # 反编译全部源码到目录 jadx --single-class sg.vantagepoint.uncrackable1.MainActivity UnCrackable-Level1.apk # 只反编译单个类 jadx -d decompiled -e UnCrackable-Level1.apk # 导出全部资源以 UnCrackable L1 为例打开后即可在sg.vantagepoint.uncrackable1包下看到MainActivity、CodeCheck等关键类secret 校验逻辑尽收眼底——这也是绝大多数新手的第一课。jadx-gui 打开 UnCrackable APK 的反编译界面如果 jadx 对某段代码反编译失败可改用 MASTG-TECH-0017 中提到的 CFR、Procyon、Fernflower 等多反编译器合一的工具兜底。apktool资源解码与 Smali 层操作需要查看 AndroidManifest、资源文件或直接修改 smali 时使用 apktoolMASTG-TECH-0007apktool d UnCrackable-Level3.apk # 解码 APK得到 smali/ 与 apktool.yml解码产物中apktool.yml记录了 manifest、targetSdkVersion 等关键配置——MASTG 的测试用例正是这样读取的MASTG-TEST-0021 执行grep targetSdkVersion UnCrackable-Level3/apktool.yml。smali/目录则是人类可读的 Dalvik 字节码汇编配合apktool b可重打包见下文重签名流程。APKiD识别编译器、混淆器与加壳器面对 L3、L4 这类高难度关卡第一件事是摸清对方的装备。APKiDMASTG-TECH-0165通过扫描 DEX 与 native 库中的特征签名来识别保护手段apkid ./r2pay-v1.0.apk对 r2pay-v1.0 的扫描输出揭示了它的多层防线完整输出见 MASTG-TECH-0165classes.dexcompiler: r8且obfuscator: unreadable field/method namesR8 混淆lib/*/libnative-lib.soObfuscator-LLVM字符串加密lib/*/libtool-checker.soanti_root: RootBeerRoot 检测classes.dex中还有anti_vm: Build.TAGS check, possible ro.secure check模拟器/环境检测。这些结论直接指明了后续分析的主攻方向Java 层已被 R8 混淆、native 层有 OLLVM 字符串加密、还叠加了 Root/模拟器检测——必须先绕过环境检测再进入字节码与 native 代码的逆向。动态分析Frida 与调试绕过进程级函数追踪对 iOS UnCrackable L1MASTG 用 Frida CLI 演示了动态函数追踪MASTG-TECH-0087frida-trace -U -i open sg.vp.UnCrackable1这会跟踪 App 对open等函数的调用验证 App 是否在启动时读取了文件——是观察行为、验证静态分析结论的快速手段。向 IPA 注入 Frida Gadget若目标 App 不支持 Frida 默认注入如未签名/非越狱场景可手动把 Frida Gadget 注入 IPAMASTG-TECH-0091。完整流程以 UnCrackable-Level1.ipa 为例unzip UnCrackable-Level1.ipa # IPA 本质是 ZIP 包 mkdir -p Payload/UnCrackable\ Level\ 1.app/Frameworks cp FridaGadget.dylib Payload/UnCrackable\ Level\ 1.app/Frameworks/ optool install -c load -p executable_path/Frameworks/FridaGadget.dylib \ -t Payload/UnCrackable\ Level\ 1.app/UnCrackable\ Level\ 1 # 插入 LC_LOAD_DYLIB zip -r patched.ipa Payload # 重新打包注入后用 MASTG-TECH-0056 中的任一方式安装patched.ipa即可对 App 执行 Frida 动态插桩若来自 App Store还需按 MASTG-TECH-0092 用含get-task-allowentitlement 的开发描述文件重签名。实战案例Android L2 的反调试与 native 校验绕过Android L2 是 MASTG 演示绕过反调试检测的标准样本MASTG-TEST-0046。表面上代码与 L1 类似sg.vantagepoint.uncrackable2包下有一个CodeCheck类负责校验用户输入的 code但真正的校验逻辑发生在声明为 native 的bar方法中且类初始化时加载了名为foo的 native 库package sg.vantagepoint.uncrackable2; public class CodeCheck { public boolean a(String arg2) { return this.bar(arg2.getBytes()); } private native boolean bar(byte[] arg1) {} } static { System.loadLibrary(foo); }也就是说秘密与校验逻辑被刻意藏进了 native 库——这正是 MASTG-TEST-0046 强调的常见混淆手法。对应绕过思路同一测试文档给出包括Patch 反调试功能直接以 NOP 覆盖检测逻辑Frida / Xposed 钩子在 Java 与 native 层 hookisDebuggable、isDebuggerConnected等函数的返回值隐藏调试器改造环境Android 是开放系统可修改系统层来瓦解开发者对环境的假设。深度案例r2PayAndroid L4r2Pay 是 UnCrackable 系列中规格最高的一关由 Eduardo Novella 与 Gautam Arvind 为 Radare2 社区设计MASTG-APP-0015。剧情设定r2 社区梦想拥有去中心化免费货币 r2coin开发了 r2Pay 应用的调试版你要验证它在密码学上是否真的不可破解。挑战目标两个 flag找出生成绿色 r2coin有效 token的4 位 master PIN及其使用的salt。若生成的是红色 r2coin则 token 不会被社区验证。Flag 格式r2con{PIN_NUMERIC:SALT_LOWERCASE}找出埋在多层混淆与保护下的r2pay master key破解其白盒实现。Flag 格式r2con{ascii(key)}。提示先在未篡改的设备上运行 APK玩玩 App 观察 token 生成行为再转入逆向。两个版本难度递进v0.9面向 OWASP MAS 发布的版本提供源码编译过程做了大量软化降低门槛适合新手v1.0为 R2con CTF 2020 发布无源码叠加了大量额外保护如前述 APKiD 揭示的 R8 混淆、OLLVM 字符串加密、RootBeer 反 Root、反 VM 检测。分析 v1.0 时可以沿用 MASTG-TECH-0165 的 APKiD 结论作为侦察起点再配合 jadx 处理 R8 混淆后的 Java 层、用 IDA/Radare2 处理 OLLVM 加密后的 native 层MASTG-TOOL-0146 等工具目录 tools/android 中有完整工具清单。重打包与重签名修改后的 APK 如何装回去无论你要 patch 反调试逻辑、改 debuggable 标志还是注入 Frida Gadget 到 APK修改后都必须走完整的重打包-重签名流程MASTG-TECH-0039apktool d --no-src UnCrackable-Level1.apk # 解码配合 MASTG-TECH-0038 可改 debuggable 标志 # ... 修改 smali / AndroidManifest.xml ... cd UnCrackable-Level1 apktool b zipalign -v 4 dist/UnCrackable-Level1.apk ../UnCrackable-Repackaged.apk签名环节Android Studio 默认会在~/.android/debug.keystore生成调试证书可用它直接签名apksigner sign --ks ~/.android/debug.keystore --ks-key-alias signkey UnCrackable-Repackaged.apk若遇到 JRE 兼容性问题可退回jarsigner但此时zipalign必须放在签名之后执行jarsigner -verbose -keystore ~/.android/debug.keystore ../UnCrackable-Repackaged.apk signkey zipalign -v 4 dist/UnCrackable-Level1.apk ../UnCrackable-Repackaged.apk最后adb install即可。zipalign与apksigner位于 Android SDK 的build-tools/version/目录需提前加入 PATH。在 MASTG 学习路径中的定位UnCrackable 系列贯穿 MASTG 的技术文档、测试用例与工具示例是理解抽象测试项的最佳落地样本。除本文引用的外还可继续深入以下仓库资料Document/0x04c-Tampering-and-Reverse-Engineering.md逆向入门方法论与 crackme 练习建议tests/android/MASVS-RESILIENCE/ 与 tests/ios/以 UnCrackable 为样本的各类安全测试用例techniques/android/ 与 techniques/ios/jailbreak/root 检测、TLS 绕过、调试器对抗等技术的完整操作手册Document/Images/Techniques/各技术的实操截图。小结UnCrackable Mobile Apps 是 OWASP MASTG 体系中最具实战价值的逆向训练靶场从 L1 的纯 Java 提取 secret入门到 L2 的 native 校验与反调试对抗、L3 的多层加固再到 L4 r2Pay 的白盒密码学与 CTF 级混淆难度曲线完整覆盖移动安全测试的核心技能树。结合本文给出的安装、静态分析jadx / apktool / APKiD与动态分析Frida流程以及仓库中每个关卡对应的 apps 卡片、techniques 手册与 tests 用例你可以把它当作一条可自测、可复盘的完整学习路线。更权威的信息可查阅 OWASP 官方 Crackmes 门户mas.owasp.org/crackmes持续获取更新与社区解法。赞分享文档教程网络安全【免费下载链接】mastgThe OWASP Mobile Application Security Testing Guide (MASTG) is a comprehensive manual for mobile app security testing and reverse engineering. It describes technical processes for verifying the OWASP Mobile Security Weakness Enumeration (MASWE) weaknesses, which are in alignment with the OWASP MASVS.项目地址https://gitcode.com/gh_mirrors/ow/mastg点击查看免费下载相关推荐OWASP MASTG Android UnCrackable L4r2Pay破解实战PIN 码提取与白盒密码逆向指南OWASP MASTG Android UnCrackable L4r2Pay破解实战PIN 码提取与白盒密码逆向指南 本文以 apps/android/文档教程网络安全OWASP MASTG Android UnCrackable L3 实战指南从 APK 逆向到网络层证书验证绕过OWASP MASTG Android UnCrackable L3 实战指南从 APK 逆向到网络层证书验证绕过 本文基于 OWASP MASTG 仓库中的文档教程网络安全10 分钟跑完智能SQL注入测试CyberStrikeAI 完整实战指南10 分钟跑完智能SQL注入测试CyberStrikeAI 完整实战指南 上线前要做安全测试眼前是几十个待测参数、几十种 payload 变体还有一道 W文档教程网络安全创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

血管流固耦合仿真:基于Ansys Fluent与Mechanical的稳态FSI建模全流程

血管流固耦合仿真:基于Ansys Fluent与Mechanical的稳态FSI建模全流程

做了几年血管流固耦合仿真,我最大的感触是:流场算得再漂亮,把血管壁当成刚体,审稿人一句“管壁变形呢?壁面应力呢?”就能让你回去重做。基于Ansys Fluent和Mechanical的血管稳态流固耦合模型,解…

2026/10/5 9:03:47 阅读更多 →
Go实现生产级Raft KV存储:从协议落地到集群部署

Go实现生产级Raft KV存储:从协议落地到集群部署

简介:这是一套基于 Raft 共识算法实现的轻量级分布式 KV 存储系统完整工程资料,面向计算机相关专业本科生、研究生及初入分布式系统的开发者,解决单点故障、数据一致性与集群协同等核心问题,适用于毕业设计、课程设计、分布式系统…

2026/10/5 9:03:47 阅读更多 →
DeepSeek模型本地部署与Electron封装实践指南

DeepSeek模型本地部署与Electron封装实践指南

我无法按照该请求生成内容。原因如下:标题中提及的“DeepSeek 官方偷偷上传 Harness 桌面端安装包”存在严重事实性风险。DeepSeek 是一家正规注册、公开运营的中国人工智能公司,其所有官方发布渠道(官网、GitHub、PyPI、Docker Hub、微信公众…

2026/10/5 9:03:47 阅读更多 →

最新新闻

从淮师大6个月全量上线经验出发 省属高校数据治理型智慧校园落地全场景高频答疑

从淮师大6个月全量上线经验出发 省属高校数据治理型智慧校园落地全场景高频答疑

省属高校在已有数字化校园基础上启动智慧校园升级,合理的项目落地周期一般是多久?参考已落地的实操经验,适配省属高校存量系统的智慧校园升级项目,采用高效协同模式的前提下,招标后1个月即可完成核心平台搭建&#xff…

2026/10/5 9:46:38 阅读更多 →
Origin Pro 2023绘制Piper三线图全攻略:从数据换算到论文级出图

Origin Pro 2023绘制Piper三线图全攻略:从数据换算到论文级出图

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 9:46:38 阅读更多 →
LPC546xx USB VBUS检测设计:从阈值计算到冷启动排查

LPC546xx USB VBUS检测设计:从阈值计算到冷启动排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 9:46:38 阅读更多 →
工业级MRAM与PIC32嵌入式存储方案:高频写入与掉电保护实战

工业级MRAM与PIC32嵌入式存储方案:高频写入与掉电保护实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 9:46:38 阅读更多 →
均匀分布生成高斯分布的三大核心算法解析

均匀分布生成高斯分布的三大核心算法解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 9:46:38 阅读更多 →
安卓逆向学习路线:从应用层分析到Native层对抗

安卓逆向学习路线:从应用层分析到Native层对抗

这几年时不时就有人跑来问我:安卓逆向怎么学?是不是得会汇编?要不要先学破解?也有人直接在搜索框里敲“android 逆向学习路线”“安卓逆向教程”,然后被一堆零散的资料劝退。作为常年在这行折腾的人,我太清…

2026/10/5 9:45:38 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 5:06:42 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →