2023年第十六届山东省职业院校技能大赛中职组“网络安全”赛项竞赛正式试题
第十六届山东省职业院校技能大赛中职组
“网络安全”赛项竞赛试题
目录
一、竞赛时间
二、竞赛阶段
三、竞赛任务书内容
(一)拓扑图
(二)A模块基础设施设置/安全加固(200分)
(三)B模块安全事件响应/网络安全数据取证/应用安全(400分)
B-1:Linux系统渗透提权
B-2:内存取证
B-3:页面信息发现
B-4:数字取证调查
B-5:网络安全应急响应
B-6:Python代码分析
B-7:逆向分析
(四)模块C CTF夺旗-攻击
(五)模块D CTF夺旗-防御
需要环境可私信博主
一、竞赛时间
总计:360分钟
二、竞赛阶段
竞赛阶段 | 任务阶段 | 竞赛任务 | 竞赛时间 | 分值 |
A、B模块 | A-1 | 登录安全加固 | 180分钟 | 200分 |
A-2 | 本地安全策略设置 | |||
A-3 | 流量完整性保护 | |||
A-4 | 事件监控 | |||
A-5 | 服务加固 | |||
A-6 | 防火墙策略 | |||
B-1 | Linux系统渗透提权 | 400分 | ||
B-2 | 内存取证 | |||
B-3 | 页面信息发现 | |||
B-4 | 数字取证调查 | |||
B-5 | 网络安全应急响应 | |||
B-6 | Python代码分析 | |||
B-7 | 逆向分析 | |||
C、D模块 | C模块 | CTF夺旗-攻击 | 180分钟 | 200分 |
D模块 | CTF夺旗-防御 | 200分 |
三、竞赛任务书内容
(一)拓扑图
(二)A模块基础设施设置/安全加固(200分)
一、项目和任务描述:
假定你是某企业的网络安全工程师,企业服务器可能被黑客攻击, 进行了未知操作,为了确保服务器正常运行,请按照网络安全岗位实 施规范,进行相关操作。通过综合运用用户安全管理与密码策略、Nginx安全策略、日志监控策略、中间件服务安全策略、本地安全策略、防火墙策略等多种安全策略来提升服务器系统的网络安全防御能力。本模块要求根据竞赛现场提供的A模块答题模板对具体任务的操作进行截图并加以相应的文字说明,以word文档的形式书写,以PDF格式保存。
二、服务器环境说明
AServer08(windows)、 用户名:administrator,密码:123456
AServer09(linux) 用户名:root,密码:123456
三、说明:
1.所有截图要求截图界面、字体清晰,并粘贴于相应题目要求的位置;
2.文件名命名及保存:网络安全模块A-XX(XX为工位号),PDF格式保存;
3.文件保存到U盘提交。
A-1:登录安全加固(Windows, Linux)
请对服务器Windows、Linux按要求进行相应的设置,提高服务器的安全性。
1.密码策略(Windows, Linux)
a.最小密码长度不少于13个字符(Windows);
b.密码必须符合复杂性要求(Linux)。
2.用户安全管理(Windows)
a.设置取得文件或其他对象的所有权,将该权限只指派给administrators组;
b.禁止普通用户使用命令提示符;
c.设置不显示上次登录的用户名。
A-2:Nginx安全策略(Linux)
3.禁止目录浏览和隐藏服务器版本和信息显示;
4.限制HTTP请求方式,只允许GET、HEAD、POST;
5.设置客户端请求主体读取超时时间为10;
6.设置客户端请求头读取超时时间为10;
7.将Nginx服务降权,使用www用户启动服务。
A-3:日志监控(Windows)
8.安全日志文件最大大小为128MB,设置当达到最大的日志大小上限时,按需要覆盖事件(旧事件优先);
9.应用日志文件最大大小为64MB,设置当达到最大的日志大小上限时将其存档,不覆盖事件;
10.系统日志文件最大大小为32MB,设置当达到最大的日志大小上限时,不覆盖事件(手动清除日志)。
A-4:中间件服务加固SSHD\VSFTPD\IIS(Windows, Linux)
11.SSH服务加固(Linux)
a.修改ssh服务端口为2222;
b.ssh禁止root用户远程登录;
c.设置root用户的计划任务。每天早上7:50自动开启ssh服务,22:50关闭;每周六的7:30重新启动ssh服务;
d.修改SSHD的PID档案存放地。
12.VSFTPD服务加固(Linux)
a.设置运行vsftpd的非特权系统用户为pyftp;
b.限制客户端连接的端口范围在50000-60000;
c.限制本地用户登录活动范围限制在home目录。
13.IIS加固(Windows)
a.开启IIS的日志审计记录(日志文件保存格式为W3C,只记录日期、时间、客户端IP地址、用户名、方法);
b.关闭IIS的WebDAV功能增强网站的安全性。
A-5:本地安全策略(Windows)
14.禁止匿名枚举SAM帐户;
15.禁止系统在未登录的情况下关闭;
16.禁止存储网络身份验证的密码和凭据;
17.禁止将Everyone权限应用于匿名用户;
18.在超过登录时间后强制注销。
A-6:防火墙策略(Linux)
19.设置防火墙允许本机转发除ICMP协议以外的所有数据包;
20.为防止SSH服务被暴力枚举,设置iptables防火墙策略仅允许172.16.10.0/24网段内的主机通过SSH连接本机;
21.为防御拒绝服务攻击,设置iptables防火墙策略对传入的流量进行过滤,限制每分钟允许3个包传入,并将瞬间流量设定为一次最多处理6个数据包(超过上限的网络数据包将丢弃不予处理);
22.只允许转发来自172.16.0.0/24局域网段的DNS解析请求数据包。
(三)B模块安全事件响应/网络安全数据取证/应用安全(400分)
B-1:Linux系统渗透提权
- 服务器场景:Server2214(关闭链接)
- 用户名:hacker 密码:123456
- 使用渗透机对服务器信息收集,并将服务器中SSH服务端口号作为flag提交;
- 使用渗透机对服务器信息收集,并将服务器中主机名称作为flag提交;
- 使用渗透机对服务器信息收集,并将服务器中系统内核版本作为flag提交;
- 使用渗透机对服务器管理员提权,并将服务器中root目录下的文本内容作为flag提交;
- 使用渗透机对服务器管理员提权,并将服务器中root的密码作为flag提交;
- 使用渗透机对服务器管理员提权,并将服务器中root目录下的图片内容作为flag提交。
B-2:内存取证
- 服务器场景:win20230306(关闭链接)
- FTP用户名:user,密码:123456
- 在服务器中下载内存片段,在内存片段中获取主机信息,将管理员密码作为Flag值提交;
- 在内存片段中获取主机信息,将此片段的地址作为Flag值提交;
- 在内存片段中获取主机信息,将此片段的主机名作为Flag值提交;
- 在内存片段中获取主机信息,将挖矿程序的地址及端口号作为Flag值提交;(若为多个用;分开)
- 在内存片段中获取主机信息,将后台恶意程序所用的程序名称作为Flag值提交;
- 在内存片段中获取主机信息,将此时的浏览器搜寻的关键词作为Flag值提交。
B-3:页面信息发现
- 服务器场景:win20230305(关闭链接)
- 在渗透机中对服务器信息收集,将获取到的服务器网站端口作为Flag值提交;
- 访问服务器网站页面,找到主页面中的Flag值信息,将Flag值提交;
- 访问服务器网站页面,找到主页面中的脚本信息,并将Flag值提交;
- 访问服务器网站页面,找到登录页面信息,将登录成功后的信息作为Flag值提交;
- 访问服务器网站页面,找到转化页面信息,将Flag值提交;
- 访问服务器网站页面,找到对比页面信息,将Flag值提交。
B-4:数字取证调查
- 服务器场景:FTPServer20221010(关闭链接)
- 服务器场景操作系统:未知
- FTP用户名:attack817密码:attack817
- 分析attack.pcapng数据包文件,通过分析数据包attack.pcapng找出恶意用户第一次访问HTTP服务的数据包是第几号,将该号数作为Flag值提交;
- 继续查看数据包文件attack.pcapng,分析出恶意用户扫描了哪些端口,将全部的端口号从小到大作为Flag值(形式:端口1,端口2,端口3…,端口n)提交;
- 继续查看数据包文件attack.pcapng分析出恶意用户登录后台所用的密码是什么,将后台密码作为Flag值提交;
- 继续查看数据包文件attack.pcapng分析出恶意用户写入的一句话木马的密码是什么,将一句话密码作为Flag值提交;
- 继续查看数据包文件attack.pcapng分析出恶意用户下载了什么文件,将该文件内容作为Flag值提交。
B-5:网络安全应急响应
- 服务器场景:Server2228(开放链接)
- 用户名:root,密码:p@ssw0rd123
- 找出系统中被植入的后门用户删除掉,并将后门用户的账号作为Flag值提交(多个用户名之间以英文逗号分割,如:admin,root);
- 找出黑客在admin用户家目录中添加的ssh后门,将后门的写入时间作为Flag值(提交的时间格式为:2022-01-12 08:08:18)
- 找出黑客篡改过的环境变量文件并还原,将文件的md5值作为Flag值提交;
- 找出黑客修改了bin目录下的某个文件,将该文件的格式作为Flag值提交;
- 找出黑客植入系统中的挖矿病毒,将矿池的钱包地址作为Flag值(提交格式为:0xa1d1fadd4fa30987b7fe4f8721b022f4b4ffc9f8)提交。
B-6:Python代码分析
- 服务器场景:Server2023111301(开放链接)
- 用户名:administrator,密码:123456
- 完善Server2023110901桌面上的Flag.py文件,填写该文件当中空缺的Flag1字符串,并将该字符串作为Flag值提交;(Flag.py在Python代码分析文件夹中)
- 继续完善Flag.py文件,填写该文件当中空缺的Flag2字符串,并将该字符串作为Flag值提交;
- 继续完善Flag.py文件,填写该文件当中空缺的Flag3字符串,并将该字符串作为Flag值提交;
- 继续完善Flag.py文件,填写该文件当中空缺的Flag4字符串,并将该字符串作为Flag值提交;
- 将完善好的脚本文件在Kali上执行,将执行成功后的回显内容作为Flag值提交。
B-7:逆向分析
- 服务器场景:Server2023111301(开放链接)
- 用户名:administrator,密码:123456
- 在 JavaScript 语言中,将给定的长字符串转换为一个数组的方法,将该方法应用于逆向解码操作(可执行文件位于Server2023111301桌面逆向分析文件夹中),所得的结果进行Base64运算,将过程中使用的方法作为Flag值提交(例如:array.splice());
- 写出在字符串中匹配连续的四个字符,且每两个字符之间用空格分隔的正则匹配表达式,将该正则表达式应用于逆向解码操作,所得的结果进行Base64运算,将过程中使用的方法作为Flag值提交(例如:array.splice());
- 使用 JavaScript 中的方法,将迭代器中的每个匹配项取出第一个字符,也就是每个四字符组的第一个字符。将该方法应用于逆向解码操作,所得的结果进行Base64运算,将过程中使用的方法作为Flag值提交(例如:array.splice());
- 使用 JavaScript 中的方法,对上一个步骤中得到的结果的字符进行操作,将它们用空格分隔、反转顺序,然后再连接起来。所得的结果进行Base64运算,将过程中使用的方法作为Flag值提交(例如:array.splice());
- 使用 JavaScript 中的方法,将倒序排列后的字符解释为十六进制数字,然后将其右移2位。所得的结果进行Base64运算,将过程中使用的方法作为Flag值提交(例如:array.splice());
- 将上一步处理后的数字转换为相应的Unicode字符。并将所有转换后的Unicode字符连接成一个字符串。所得的结果进行Base64运算,将运算后得到的结果作为Flag值提交。
(四)模块C CTF夺旗-攻击
(本模块200分)
一、项目和任务描述:
假定你是某企业的网络安全渗透测试工程师,负责企业某些服务器的安全防护,为了更好的寻找企业网络中可能存在的各种问题和漏洞。你尝试利用各种攻击手段,攻击特定靶机,以便了解最新的攻击手段和技术,了解网络黑客的心态,从而改善您的防御策略。
请根据《赛场参数表》提供的信息,在客户端使用谷歌浏览器登录答题平台。
二、操作系统环境说明:
客户机操作系统:Windows 10/Windows7
靶机服务器操作系统:Linux/Windows
三、漏洞情况说明:
1.服务器中的漏洞可能是常规漏洞也可能是系统漏洞;
2.靶机服务器上的网站可能存在命令注入的漏洞,要求选手找到命令注入的相关漏洞,利用此漏洞获取一定权限;
3.靶机服务器上的网站可能存在文件上传漏洞,要求选手找到文件上传的相关漏洞,利用此漏洞获取一定权限;
4.靶机服务器上的网站可能存在文件包含漏洞,要求选手找到文件包含的相关漏洞,与别的漏洞相结合获取一定权限并进行提权;
5.操作系统提供的服务可能包含了远程代码执行的漏洞,要求用户找到远程代码执行的服务,并利用此漏洞获取系统权限;
6.操作系统提供的服务可能包含了缓冲区溢出漏洞,要求用户找到缓冲区溢出漏洞的服务,并利用此漏洞获取系统权限;
7.操作系统中可能存在一些系统后门,选手可以找到此后门,并利用预留的后门直接获取到系统权限。
四、注意事项:
1.不能对裁判服务器进行攻击,警告一次后若继续攻击将判令该参赛队离场;
2.flag值为每台靶机服务器的唯一性标识,每台靶机服务器仅有1个;
3.在登录自动评分系统后,提交靶机服务器的flag值,同时需要指定靶机服务器的IP地址;
4.赛场根据难度不同设有不同基础分值的靶机,对于每个靶机服务器,前三个获得flag值的参赛队在基础分上进行加分,本阶段每个队伍的总分均计入阶段得分;
5.本环节不予补时。
(五)模块D CTF夺旗-防御
(本模块200分)
一、项目和任务描述:
假定各位选手是某安全企业的网络安全工程师,负责若干服务器的渗透测试与安全防护,这些服务器可能存在着各种问题和漏洞。你需要尽快对这些服务器进行渗透测试与安全防护。每个参赛队拥有专属的堡垒机服务器,其他队不能访问。参赛选手通过扫描、渗透测试等手段检测自己堡垒服务器中存在的安全缺陷,进行针对性加固,从而提升系统的安全防御性能。
请根据《赛场参数表》提供的信息,在客户端使用谷歌浏览器登录需要加固的堡垒服务器。
二、操作系统环境说明:
客户机操作系统:Windows 10/Windows7
堡垒服务器操作系统:Linux/Windows
三、漏洞情况说明:
1.堡垒服务器中的漏洞可能是常规漏洞也可能是系统漏洞;
2.堡垒服务器上的网站可能存在命令注入的漏洞,要求选手找到命令注入的相关漏洞,利用此漏洞获取一定权限;
3.堡垒服务器上的网站可能存在文件上传漏洞,要求选手找到文件上传的相关漏洞,利用此漏洞获取一定权限;
4.堡垒服务器上的网站可能存在文件包含漏洞,要求选手找到文件包含的相关漏洞,与别的漏洞相结合获取一定权限并进行提权;
5.操作系统提供的服务可能包含了远程代码执行的漏洞,要求用户找到远程代码执行的服务,并利用此漏洞获取系统权限;
6.操作系统提供的服务可能包含了缓冲区溢出漏洞,要求用户找到缓冲区溢出漏洞的服务,并利用此漏洞获取系统权限;
7.操作系统中可能存在一些系统后门,选手可以找到此后门,并利用预留的后门直接获取到系统权限。
四、注意事项:
1.每位选手需要对加固点和加固过程截图,并自行制作系统防御实施报告,最终评分以实施报告为准;
2.系统加固时需要保证堡垒服务器对外提供服务的可用性;
3.不能对裁判服务器进行攻击,警告一次后若继续攻击将判令该参赛队离场;
4.本环节不予补时。
二、说明:
1.所有截图要求截图界面、字体清晰;
2.文件名命名及保存:网络安全模块D-XX(XX为工位号),PDF格式保存;
3.文件保存到U盘提交。
相关文章:

