CTF弱口令破解实战:解决Python Crypto模块缺失与ZIP爆破工具开发
1. 项目概述当CTF解题遇上“拦路虎”在CTFCapture The Flag夺旗赛的MISC杂项类题目中弱口令破解是入门选手的“必修课”也是快速拿分的常见题型。这类题目通常提供一个加密的压缩包、一个需要密码登录的系统界面或者一个被密码保护的文档而密码往往就藏在题目描述、文件属性或者一个简单的字典里。解题思路清晰找到或生成弱口令字典然后用工具如fcrackzip、John the Ripper或脚本进行爆破。听起来很简单对吧但问题往往就出在这个“简单”上。很多新手尤其是刚接触安全竞赛、对Python环境还不熟悉的朋友在尝试用Python编写或运行一个简单的爆破脚本时第一步就卡住了——脚本一运行就报错ModuleNotFoundError: No module named Crypto。这个错误信息就像一盆冷水瞬间浇灭了刚燃起的解题热情。你明明按照网上的教程安装了pycryptodome库为什么还是不行你尝试用pip install crypto结果安装的却是另一个无关的库。时间一分一秒过去眼看着简单的题目却无从下手这种挫败感我太懂了。实际上这个“Crypto模块缺失”问题是Python在CTF密码学相关操作中的一个经典坑点。它背后涉及Python包管理的历史遗留问题、不同操作系统的环境差异以及CTF工具链的特定需求。本文将从一个实战者的角度彻底拆解这个问题。我们不仅会解决“如何安装”这个表面问题更会深入探讨“为什么会出现这个问题”、“在不同环境下如何一劳永逸地解决”并手把手带你用Python构建一个针对BUUCTF平台MISC弱口令题的实战爆破工具。你会发现解决了这个环境问题只是打开了CTF密码学世界的一扇小门门后还有更多高效的技巧和思维在等着你。2. 核心问题深度拆解Crypto、pycrypto与pycryptodome的“三角关系”要根除问题必须先理解问题的根源。这个ModuleNotFoundError通常不是因为你没安装而是因为你安装的“东西”不对或者Python找错了“地方”。2.1 历史渊源与命名冲突早期的Python密码学库名叫pycrypto。这个库非常流行但它在2015年左右就停止了维护存在一些未修复的安全漏洞。然而由于历史惯性大量旧的教程、代码片段乃至一些遗留系统其import语句写的都是from Crypto.Cipher import AES或import Crypto。后来一个维护良好的分支pycryptodome出现了它完全兼容pycrypto的API接口。也就是说在你的代码里你依然写import Crypto但实际上你需要安装的包是pycryptodome。pycryptodome的开发者为了让替换无缝进行故意让它的包名在系统中也“冒充”成Crypto。那直接pip install crypto会怎样你会发现PyPI上确实有一个名叫crypto的包但它是一个完全不同的、甚至带有恶意的“山寨包”。如果你不小心安装了这个不仅原来的问题解决不了还可能引入安全风险。所以核心关系如下表所示你写的代码 (import语句)你应该安装的包 (PyPI名称)你不应该安装的包状态import Cryptofrom Crypto.Cipher import AESpycryptodomepycrypto(已废弃)crypto(恶意山寨)正确选择import cryptodome(极少见)pycryptodome-非标准写法不推荐2.2 不同操作系统下的安装“陷阱”即使在明白了应该安装pycryptodome之后不同操作系统和Python环境依然可能给你出难题。在Windows系统上最常见的问题是权限和路径。如果你在命令行直接运行pip install pycryptodome可能会遇到“拒绝访问”的错误尤其是Python安装在C:\Program Files目录下时。这是因为需要向系统目录写入文件。我的踩坑经验在Windows下永远优先使用以管理员身份运行的命令提示符或PowerShell来执行pip安装命令。如果还不行可以尝试为用户安装pip install --user pycryptodome。但后者有时会导致IDE如PyCharm、VSCode找不到这个包因为IDE可能使用的是系统Python环境而非用户环境。在Linux/macOS或WSLWindows Subsystem for Linux下问题可能更隐蔽。系统可能自带了Python 2和Python 3。当你输入python和pip时可能默认指向的是Python 2。而现代CTF工具和脚本几乎都是Python 3编写的。这时即使你成功安装了pycryptodome用python your_script.py运行时依然会报错因为包装在了Python 3的路径下但解释器用的是Python 2。实操命令鉴别在终端里依次输入以下命令可以清晰看到区别python --version # 可能显示 Python 2.7.x python3 --version # 显示 Python 3.x.x pip --version # 查看此pip关联的Python版本 pip3 --version # 查看pip3关联的Python版本正确的安装和运行姿势应该是pip3 install pycryptodome然后python3 your_script.py。在虚拟环境Virtual Environment中这是我最推荐的方式也是专业Python开发的标配。虚拟环境为你每个项目创建一个独立的、干净的Python包安装空间完全隔离系统环境避免版本冲突。# 创建虚拟环境 python3 -m venv ctf_env # 激活虚拟环境 (Linux/macOS/WSL) source ctf_env/bin/activate # 激活虚拟环境 (Windows) ctf_env\Scripts\activate # 在激活的环境下安装绝对纯净 pip install pycryptodome2.3 验证安装成功的正确姿势安装完成后不要急着去运行你那几十上百行的解题脚本。先写一个最简单的测试脚本确保基础环境没问题。# test_crypto.py try: from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad from Crypto.Random import get_random_bytes print([] PyCryptodome 导入成功) # 可选做一个简单的加密解密测试 key get_random_bytes(16) cipher AES.new(key, AES.MODE_ECB) data bCTF-TEST-PLAINTEXT ct cipher.encrypt(pad(data, AES.block_size)) print(f[] 测试加密成功密文长度{len(ct)}) except ImportError as e: print(f[-] 导入失败: {e}) print([-] 请检查是否使用 pip install pycryptodome 正确安装。) print([-] 注意包名是 pycryptodome不是 crypto 或 pycrypto。)在命令行用对应的Python解释器运行它python test_crypto.py或python3 test_crypto.py。看到成功的提示你的战场才算是打扫干净了。3. 构建BUUCTF MISC弱口令实战爆破工具环境问题解决后我们进入实战。BUUCTF平台上有不少MISC题目是给一个加密的ZIP或RAR文件密码是弱口令。我们以最常见的ZIP加密为例构建一个Python爆破工具。3.1 工具设计思路与核心库选择我们的工具需要完成以下功能读取弱口令字典从一个文本文件中按行读取可能的密码。尝试解密ZIP文件使用每个密码尝试解压直到成功或字典耗尽。提供进度反馈让人知道程序在运行而不是卡死了。成功输出结果打印出正确的密码和被成功解压的文件。为什么不直接用现成工具如fcrackzip因为用Python写可以让你更深入地理解爆破过程并且可以灵活地定制比如针对题目特征生成特定的字典如日期、题目名、常见CTF密码等这是通用工具难以做到的。核心库zipfilePython标准库用于处理ZIP文件。它是我们实现爆破的核心。sys,argparse用于处理命令行参数让工具更通用。threading(可选)如果你想加速可以加入多线程。但对于入门而言单线程简单可靠。3.2 核心代码实现与逐行解析下面是一个健壮的单线程爆破脚本#!/usr/bin/env python3 # -*- coding: utf-8 -*- BUUCTF MISC ZIP弱口令爆破工具 用法: python zip_cracker.py 加密zip文件 字典文件 import zipfile import sys import argparse from threading import Thread, Event import time def crack_zip(zip_path, dict_path, stop_event): 核心爆破函数 :param zip_path: 加密ZIP文件路径 :param dict_path: 密码字典路径 :param stop_event: 线程停止事件用于多线程扩展单线程可忽略 :return: 成功返回密码失败返回None try: # 1. 打开ZIP文件对象 with zipfile.ZipFile(zip_path, r) as zip_file: # 2. 获取ZIP内第一个文件的名称用于测试密码 # 有些ZIP可能加密了部分文件这里简单取第一个 test_file zip_file.namelist()[0] if zip_file.namelist() else None if not test_file: print([-] ZIP文件为空。) return None # 3. 读取字典 try: with open(dict_path, r, encodingutf-8, errorsignore) as f: passwords [line.strip() for line in f] except FileNotFoundError: print(f[-] 字典文件未找到: {dict_path}) return None total len(passwords) print(f[*] 加载字典完成共 {total} 个密码。) print(f[*] 开始爆破 {zip_path} ...) start_time time.time() # 4. 遍历密码尝试 for idx, password in enumerate(passwords, 1): if stop_event and stop_event.is_set(): break try: # 关键步骤用密码尝试解压测试文件到内存不写磁盘 zip_file.extract(test_file, pwdpassword.encode(utf-8)) # 如果上一行没报错说明密码正确 elapsed time.time() - start_time print(f\n[] 爆破成功) print(f[] 密码: {password}) print(f[] 耗时: {elapsed:.2f} 秒) print(f[] 尝试次数: {idx}/{total}) if stop_event: stop_event.set() # 通知其他线程停止 return password except (RuntimeError, zipfile.BadZipFile): # 密码错误会触发RuntimeError: Bad password # BadZipFile是其他异常但通常也意味着失败 pass except Exception as e: # 其他未知异常打印出来便于调试 print(f[-] 尝试密码 {password} 时发生未知错误: {e}) pass # 5. 进度反馈每1000次或1%打印一次 if idx % max(1, total // 100) 0 or idx % 1000 0: elapsed time.time() - start_time speed idx / elapsed if elapsed 0 else 0 print(f[*] 进度: {idx}/{total} ({idx/total*100:.1f}%) | 速度: {speed:.1f} pwd/s | 当前密码: {password[:20]}..., end\r) # 循环结束字典耗尽 elapsed time.time() - start_time print(f\n[-] 爆破失败字典中未找到正确密码。) print(f[-] 总耗时: {elapsed:.2f} 秒) return None except FileNotFoundError: print(f[-] ZIP文件未找到: {zip_path}) return None except zipfile.BadZipFile: print(f[-] 文件损坏或不是有效的ZIP文件: {zip_path}) return None def main(): parser argparse.ArgumentParser(descriptionZIP加密文件弱口令爆破工具) parser.add_argument(zipfile, help加密的ZIP文件路径) parser.add_argument(dictfile, help密码字典文件路径) # 可以添加更多参数如线程数 -t # parser.add_argument(-t, --threads, typeint, default4, help线程数 (默认: 4)) args parser.parse_args() # 单线程模式调用 password crack_zip(args.zipfile, args.dictfile, stop_eventNone) if password: # 可以在这里添加成功后的操作比如自动解压所有文件 print([] 任务完成。) sys.exit(0) else: sys.exit(1) if __name__ __main__: main()关键点解析与避坑指南编码问题 (password.encode(utf-8))这是新手常踩的坑。zipfile的extract方法要求密码是字节串(bytes)而我们从文本文件读取的是字符串(str)。必须使用.encode(utf-8)进行转换。如果字典密码包含非ASCII字符虽然弱口令很少见可能需要尝试其他编码如gbk。异常处理zip_file.extract()在密码错误时会抛出RuntimeError。我们捕获这个异常并默默继续。同时捕获zipfile.BadZipFile和其他未知异常确保程序健壮性。进度反馈爆破可能很耗时。实时显示进度、尝试速度和当前测试的密码能让你安心也知道程序在正常工作。end\r可以让输出在同一行更新更整洁。内存解压extract(test_file)时我们指定了一个不存在的路径或内存流实际上只是为了触发密码验证。真正的批量解压可以在找到密码后进行。这避免了在测试过程中产生大量垃圾文件。3.3 弱口令字典的“艺术”工具有了字典的质量直接决定成败。对于BUUCTF这类国内入门CTF密码往往有一定规律。基础字典必备rockyou.txt安全领域最著名的泄露密码集包含千万级密码。可以从Kali Linux的/usr/share/wordlists/目录下找到或网上搜索下载。top1000.txt,top10000.txt最常见的密码列表。数字爆破对于简单数字密码如4-6位可以用Python快速生成。# 生成4位纯数字字典 with open(digits_4.txt, w) as f: for i in range(10000): f.write(f{i:04d}\n) # :04d 确保是4位不足补零针对CTF的“聪明”字典这是进阶的关键。CTF出题人喜欢玩梗、用题目相关词。题目名/描述关键词如果题目叫“flag.zip”密码可能是flag、FLAG、Flag123。如果描述里有“password is easy”可以试试easy、easy123、easy_password。常见CTF密码ctf、CTF、ctf2023、flag、root、admin、password、123456、toor、linux、windows、hello、world。组合爆破将基础单词与数字、简单符号组合。例如用Python生成base_words [ctf, flag, admin, root, password] suffixes [, 123, !, , 123456, 2023] with open(ctf_common.txt, w) as f: for word in base_words: for suffix in suffixes: f.write(f{word}{suffix}\n) f.write(f{word.capitalize()}{suffix}\n)社会工程学如果题目附件里有图片用exiftool查看注释如果有文档查看属性里的作者、公司信息这些都可能是密码。我的心得准备一个自己的“万能字典”把上面各种来源的密码去重后合并成一个文件。在BUUCTF上一个精心准备的、几万条记录的“聪明字典”其效率远高于几千万条的rockyou.txt。4. 实战演练从拿到题目到获取Flag假设我们从BUUCTF下载到一个名为misc_easy.zip的加密压缩包题目描述只有一句“密码很简单哦”。我们的作战步骤环境准备确保Python 3和pycryptodome已正确安装虽然这个脚本用不到Crypto库但好习惯要保持。创建一个专属目录把zip_cracker.py脚本、misc_easy.zip和你的字典文件放进去。信息收集先用zipinfoLinux/macOS或7z l -slt misc_easy.zipWindows可用7-Zip查看压缩包信息确认它确实加密了并看看里面有什么文件。# Linux/macOS zipinfo misc_easy.zip # 输出中看到 encrypted: yes 即表示加密准备字典根据“密码很简单哦”这个提示我们先从最简单的开始。创建一个simple.txt字典内容如下simple easy password 123456 qwerty admin ctf flag hello welcome同时也把之前生成的ctf_common.txt和digits_4.txt放在手边。运行爆破python3 zip_cracker.py misc_easy.zip simple.txt如果运气好密码就在这几个里面瞬间就能成功。如果simple.txt没结果换ctf_common.txt。如果提示是数字再换digits_4.txt。成功解压脚本找到密码后你可以手动用解压软件如Bandizip、7-Zip输入密码解压或者改进脚本使其在找到密码后自动调用zipfile的extractall方法解压所有文件到指定目录。寻找Flag解压后的文件可能是文本、图片、另一个压缩包或奇怪的数据文件。用file命令Linux/macOS或查看扩展名判断类型。文本文件直接看图片用binwalk、steghide或zsteg检查隐写数据文件用xxd或hexeditor分析。5. 进阶技巧与疑难排查5.1 多线程加速爆破当字典很大时单线程速度太慢。我们可以用Python的threading或concurrent.futures模块进行加速。思路是将字典分成N份每个线程处理一份。重要警告多线程操作共享资源如向屏幕打印、写文件需要加锁否则输出会混乱。而且ZIP文件读取本身可能不是线程安全的。一个更简单安全的做法是多进程但复杂度更高。对于入门者我建议先优化字典而非盲目追求多线程。一个优质的、针对性强的小字典其速度远超一个胡乱多线程爆破的大字典。5.2 处理RAR等其他格式ZIP是Python标准库直接支持的。如果是RAR文件则需要安装第三方库rarfile并且系统可能需要安装unrar命令行工具。pip install rarfile脚本逻辑几乎一样只是把zipfile.ZipFile换成rarfile.RarFile注意异常类型可能不同rarfile.BadRarFile,rarfile.PasswordRequired。5.3 常见错误与解决方案错误信息可能原因解决方案ModuleNotFoundError: No module named zipfilePython环境异常极罕见zipfile是标准库重装Python或检查环境。UnicodeDecodeErrorwhen reading dict字典文件编码非UTF-8用notepad等工具将字典转为UTF-8编码或在open()函数中尝试encodinggbk、latin-1。RuntimeError: Bad password for file密码错误正常流程脚本已处理继续尝试下一个即可。zipfile.BadZipFile: File is not a zip file文件损坏或不是ZIP用file命令确认文件类型或题目可能是伪加密需要zipdetails等工具分析。脚本运行无任何输出可能卡在读取大字典检查字典文件大小在读取字典后加一句print(f[*] 已加载 {len(passwords)} 个密码)确认。找到密码但解压失败ZIP文件使用非标准加密或损坏尝试用7-Zip或Bandizip等专业软件手动输入密码解压。5.4 密码正确却无法解压有时脚本提示找到了密码但解压时出错。这可能是因为ZIP伪加密ZIP文件头中有一个位标记来表示文件是否加密。有些题目会修改这个标记让软件误以为文件已加密其实没有。用zipdetails或010 Editor查看文件头或直接用unzip命令尝试解压不输密码看是否成功。分卷压缩包文件可能是.zip.001,.zip.002格式。需要将所有分卷放在一起用支持分卷的软件如7-Zip解压。非标准加密算法极少数情况使用AES-256等强加密zipfile库可能不支持。需要寻找其他专门库。解决环境问题只是CTF之旅的第一步。它锻炼的是你面对问题时的信息检索、理解与解决能力——这恰恰是安全从业者最重要的核心素质之一。当你不再被ModuleNotFoundError困扰可以自由地用Python将解题思路转化为代码时你会发现CTF的世界变得更加开阔。你可以编写脚本批量处理图片、分析网络流量、解码古怪的编码甚至自己出题。记住工具是手脚思维才是大脑。不断从“为什么”出发去思考题目设计者的意图积累自己的武器库和字典你会在解出Flag的瞬间获得远超分数本身的成就感。

