Suricata 3规则介绍、以及使用
- 列出更新源列表(有好多个规则源,后面有介绍的)
suricata-update list-sourcesName: sslbl/ja3-fingerprintsVendor: Abuse.chSummary: Abuse.ch Suricata JA3 Fingerprint RulesetLicense: CC0-1.0
Name: malsilo/win-malwareVendor: malsiloSummary: Commodity malware rulesLicense: MIT
Name: abuse.ch/sslbl-c2Vendor: Abuse.chSummary: Abuse.ch Suricata Botnet C2 IP RulesetLicense: CC0-1.0
Name: ptresearch/attackdetectionVendor: Positive TechnologiesSummary: Positive Technologies Attack Detection Team rulesetLicense: Custom
- 启用某个规则集,如启动ptresearch/attackdetection的规则集
suricata-update enable-source ptresearch/attackdetection
- 再次更新我们的规则集
suricata-update
- 列出我们使用的规则源
suricata-update list-enabled-sources
默认情况没有开启的规则
21/5/2025 -- 10:30:27 - <Warning> -- No enabled sources.
配置
[root@nginx-ser rules]# suricata-update enable-source et/open
21/5/2025 -- 10:32:44 - <Info> -- Using data-directory /var/lib/suricata.
21/5/2025 -- 10:32:44 - <Info> -- Using Suricata configuration /etc/suricata/suricata.yaml
21/5/2025 -- 10:32:44 - <Info> -- Using /etc/suricata/rules for Suricata provided rules.
21/5/2025 -- 10:32:44 - <Info> -- Found Suricata version 4.1.10 at /usr/sbin/suricata.
21/5/2025 -- 10:32:44 - <Info> -- Creating directory /var/lib/suricata/update/sources
21/5/2025 -- 10:32:44 - <Info> -- Source et/open enabled
[root@nginx-ser rules]# suricata-update enable-source ptresearch/attackdetection
21/5/2025 -- 10:32:56 - <Info> -- Using data-directory /var/lib/suricata.
21/5/2025 -- 10:32:56 - <Info> -- Using Suricata configuration /etc/suricata/suricata.yaml
21/5/2025 -- 10:32:56 - <Info> -- Using /etc/suricata/rules for Suricata provided rules.
21/5/2025 -- 10:32:56 - <Info> -- Found Suricata version 4.1.10 at /usr/sbin/suricata.
21/5/2025 -- 10:32:56 - <Info> -- Source ptresearch/attackdetection enabled
[root@nginx-ser rules]# suricata-update list-enabled-sources
21/5/2025 -- 10:33:03 - <Info> -- Using data-directory /var/lib/suricata.
21/5/2025 -- 10:33:03 - <Info> -- Using Suricata configuration /etc/suricata/suricata.yaml
21/5/2025 -- 10:33:03 - <Info> -- Using /etc/suricata/rules for Suricata provided rules.
21/5/2025 -- 10:33:03 - <Info> -- Found Suricata version 4.1.10 at /usr/sbin/suricata.
Enabled sources:- et/open- ptresearch/attackdetection
- 关闭某个规则源
suricata-update disable-source et/pro
- 删除某个规则源
suricata-update remove-source et/pro
使用Suricata-update更新规则时,默认是将所有规则合并在一个规则文件中:/var/lib/suricata/rules/suricata.rules
Suricata-update有个 --no-merge参数,使用这个参数更新规则,规则不会进行合并,是以独立的文件存在于文件夹下。但是在管理规则的时候很不方便,必须要自己管理Suricata引入的规则。但是在禁用规则的时候,也可以使用suricata-update去配置disable.conf禁用的规则。不推荐使用 --no-merge参数更新规则。
指定一个文件让suricata-update合并输出会更简单。在suricata.yaml中修改default-rule-path和rule-files。
要禁用规则,在/etc/suricata目录下新建disable.conf,配置文件中写入规则特征,每次更新会禁用该规则。
参考Suricata-update的官方文档,disable.conf中支持三种规则特征:
第一种是sid,第二种是正则表达式,第三种是规则组名。
配置好disable.conf后,使用如下命令更新规则:
suricata-update --disable-conf /etc/suricata/disable.conf
先简单了解了下Suricata默认ET规则每个规则的作用,后续再根据公司自身的情况,对规则做梳理、剔除和编写。
使用suricata-update管理规则很方便。我目前使用的规则源如下:
首先来关注一下 /etc/suricata
下的几个配置文件:
-
classification.config
用于定义和分类不同类型的网络事件,比如哪些是潜在的攻击、哪些是正常的网络活动等。 -
reference.config
包含了一些安全网站,漏洞平台的URL网址,用来联系外部的恶意攻击检测网站。 -
suricata.yaml
是Suricata的主要配置文件,它包含了规则配置、接口配置、日志配置、检测配置等。 -
threshold.config
用于定义流量的阈值和速率限制。设置在特定时间内对特定事件或签名的触发次数进行限制。 -
rules/
规则目录,存放不同种类的规则文件 *.rules,规则用来判定流量攻击类型,并定义攻击类型和告警种类等。
Suricata的规则#
在 rules/ 目录下存放的各种 *.rules 文件可以包含一个或多个用于检测不同类型威胁的规则,同样采用 Snort 的规则格式。
一个规则主要由以下三个部分组成:
-
action 决定当规则匹配时的处理动作
-
header 定义协议,IP地址,端口和规则的方向
-
rule options 定义规则的细节
在上图中,红色部分为action,绿色部分为header,蓝色部分为rule options。
action主要有这个:
-
alert 生成一个告警
-
pass 停止对包的进一步检查,并跳到所有规则的末尾
-
drop 丢弃数据包并产生告警
-
reject 向匹配报文的发送端发送RST/ICMP不可抵达错误
在IPS模式下,使用任何拒绝动作也会启用drop。
header部分定义协议,IP地址,端口和规则的方向:
-
注明协议种类,只要是tcp、udp、icmp、ip等
-
Any:源地址/目的地址(IP)
-
Any:源端口/目的端口
-
->:方向,单向流量;<>双向流量
-
Any:源地址/目的地址(IP)
-
Any:源端口/目的端口
-
rule options定义规则的细节:
rule options定义规则的细节:
-
msg:警报消息,当规则匹配时输出的消息
-
flow:流量匹配选项,指定规则匹配的流量特征,如是否已建立等
-
content:规则匹配的内容
-
classtype:规则的分类类型,由 classification.config 文件定义
-
sid:用于唯一性规则标识
-
rev:规则版本号
比如 rules/app-layer-events.rules 中的一条规则示例:
alert ip any any -> any any (msg:"SURICATA Applayer Mismatch protocol both directions"; flow:established; app-layer-event:applayer_mismatch_protocol_both_directions; flowint:applayer.anomaly.count,+,1; classtype:protocol-command-decode; sid:2260000; rev:1;)
-
alert
这是规则的开始,表示如果匹配此规则,Suricata将生成一个警报。 -
ip any any -> any any
这表示规则适用于任何流量,不限制源IP和目的IP。 -
msg:"SURICATA Applayer Mismatch protocol both directions"
这是当规则触发时显示的消息。 -
flow:established
这个条件指定规则只应用于已建立的流,即那些已经完成了TCP三向握手的连接。 -
app-layer-event:applayer_mismatch_protocol_both_directions
指定了应用层事件,即应用层协议不匹配的情况。 -
flowint:applayer.anomaly.count,+,1
这是一个流量计数器,每当规则触发时,对流内的应用层异常计数器进行递增操作。 -
classtype:protocol-command-decode
指定了事件的分类类型,即协议命令解码。 -
sid:2260000
规则的唯一标识符Signature ID。 -
rev:1
这是规则的版本号,区分同一规则的不同版本。
使用Suricata-Update规则管理工具,可以看到可用的规则源,该工具中有七个规则源,如下图所示:
[root@nginx-ser rules]# suricata-update list sources
usage: suricata-update [-h] <command> ...
suricata-update: error: argument <command>: invalid choice: 'list' (choose from 'update', 'list-sources', 'list-enabled-sources', 'add-source', 'update-sources', 'enable-source', 'disable-source', 'remove-source')
[root@nginx-ser rules]# suricata-update list-sources
21/5/2025 -- 10:07:56 - <Info> -- Using data-directory /var/lib/suricata.
21/5/2025 -- 10:07:56 - <Info> -- Using Suricata configuration /etc/suricata/suricata.yaml
21/5/2025 -- 10:07:56 - <Info> -- Using /etc/suricata/rules for Suricata provided rules.
21/5/2025 -- 10:07:56 - <Info> -- Found Suricata version 4.1.10 at /usr/sbin/suricata.
21/5/2025 -- 10:07:56 - <Info> -- No source index found, running update-sources
21/5/2025 -- 10:07:56 - <Info> -- Downloading https://www.openinfosecfoundation.org/rules/index.yaml
21/5/2025 -- 10:07:58 - <Info> -- Saved /var/lib/suricata/update/cache/index.yaml
Name: sslbl/ja3-fingerprintsVendor: Abuse.chSummary: Abuse.ch Suricata JA3 Fingerprint RulesetLicense: CC0-1.0
Name: malsilo/win-malwareVendor: malsiloSummary: Commodity malware rulesLicense: MIT
Name: abuse.ch/sslbl-c2Vendor: Abuse.chSummary: Abuse.ch Suricata Botnet C2 IP RulesetLicense: CC0-1.0
Name: stamus/nrd-phishing-30-openVendor: Stamus NetworksSummary: Newly Registered Domains Open only - 30 day list, phishingLicense: CommercialParameters: secret-codeSubscription: https://www.stamus-networks.com/stamus-labs/subscribe-to-threat-intel-feed
Name: abuse.ch/feodotrackerVendor: Abuse.chSummary: Abuse.ch Feodo Tracker Botnet C2 IP rulesetLicense: CC0-1.0
Name: scwx/malwareVendor: SecureworksSummary: Secureworks suricata-malware rulesetLicense: CommercialParameters: secret-codeSubscription: https://www.secureworks.com/contact/ (Please reference CTU Countermeasures)
Name: abuse.ch/sslbl-blacklistVendor: Abuse.chSummary: Abuse.ch SSL BlacklistLicense: CC0-1.0Replaces: sslbl/ssl-fp-blacklist
Name: et/proVendor: ProofpointSummary: Emerging Threats Pro RulesetLicense: CommercialReplaces: et/open
我们能看到好多个规则源。
网上能找到的Suricata规则很多,列举几个
- https://github.com/jasonish/suricata-trafficid/blob/master/rules/traffic-id.rules
- https://sslbl.abuse.ch/blacklist/sslblacklist.rule
- https://github.com/ptresearch/AttackDetection
- https://rules.emergingthreats.net/open/suricata/rules/
第一个是Suricata作者写的一个规则生成的脚本,生成用于应用和服务识别的规则。没用过,后面研究一下。
第二个是瑞士的非盈利组织abuse.ch维护的项目。他们维护的这个黑名单是标识恶意软件与僵尸网络相关的。他们提供了一个Suricata的规则,可以根据黑名单检测网络中的恶意连接。
第三个PT的Suricata规则库,根据恶意软件、黑客的网络通讯协议以及漏洞的poc去编写,感觉挺不错的,最主要的是,规则库更新的很快。
第四个我们就比较熟悉了,是Emerging Threats维护的规则,我们一般常用的就是这个规则库。很强大的规则库,规则数量有20000+。
ET规则集
研究下ET规则的每条规则的作用,官方的规则解释的链接为:
app-layer-events.rules 针对应用协议的规则
botcc.portgrouped.rules botcc.rules
这些是已知和确认的活动僵尸网络和其C&C(command and control)服务器。由一些组织生成。每天更新。
ciarmy.rules
封锁被ciArmy.com标记出来的Top Attackers(ciArmy.com是个威胁数据库,对全球的任意ip地址提供准确的及时的评分)。定期更新。
compromised.rules 这是一个已知的受影响的主机列表。每天更新。
decoder-events.rules 解码器事件,里面包含了对解码器解码所产生的事件,比如包无效、包过大、过小等
dnp3-events.rules 包含对dnp3(分布式网络协议)的一些规则,不多,只有几条
dns-events.rules 包含对dns协议的一些规则,比如dnsflooded事件等,不多,只有几条
drop.rules 每天更新的Spamhaus DROP(Don't Route or Peer)列表,列出了著名的、专业的垃圾邮件发送者。每天更新。
dshield.rules 每天更新的DShield top attackers。十分可靠。
emerging-activex.rules 主要用来检测与ActiveX控件有关的攻击
emerging-attack_response.rules
这些规则是为了捕获成功攻击的结果,诸如“id=root”之类的东西,或者表示可能发生妥协的错误消息(即虽然产生了错误消息,但是攻击已经成功)。注意:木马和病毒感染后的活动一般在VIRUS规则集里,不是在这个规则集里。
emerging-chat.rules
主要检测聊天软件、即时通讯软件的攻击,大部分是国外的一些软件,比如facebook,雅虎,msn
emerging-current_events.rules
这些规则是不打算在规则集中长期保存的,或者是考虑纳入之前需要进行测试的规则。大多数情况下,这些都是针对当天的大量二进制URL的简单sigs,用来捕获CLSID新发现的易受攻击的应用程序,我们没有这些漏洞的任何细节。这些sigs很有用,却不是长期有效的。
emerging-deleted.rules
里面都是被注释掉的规则,可能删除后的规则放在这里
emerging-dns.rules
检测dns协议相关的攻击
emerging-dos.rules
目的是捕获入站的DOS(拒绝服务)活动和出站指示。
emerging-exploit.rules
用来检测exp的规则。一般来说,如果你正在找windows的exp,在这个规则里可以找到。就像sql注入一样,exploits有着自己的体系。
总之就是用来检测exploits漏洞的。
emerging-ftp.rules
检测ftp协议相关的攻击
emerging-games.rules
魔兽世界、星际争霸和其他流行的在线游戏都在这里。我们不打算把这些东西贴上邪恶的标签,只是它们不适合所有的攻击环境,所以将它们放在了这里。
emerging-icmp_info.rules emerging-icmp.rules
检测与icmp协议相关的攻击
emerging-imap.rules
检测与imap相关的攻击
emerging-inappropriate.rules
色情、儿童色情,你不应该在工作中访问的网站等等。WARNING:这些都大量使用了正则表达式,因此存在高负荷和频繁的误报问题。只有当你真正对这些规则感兴趣时才去运行这些规则。
emerging-info.rules
看了一些规则后,似乎是检测与信息泄露、信息盗取等事件的规则,里面会检测后门、特洛伊木马等与info相关的攻击
emerging-malware.rules
这一套最初只是间谍软件,这就足够了。间谍软件和恶意软件之间的界限已经很模糊了。这里不仅仅是间谍软件,但是请放心,这里没有任何东西是你想在自己的网络或者PC上运行的。已知的更新模式、已知的恶意软件的UserAgent字符串和大量的其它有用的东西。如果你只准备运行一个规则集来保证安全性,这个规则集是首选。
emerging-misc.rules
检测混杂的攻击,这种攻击一般没有确切的分类,或者使用了多种技术
emerging-mobile_malware.rules
检测移动设备上的恶意软件
emerging-netbios.rules
检测与netbios协议有关的攻击
emerging-p2p.rules
P2P(Peer to Peer)之类的。我们并不想将它定义为有害的,只是不适合出现在IPS/IDS的网络环境中。
emerging-policy.rules
对于经常被公司或组织政策禁止的事务的规则。Myspace、Ebay之类的东西。
emerging-pop3.rules
检测与pop3协议有关的攻击
emerging-rpc.rules
检测与rpc(远程过程调用协议)有关的攻击
emerging-scada.rules
检测与SCADA(数据采集与监控系统)相关的攻击
emerging-scan.rules
检测探测行为。Nessus,Nikto,端口扫描等这样的活动。这是攻击前准备时期的警告。
emerging-shellcode.rules
检测shellcode,shellcode是一段用于利用软件漏洞而执行的代码,以其经常让攻击者获得shell而得名。
emerging-smtp.rules
检测与smtp协议相关的攻击
emerging-snmp.rules
测与snmp协议相关的攻击
emerging-sql.rules
这是一个巨大的规则集,用于捕获在特殊应用程序上的特殊攻击。这里面有一些普遍的SQL注入攻击规则,效果很好,可以捕获大多数攻击。
但是这些规则根据不同的app和不同的web服务器,有很大的差别。如果你需要运行非常严格的web服务或者很重视信息的安全性,请使用这个规则集。
emerging-telnet.rules
检测与telnet协议相关的攻击,例如暴力破解等
emerging-tftp.rules
检测与tftp协议相关的攻击
emerging-trojan.rules
检测trojan木马
emerging-user_agents.rules
检测异常的user-agents
emerging-voip.rules
检测voip相关的异常,它是一个新兴的规则集,目前还很小,但是我们预计它很快就会增长。
emerging-web_client.rules
检测web客户端的攻击
emerging-web_server.rules
检测web服务端的攻击
emerging-web_specific_apps.rules
检测相关应用组件的漏洞(CVE)
emerging-worm.rules
检测蠕虫
http-events.rules
http事件规则
modbus-events.rules
检测modbus事件
rbn-malvertisers.rules rbn.rules
Rbn的规则,该规则已经过时了,可忽略。
smtp-events.rules
检测smtp事件
stream-events.rules
检测stream事件
tls-events.rules
检测tls事件
tor.rules
检测使用tor进行匿名通信的流量,tor本身没有威胁,但却是很可疑的行为
相关文章:
Suricata 3规则介绍、以及使用
列出更新源列表(有好多个规则源,后面有介绍的) suricata-update list-sourcesName: sslbl/ja3-fingerprintsVendor: Abuse.chSummary: Abuse.ch Suricata JA3 Fingerprint RulesetLicense: CC0-1.0 Name: malsilo/win-malwareVendor: malsil…...
基于OpenCV的物体跟踪:CSRT算法
文章目录 引言一、系统概述二、CSRT算法简介三、核心代码解析1. 初始化跟踪器和摄像头2. 主循环结构3. 目标选择与跟踪初始化4. 目标跟踪与结果显示5. 资源释放 四、系统使用说明五、完整代码六、总结 引言 目标跟踪是计算机视觉领域的重要应用之一,广泛应用于视频…...
面向未来,遨游推出5G-A智能防爆对讲机等系列终端
从5G扬帆到5G-A启航,遨游通讯始终立于技术潮头。在通信技术加速向5G-A演进的关键节点,遨游通讯旗舰产品AORO M6 Pro智能防爆对讲机,不仅实现了芯片到系统架构的全面自主可控,更通过5G-A技术的高速率、低时延、广连接与通感一体能力…...
qt浏览文件支持惯性
#include <QApplication> #include <QListWidget> #include <QScroller> #include <QScrollerProperties>int main(int argc, char *argv[]) {QApplication app(argc, argv);// 创建列表控件并添加示例项QListWidget listWidget;for (int i 0; i <…...
算子窗口操作
抠图 (提取图像感兴趣的区域) * 使用halcon 抠图* 窗体属性设设置: 设置窗体绘制图案的模式 magrin边框模式(只有一个边框) * fill填充模式(边框内部会有一个遮罩层) dev_set_draw (fill)* 设置颜色 dev_set_color (green) * 设置线宽dev_set_line_width (5)read_image (Im…...
如何提灯验车
✅ 重点 车标倾斜特别严重 导航定位不准 发动机顿挫异响 自动门把手关闭时异响 底盘有划痕和主驾位与扶手箱位置间隙过小磨损 蓝牙钥匙解锁异常,开关解锁不灵敏 空调无法制冷 灯罩有划痕 开启大灯就有嗡嗡嗡的异响 ✅ 一、文件与证件检…...
人工智能在生物医学研究中的创新应用
随着人工智能(AI)技术的飞速发展,其在生物医学领域的应用逐渐成为研究热点。AI不仅为生物医学研究提供了强大的工具,还在疾病诊断、药物研发、基因编辑等方面展现出巨大的潜力。本文将探讨人工智能在生物医学研究中的创新应用&…...
迁移学习实战:用预训练模型解决小样本图像分类
🚀 迁移学习实战:用预训练模型解决小样本图像分类(PyTorch实现) 当我们没有成千上万的训练样本时,如何训练一个表现良好的图像分类模型?答案是——迁移学习。本篇将带你用 PyTorch 快速上手迁移学习,用预训练模型(如 ResNet18)解决小样本分类问题。 🧠 一、什么是迁…...
html,js获取扫码设备的输入内容
<script type"text/javascript"><!-- window.onload function () {// 获取扫描的二维码内容 var code ""; var lastTime, nextTime; var lastCode, nextCode; document.onkeypress function (e) { nextCode e.which; ne…...
项目执行中缺乏风险管理,如何预防潜在问题?
要预防潜在问题,必须在项目执行中融入建立全面的风险识别机制、制定应对策略、实施动态监控、强化团队风险意识、定期评估与复盘。其中,建立全面的风险识别机制至关重要。项目初期若未进行系统性的风险识别,就很难在项目过程中及时应对变化&a…...
树形展示三级分类数据
vue3 实现多级分类_产品设计 平台端添加多个二级三级分类的页面-CSDN博客...
大模型如何助力数学可视化?
大家好,我是 i 学习的老章 在数学学习和教学中,将抽象概念可视化对于理解至关重要。Manim 是一个强大的数学动画引擎,由著名数学科普视频作者 3Blue1Brown 开发并广为人知。 老章较早之前就介绍过 manim:B 站上爆红的数学视频&a…...
什么是endpoints?
在 Kubernetes 中,Endpoints 是一个资源对象,它表示服务(Service)到 Pod 的网络连接。 Endpoints 的主要作用是将服务的虚拟 IP 地址映射到实际的 Pod IP 地址,从而实现服务发现和负载均衡。 1.Endpoints 的作用 服务…...
基于 Redis 实现短信验证码登录功能的完整方案
🧱 一、技术栈与依赖配置 使用 Spring Boot Redis 实现短信验证码登录,以下是推荐的 Maven 依赖: <dependencies><!-- Spring Boot Web --><dependency><groupId>org.springframework.boot</groupId><ar…...
监控易一体化运维:拥有全部核心技术,助力国产化信创运维
在数字化转型浪潮与信创产业蓬勃发展的当下,企业对运维系统的要求愈发严苛。随着数字化领域的巨大变迁,一款强大且适配信创环境的运维系统对企业的重要性不言而喻。今天,让我们一同深度剖析监控易系统在信创领域展现出的卓越优势。 信创产业&…...
微 PE , USM 魔术师两款 PE 对比
微 PE 和 USM 魔术师两款 PE 各有特点: 纯净度 微 PE:没有植入强制性、商业性软件和链接,也没有病毒和木马,非常纯净。USM 魔术师:同样无广告、无流氓、无捆绑、无后门,从官方途径下载能保证纯净度。 功能…...
测试模版1
本篇技术博文摘要 🌟 引言 📘 在这个变幻莫测、快速发展的技术时代,与时俱进是每个IT工程师的必修课。我是盛透侧视攻城狮,一名什么都会一丢丢的网络安全工程师,也是众多技术社区的活跃成员以及多家大厂官方认可人员&a…...
elementUI 中el-date-picker和el-select的样式调整
1. el-date-picker <el-date-picker class"select1" size"small" v-model"timeRangeArr" type"daterange" align"right" unlink-panels range-separator"至" start-placeholder"开始日期" end-pla…...
基于亚马逊云科技构建音视频直播审核方案
1. 前言 随着互联网内容形态的多样化发展,用户生成内容(UGC)呈现爆发式增长。社交平台、直播、短视频、语聊房等应用场景中,海量的音视频内容需要进行实时审核,以维护平台安全与用户体验。 然而,企业在构…...
Vue3 组件之间传值
在 Vue3 中,组件之间的数据传递主要有以下几种方式,适用于不同的场景: 一、父组件向子组件传值:props 1. 子组件定义 props <!-- ChildComponent.vue --> <script setup> // 组合式 API(推荐)…...
深入理解用于中断控制的 NVIC 寄存器
NVIC 中有多个用于中断控制的寄存器(异常类型 16~255),这些寄存器位于系统控制空间(SCS)地址区域。下表是这些寄存器的概览: 除了软件触发寄存器(STIR)外,所有这些寄存器…...
Podman(Pod Manager)简介
Podman 简介 Podman(Pod Manager)是一个开源的容器管理工具,由红帽(Red Hat)开发,用于替代 Docker,支持运行、管理 OCI(Open Container Initiative)容器和容器镜像。它设…...
HarmonyOS NEXT端云一体化工程目录结构
视频课程学习报名入口:HarmonyOS NEXT端云一体化开发 端云一体化开发工程由端开发工程(Application)和云开发工程(CloudProgram)两大核心模块构成。 1)端开发工程目录结构 端开发工程主要用于开发应用端侧的业务代码,通用云开发模板的端开发工程目录结构如下图所示: …...
【C++ 真题】P1075 [NOIP 2012 普及组] 质因数分解
P1075 [NOIP 2012 普及组] 质因数分解 题目描述 已知正整数 n n n 是两个不同的质数的乘积,试求出两者中较大的那个质数。 输入格式 输入一个正整数 n n n。 输出格式 输出一个正整数 p p p,即较大的那个质数。 输入输出样例 #1 输入 #1 21输…...
力扣热题100,力扣148.排序链表力扣.26找出字符串中第一个匹配项的下标力扣146.LRU缓存序列管理器
目录 力扣148.排序链表 力扣.26找出字符串中第一个匹配项的下标 力扣146.LRU缓存 序列管理器 力扣148.排序链表 那个O1,暂时我没有考虑,但是这个nlogn,我就想什么时候会有log呢,应该是2的次幂方向思考,一说2,是否能想到2分呢&…...
防火墙高可靠性
防火墙高可靠性技术概述 防火墙高可靠性技术分为两类:设备高可靠性和链路高可靠性 防火墙双机热备 双机热备概述及相关协议 HRP协议:即Huawei Redundancy Protocol,主要用于实现防火墙双机之间关键配置命令和状态化信息的备份,…...
C++ stack对象创建、入栈、获取栈顶
stack对象创建直接调用C对应的<stack>,进行创建 #include<iostream> #include<stack>using namespace std;int main() {// 1 默认构造函数stack<int> stk1;// 2 拷贝构造函数stack<int> stk2;stk1 stk2;return 0;} 入栈操作有一条…...
x-cmd install | Pillager:Go 语言打造的敏感信息文件系统扫描利器
目录 Pillager 的独特优势安装Pillager 的应用场景Pillager 的核心功能 还在为文件系统中潜在的敏感信息泄露而担忧吗?Pillager 是一款由 Go 语言编写的强大工具,旨在帮助你轻松扫描文件系统,发现隐藏的密钥、密码、API 令牌等敏感信息。 Pil…...
第9.1讲、Tiny Encoder Transformer:极简文本分类与注意力可视化实战
项目简介 本项目实现了一个极简版的 Transformer Encoder 文本分类器,并通过 Streamlit 提供了交互式可视化界面。用户可以输入任意文本,实时查看模型的分类结果及注意力权重热力图,直观理解 Transformer 的内部机制。项目采用 HuggingFace …...
asp.net web form nlog的安装
一、安装NuGet包 核心包安装 NLog提供日志记录核心功能 NLog.Config自动生成默认配置文件模板 配置NLog文件 配置文件创建 项目根目录自动生成NLog.config文件(通过NuGet安装NLog.Config时创建) <?xml version"1.0" encoding&…...
定时器的两种实现方式
1、基于优先级队列/堆 队列是先进先出,优先级队列是优先级越高就存放在队列之前,我们可以将过期时间越早设置为优先级越高,那么临近过期时间的任务就会在队列前面,距离过期时间越晚的任务就在队列后面。 可以分配一个线程&#…...
2025.05.21华为暑期实习机考真题解析第一题
📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 01. 智能云任务分发系统 问题描述 卢小姐负责一家云计算公司的任务分发系统开发。该系统需要根据任务优先级和到达顺序进行智能调度,支持以下两种操作: 添加任务 add task_id pri…...
计算机网络-MPLS VPN报文转发
上一章学习了MPSL VPN的路由交互过程,VPN间学习到路由之后可以进行报文的转发了。 一、MPLS VPN报文转发过程 以图中用户X的站点B访问站点A的192.168.1.0/24网段为例,报文转发过程如下: 1.CE3上存在到192.168.1.0/24网段路由,发…...
关于sql 查询性能优化的小经验
最近接到一些sql优化的任务。数据库类型:DB2 有一个长sql查询效率低,大概要几十秒,大概查询逻辑如下: select * from tableA a where exists (select 1 from tableB b where a.idb.id ) or exists (select 1 from tableC c whe…...
Pandas:数据分析步骤、分组函数groupby和基础画图
本文目录: 一、概念(一)数据分析的基本步骤(二)两个属性:loc[行标签,列标签 ] 和 iloc[行索引位置,列索引位置 ]1.基本规则2.两属性的相同和不同对比 二、加载数据(一)按列加载数据&…...
游戏引擎学习第302天:使用精灵边界进行排序
在 game_render_group.cpp 中:正确计算 GetBoundFor() 里的 SpriteBound 值 我们正在进行游戏的排序问题调试。虽然这是一个二维游戏,但包含一些三维元素,因此排序变得比较复杂和棘手。混合二维和三维元素时,需要依赖一些比较主观…...
【完整版】基于laravel开发的开源交易所源码|BTC交易所/ETH交易所/交易所/交易平台/撮合交易引擎
功能说明 源码简介与安装环境说明: 开源交易所,基于laravel开发的交易所 | BTC交易所 | ETH交易所 | 交易所 | 交易平台 | 撮合交易引擎。本项目有完整的撮合交易引擎源码、后台管理(后端前端)、前台(交易页面、活动页…...
DeepSeek赋能智能家居:构建高智能、低延迟的物联网生态
一、DeepSeek技术架构解析 DeepSeek采用分层架构设计,兼容边缘计算与云端协同,核心模块包括: 1. 设备接入层 多协议适配:支持MQTT、CoAP、Zigbee、WiFi等主流协议,内置设备描述语言(DDL)解析器,可自动发现并注册新设备。数据预处理:对传感器数据(如温度、光照、加速…...
鸿蒙开发:应用上架第二篇,申请发布证书
前言 本文基于Api13 通过第一篇文章,我们拿到了密钥库.p12文件和证书请求csr文件,这两个文件都是非常重要的,一定要保存好,我们也基本知道了应用的打包,签名信息文件是必须的,而对于签名信息,也…...
Android Framework开发环境搭建
本文分享下在Windows和ubuntu系统搭建framework 开发环境的过程。 Window系统版本win11 一.在windows搭建android framework开发环境。 到下面网站下载android studio 。 developer.android.google.cn/studio?hlzh-cn 在as 的sdk manager 中安装SDK Platform和SDK Tools。 2…...
关于收集 Android Telephony 网络信息的设计思考
需求 收集service state change、ims fail 等相关无线移动网络状态的信息,并保存,对外提供数据查询、删除、更新的功能。 架构设计与实现建议 1. 架构设计建议 针对在 Android Telephony 数据模块中实现网络状态信息收集并调用 Provider App 存储的需求,建议采用 分层的…...
弱网服务器群到底有什么用
在当今数字化的时代,大家都在追求高速、稳定的网络体验,但你是否想过,弱网服务器群其实也有着不可小觑的作用。让我们来聊聊什么是弱网服务器群。简单来说,它是一组在网络条件相对较差情况下运行的服务器集合。 弱网服务器群组是一…...
如何提高独立服务器的安全性?
独立服务器相对于其它服务器来说,整体的硬件设备都是独立的同时还有着强大的服务器性能,其中CPU设备能够决定着服务器的运算能力,所以独立服务器的安全性受到企业格外的重视,严重的话会给企业造成巨大的资金损失。 那么࿰…...
ubuntu 搭建FTP服务,接收部标机历史音视频上报服务器
1.安装vsftpd 1.1.安装命令 sudo apt update sudo apt install vsftpd 1.2.备份原始配置文件 sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak 1.3.配置 vsftpd 编辑配置文件 /etc/vsftpd.conf: sudo vim /etc/vsftpd.conf 将以下参数修改为对应值ÿ…...
在离线 OpenEuler-22.03 服务器上升级 OpenSSH 的完整指南
当然可以!以下是一篇结构清晰、语言通俗易懂的技术博客草稿,供你参考和使用: 在离线 OpenEuler-22.03 服务器上升级 OpenSSH 的完整指南 背景介绍 最近在对一台内网的 OpenEuler-22.03 服务器进行安全扫描时,发现其 SSH 版本存在…...
用java实现内网通讯,可多开客户端链接同一个服务器
创建一个客户端:package Socket;import java.io.IOException; import java.io.OutputStream; import java.net.Socket; import java.nio.charset.StandardCharsets; import java.util.Scanner;/* 聊天案例客户端 */ public class Client {private Socket socket;/**…...
蓝耘服务器部署ppocr-gpu项目
一、存在的问题。 conda install 总是访问失败。 二、云服务器选择 三、安装Anaconda3 进入云服务器后删除minconda文件夹 官网: https://repo.anaconda.com/archive/ 在里面找到自己系统的安装包,然后右击复制链接安装。 一定要选择Anaconda,因为…...
离线服务器算法部署环境配置
本文将详细记录我如何为一台全新的离线服务器配置必要的运行环境,包括基础编译工具、NVIDIA显卡驱动以及NVIDIA-Docker,以便顺利部署深度学习算法。 前提条件: 目标离线服务器已安装操作系统(本文以Ubuntu 18.04为例)…...
现代人工智能系统的实用设计模式
关键要点 AI设计模式是为现代AI驱动的软件中常见问题提供的可复用解决方案,帮助团队避免重复造轮子。我们将其分为五类:提示与上下文(Prompting & Context)、负责任的AI(Responsible AI)、用户体验&…...
数据集下载并保存本地进行加载
一、huggingface 1、下载数据集 #数据集下载 from datasets import load_datasetds load_dataset("FreedomIntelligence/medical-o1-reasoning-SFT", "zh",cache_dir ./dir)输出测试 2、保存数据集 #数据保存 ds.save_to_disk("./local_datase…...