2023年第十六届山东省职业院校技能大赛中职组“网络安全”赛项竞赛正式试题
第十六届山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题 目录 一、竞赛时间 二、竞赛阶段 三、竞赛任务书内容 (一)拓扑图 (二)A模块基础设施设置/安全加固(200分) (三…...
JAVA 整合 AWS S3(Amazon Simple Storage Service)文件上传,分片上传,删除,下载
依赖 因为aws需要发送请求上传、下载等api,所以需要加上httpclient相关的依赖 <dependency><groupId>com.amazonaws</groupId><artifactId>aws-java-sdk-s3</artifactId><version>1.11.628</version> </dependency&…...

记录:Unity脚本的编写9.0
目录 射线一些准备工作编写代码 突然发现好像没有写过关于射线的内容,我就说怎么总感觉好像少了什么东西(心虚 那就在这里写一下关于射线的内容吧,将在这里实现射线检测鼠标点击的功能 射线 射线是一种在Unity中检测碰撞器或触发器的方法&am…...

共享单车停放(简单的struct结构运用)
本来不想写这题的,但是想想最近沉迷玩雨世界,班长又问我这题,就草草写了一下 代码如下: #include<stdio.h> #include<math.h> struct parking{int distance;int remain;int speed;int time;int jud; }parking[50]; …...

【Java8系列07】Java8日期处理
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

为什么做CSGO搬砖的不直接去炒股呢?
首先,CS2并非只有一个交易平台,阿阳个人觉得像IGXE等交易平台一样是交易,况且我记得很早的时候我就开始用IGXE了,我记得最早的时候还是机器人发货,后来因为V社对于很多开箱网站的管控,所以让这种发货的方式…...

12月01日,每日信息差//阿里国际发布3款AI设计生态工具//美团买菜升级为“小象超市”//外国人永居证换新、6国游客免签来华
_灵感 🎖 阿里国际发布3款AI设计生态工具 🎄 AITO问界系列11月交付新车18827辆 🌍 美团买菜升级为“小象超市” 🌋 全球首个金融风控大模型国际标准出炉,由腾讯牵头制定 🎁 支付宝:支持外国人…...

ChatGPT探索:提示工程详解—程序员效率提升必备技能【文末送书】
文章目录 一.人工智能-ChatGPT1.1 ChatGPT简介1.2 ChatGPT探索:提示工程详解1.2 提示工程的优势 二.提示工程探索2.1 提示工程实例:2.2 英语学习助手2.3 Active-Prompt思维链(CoT)方法2.4 提示工程总结 三.文末推荐与福利3.1《Cha…...

Pytest做性能测试?
Pytest其实也是可以做性能测试或者基准测试的。是非常方便的。 可以考虑使用Pytest-benchmark类库进行。 安装pytest-benchmark 首先,确保已经安装了pytest和pytest-benchmark插件。可以使用以下命令安装插件: pip install pytest pytest-benchmark …...
Swagger各版本访问地址
2.9.x 访问地址: http://ip:port/{context-path}/swagger-ui.html 3.0.x 访问地址: http://ip:port/{context-path}/swagger-ui/index.html 3.0集成knife4j 访问地址: http://ip:port/{context-path}/doc.html...

docker-compose;私有镜像仓库harbor搭建;镜像推送到私有仓库harbor
docker-compose;私有镜像仓库harbor搭建;镜像推送到私有仓库harbor 文章目录 docker-compose;私有镜像仓库harbor搭建;镜像推送到私有仓库harbordocker-compose私有镜像仓库harbor搭建镜像推送到私有仓库harbor docker-compose D…...

OpenTSDB(CVE-202035476)漏洞复现及利用
任务一: 复现环境中的命令注入漏洞。 任务二: 利用命令注入执行whoami,使用DNS外带技术获取结果 任务三:使用反弹shell,将漏洞环境中的shell反弹到宿主机或者vps服务器。 任务一: 1.搭建好环境 2.先去了…...

Maven无法拉取依赖/构建失败操作步骤(基本都能解决)
首先检查配置文件,确认配置文件没有问题(也可以直接用同事的配置文件(记得修改文件里的本地仓库地址)) 1.file->Invalidate Caches清除缓存重启(简单粗暴,但最有效) 2.刷新maven以及mvn clean,多刷几次,看看还有没有报红的依赖…...

【数据库】数据库并发控制的目标,可串行化序列的分析,并发控制调度器模型
数据库并发控制 专栏内容: 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更…...

带头结点的双向循环链表
目录 带头结点的双向循环链表 1.存储定义 2.结点的创建 3.结点的初始化 4.尾插结点 5.尾删结点 6.头插结点 7.头删结点 8.查找并返回结点 9.在pos结点前插入结点 10.删除pos结点 11.打印链表 12.销毁链表 13.头插结点2.0版 14.尾插结点2.0版 前言: 当…...
2023年11月下旬大模型新动向集锦
2023年11月下旬大模型新动向集锦 2023.12.1版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 1、微软将向中国大陆开放Windows Copilot服务 据微软发布的消息,微软将在 2023 年 12 月 1 日面向中国大陆的企业和教育机构推出 We…...

有IP没有域名可以申请证书吗?
一、IP证书是什么? ip证书是用于公网ip地址的SSL证书,与我们通常所讲的SSL证书并无本质上的区别,但由于SSL证书通常颁发给域名,而组织机构需要公共ip地址的SSL证书,这类SSL证书就是我们所说的ip证书。ip证书具有安全、…...

【软件推荐】卸载360软件geek;护眼软件flux;
卸载360软件geek f.lux: software to make your life better (justgetflux.com) 卸载完扫描残留 护眼软件 hf.lux: software to make your life better (justgetflux.com)https://justgetflux.com/https://justgetflux.com/...

Module build failed: Error: ENOENT: no such file or directory
前言 这个错误通常发生在Node.js 和 vue,js项目中,当你试图访问一个不存在的文件或目录时。在大多数情况下,这是因为你的代码试图打开一个不存在的文件,或者你的构建系统(例如Webpack)需要一个配置文件,但找…...
Postgresql BatchInsert唯一键冲突及解决
Postgresql BatchInsert唯一键冲突及解决 当有唯一键冲突时,批量插入可能会报错; insert into tableA(sno,name,age,emp) values(),(),(); 会报错 insert into tableA(sno,name,age,emp) values(),(),() on conflict on contraint tableA_unique_key do …...

Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
OD 算法题 B卷【正整数到Excel编号之间的转换】
文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的:a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
基于Java项目的Karate API测试
Karate 实现了可以只编写Feature 文件进行测试,但是对于熟悉Java语言的开发或是测试人员,可以通过编程方式集成 Karate 丰富的自动化和数据断言功能。 本篇快速介绍在Java Maven项目中编写和运行测试的示例。 创建Maven项目 最简单的创建项目的方式就是创建一个目录,里面…...