相关新闻

佳能TS3380清零软件TS3480 TS3400 TS3300 G5080 G6080 G7080清零,亲测佳能V6.200原版清零软件,好用不锁主板,5B00,5B02,1700,1702,P07

佳能TS3380清零软件TS3480 TS3400 TS3300 G5080 G6080 G7080清零,亲测佳能V6.200原版清零软件,好用不锁主板,5B00,5B02,1700,1702,P07

蓝奏云:点这里下载 密码:00 百度云:点这里下载 备用:pan.baidu.com/s/1gls2G4rqWWP-Mw-z6tVjnQ?pwd0000 常见型号如下: G1000、G1100、G1200、G1400、G1500、G1800、G1900、G1010、G1110、G1120、G1410、G1420、G1411、G151…

2026/7/26 22:28:18 阅读更多 →
深度解析BetterNCM-Installer架构:Rust实现的高效插件管理解决方案

深度解析BetterNCM-Installer架构:Rust实现的高效插件管理解决方案

深度解析BetterNCM-Installer架构:Rust实现的高效插件管理解决方案 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer BetterNCM-Installer是一款基于Rust语言开发的网易云音乐…

2026/7/26 13:51:14 阅读更多 →
A/B测试与DoubleML:因果推断的分工边界与切换时机

A/B测试与DoubleML:因果推断的分工边界与切换时机

1. 项目概述:为什么从A/B测试跳到DoubleML,不是升级而是补课“From A/B Testing to DoubleML: A Data Scientist’s Guide to Causal Inference”这个标题一出来,我就在团队周会上被三个刚转行的数据分析师围住问:“DoubleML是不是…

2026/7/26 8:51:13 阅读更多 →

最新新闻

FLoRA:参数高效联邦学习在视觉-语言模型中的应用

FLoRA:参数高效联邦学习在视觉-语言模型中的应用

1. FLoRA:基于参数高效联邦学习的视觉-语言模型增强方案在当前的AI应用场景中,视觉-语言模型(如CLIP)展现出强大的跨模态理解能力,但传统集中式训练方式面临数据隐私和计算资源分配的双重挑战。我们团队在实际工业部署…

2026/7/27 2:04:14 阅读更多 →
彻底解决PyQt5安装卡在Building wheel for PyQt5-sip的编译问题

彻底解决PyQt5安装卡在Building wheel for PyQt5-sip的编译问题

1. 项目概述:当PyQt5-sip的构建轮子卡住时 如果你正在用Python开发图形界面,尤其是桌面应用,PyQt5几乎是绕不开的选择。但很多开发者,无论是新手还是老手,都可能在第一步——安装——就栽个大跟头。最常见、也最让人头…

2026/7/27 2:04:14 阅读更多 →
点云密度计算优化:从O(N²)到秒级响应的C++实践

点云密度计算优化:从O(N²)到秒级响应的C++实践

1. 项目概述:点云密度计算为何需要优化?在三维视觉和机器人感知领域,点云数据是描述物体表面形态最直接的方式。无论是自动驾驶的激光雷达扫描,还是工业检测中的三维重建,我们拿到手的原始点云数据往往“疏密不均”。靠…

2026/7/27 2:04:14 阅读更多 →
科技创业公司联合创始人离职的深度分析与应对策略

科技创业公司联合创始人离职的深度分析与应对策略

这次我们来看一个关于创业公司团队动态的深度分析。这个标题"最后一个联合创始人离开,王小川身后空无一人"背后反映的是科技创业公司发展到一定阶段面临的典型困境:核心团队流失、创始人孤军奋战、公司战略方向调整等关键问题。对于技术创业者…

2026/7/27 2:04:14 阅读更多 →
解决Java国密算法Jar部署中JCE无法验证BouncyCastle Provider的实战指南

解决Java国密算法Jar部署中JCE无法验证BouncyCastle Provider的实战指南

1. 项目概述:当国密算法遇上Jar部署的“拦路虎”最近在做一个需要对接某特定行业系统的项目,对方要求所有接口的签名和加解密都必须使用国密算法(SM2/SM3/SM4)。这在技术选型上很明确,Java生态里BouncyCastle&#xff…

2026/7/27 2:04:14 阅读更多 →
TMS320C6474多核DSP系统互联与设备配置实战指南

TMS320C6474多核DSP系统互联与设备配置实战指南

1. 项目概述与核心价值在通信基站、雷达信号处理或者高端医疗影像设备这类对实时性要求极高的领域,工程师们常常面临一个核心矛盾:算法复杂度与处理延迟。传统的单核处理器在处理海量数据流时,往往力不从心,要么牺牲精度&#xff…

2026/7/27 2:03:13 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

月新闻