网络威胁情报 | Yara
Yara 是一个在威胁情报、数字取证和威胁猎取方面较为常用的语言。本文并非是Yara语言的教程,更多的是希望可以让大家知道这个语言的神奇之处及其在当今信息安全领域的重要性。
Yara 是什么?
“恶意软件研究人员(以及其他所有人)的模式匹配瑞士军刀”——VirusTotal
Yara 可以根据二进制和文本模式(如文件中的十六进制和字符串)来识别信息,而 Yara rules 用于标记这些模式。我们经常需要编写 Yara rules 来根据文件的特征或模式来判断文件是否具有恶意。
字符串是编程语言的基本组成部分,应用程序会使用字符串来存储文本等数据,恶意软件也不例外。比如下图所示,一些恶意软件会在字符串中存储数据,因此利用 Yara rules 识别出恶意软件成为可能。
第一条 Yara rule
Yara 编写 rules 的语言非常好上手,但是很难掌握,这是因为一个 rule 的有效性取决于你对要搜索的模式的掌握程度。
要想使用一个 Yara rule 进行分析,可以通过下面的命令:
yara [yara rule 文件] [文件、目录名字或进程ID]
下面是一个 Yara rule 的使用示例。
-
创建一个文件,名为 somefile,这个作为要被匹配的文件。
-
创建一个 Yara rule,名为 myfirstrule.yar,这个作为要使用的 Yara rule,具体内容如下所示:
rule examplerule {condition:true }
-
利用 Yara rule。得到如下结果,这结果表示模式匹配成功:
这一个 Yara rule 的“条件”是恒成立的,只要存在文件就会匹配成功。当然实际中并不会有这样简单的匹配,这一部分旨在展示 Yara rule 的结构。
走进 Yara rules
实际上除了“条件”,Yara rules 还拥有其他内容。整个 Yara rule 体可以被分为以下几个内容:
Meta
由该 rule 的作者编写的描述信息,比如作者信息、rule 的功能等。
Strings
前文讲到我们可以利用字符串或十六进制来匹配模式,比如现在我们想利用 Yara rule 搜索一个目录内的文件是否包含 “Hello, World!” 字符串,就可以这样编写:
rule helloworld_checker{strings:$hello_world = "Hello, World!"condition:$hello_world
}
上面的规则中,我们将 “Hello, World!” 这一字符串赋给 $hello_world 变量,并使该变量作为“条件”。若文件中存在该字符串,则匹配成功。
然而上面这条 rule 只限于匹配 “Hello, World!” 字符串,假如字符串发生变形,比如 “hello world” 或 “HELLO WORLD”,这条 rule 就无法匹配到了。为了解决这个问题,可以编写如下 rule:
rule helloworld_checker_v2{strings:$hello_world = "Hello, World!"$hello_world_uppercase = "HELLO WORLD"$hello_world_lowercase = "hello world"condition:any of them
}
在此处,“条件”为 any of them
,这表示只要匹配中其中某一条字符串就可以匹配成功。
Condition(条件)
前文使用过true
和any of them
条件,在实际使用中还有许多的“条件”表达,具体可以阅读Writing YARA rules。在本部分简单讲讲部分表达。
比较符
在“条件”中可以使用 <=、>=、!= 符号, 使用示例如下:
rule helloworld_checker_compare{strings:$hello_world = "Hello World!"condition:#hello_world <= 10
}
此处的 #hello_world
表示文件中出现$hello_world
字符串的次数,因此该 rule 会视$hello_world
字符串出现不多于10次的文件为匹配成功。
连接关键字
还可以使用
- and
- not
- or
来连接多条“条件”,示例如下:
rule helloworld_checker{strings:$hello_world = "Hello World!" condition:$hello_world and filesize < 10KB
}
该 rule 表示当两个“条件”都符合时,规则才会匹配。
关于 Yara rule 的概括,推上有个大佬画了一幅图做了介绍,非常清晰明了:
Yara 与其他模块合作
Cuckoo sandbox 和 Python的PE模块 可以帮助我们的 Yara rules 的效率大大提高。
Cuckoo sandbox
这是一个自动的恶意软件分析环境。由于该环境会执行恶意软件,因此可以根据软件运行时的字符串等特定行为来创建 Yara rule。
Python PE
Python 的 PE 模块用于解析Windows可执行文件(PE格式),并提取其结构信息。检查 PE 文件的内容是恶意软件分析中的一项基本技术,因为无需逆向或执行样本就可以在很大程度上识别出加密或蠕虫等行为。而Python 的 PE 模块提取出的内容也可以辅助构建 Yara rule。
Yara 工具
知晓 Yara rule的编写规范是很有用的,不过幸运的是,现在有大量的资源和开源工具可以让我们快速地利用 Yara 进行分析,而不需要我们从头开始编写一个新的 Yara rule。接下来就介绍几款工具。
LOKI
由 Florian Roth 创建和编写的免费开源 IOC(Indicator of Compromise,入侵指标) 扫描器。
链接:GitHub - Neo23x0/Loki: Loki - Simple IOC and YARA Scanner
该工具可以通过四种方法扫描到 IOC:
- 文件名
- Yara rules
- 哈希值
- C2 back connect
THOR
还是 Florian Roth编写的,用于多平台的 IOC 和 Yara 扫描器。
链接:THOR Lite: Free Multi-Platform IOC and YARA Scanner - Nextron Systems
社区版名为 Thor Lite;THOR 是面向企业客户的。
FENRIR
又是他,Florian Roth,编写的一个简单 IOC 扫描器 Bash 脚本。
链接:GitHub - Neo23x0/Fenrir: Simple Bash IOC Scanner
YAYA
YAYA是一个自动整理开源 Yara rules 并可以对文件进行扫描的工具。它能帮助研究人员管理多个 Yara rules 库。YAYA首先会导入一组高质量的 Yara rules,然后让研究人员添加自己的规则、禁用特定规则集,并可以对文件进行扫描。
链接:GitHub - EFForg/yaya: Yet Another Yara Automaton - Automatically curate open source yara rules and run scans
YarGen
YarGen 是一个 Yara rule 生成器,它的主要原理是根据恶意软件中的字符串创建规则,并同时删除所有出现在良性软件中出现的字符串,以降低误报率。
链接:YarGen
Yara 工具实操
在本节将使用到 LOKI 和 YarGen。
首先启动虚拟机环境,在~/suspicious-files
目录下有两个可疑文件,工具则放在了~/tools
目录下。
我们先使用LOKI工具,对第一个可疑文件进行分析,命令如下:
cmnatic@thm-yara:~/suspicious-files/file1$ python ../../tools/Loki/loki.py -p .
其中,-p
参数表示要扫描的路径。因为现在我们已在可疑文件的所在目录中,因此 .
就表示扫描当前目录。扫描结果如下:
从图中可以得出,LOKI 工具匹配上了webshell_metaslsoft
规则,认为该可疑文件是一个 Web Shell,并且可以知道该Web Shell的版本为b374k 2.2
现在,我们继续使用 LOKI 工具扫描第二个可疑文件,但是这次的结果有所不同:
LOKI 未匹配到规则,认为这是个良性文件,但事实如此吗?查看第二个可疑文件内部,发现这分明就是第一个可疑文件的变种:
显然,当前LOKI的默认规则库里并没有适配的规则,因此才放过了这条漏网之鱼。所以现在我们需要创建一个Yara rule来使其可以检测出这个 Web Shell。但是,遍历了一下这个文件,足足有4500多行,我们不可能一行行地去寻找字符串特征来编写规则。这时候,YarGen 工具派上用场。
通过输入如下命令,使 YarGen 生成对应的 Yara rule:
cmnatic@thm-yara:~/tools/yarGen$ python3 yarGen.py -m /home/cmnatic/suspicious-files/file2 --excludegood -o /home/cmnatic/suspicious-files/file2.yar
其中,-m
参数表示要被生成规则的文件的路径,--excludegood
参数表示排除所有出现在良性软件中的字符串,减少误报率,-o
参数表示生成的规则要存放的位置和名字。
这样,一个 Yara rule便生成成功,我们可以先验证一下它的可行性:
成功对应。接下来就把这个规则拷贝到LOKI工具的规则库中,并再次使用LOKI工具对该文件进行扫描。
匹配成功!
Valhalla
又双叒叕是 Florian Roth所做,该网站旨在“借助数千条手工制作的高质量 Yara rule的力量,提高您的侦测能力”。
链接:Valhalla
比如我们想在Valhalla上找一找是否已有针对上一部分中第二个恶意文件的 Yara rule,就可以先取该恶意文件的SHA 256哈希值,并进行搜索。
可以看到,Webshell_b374k_rule1
和Webshell_b374k_rule2
是更贴合这个恶意软件的,接下来我们可以通过它们的 Reference 和 ViralTotal 界面进行深入了解。
而在首页,输入了SHA256哈希值和API key(若没有提供会补充默认Key)之后,就可以点击“Get YARA Rules”按钮,这样就会自动下载对应的 Yara 规则。
小结
这一章节了解了 Yara,以及如何编写 Yara 规则,并且知道了一些 Yara 工具的使用以帮助我们进行恶意软件检测。现在可以了解到Yara的强大之处了!
相关文章:
网络威胁情报 | Yara
Yara 是一个在威胁情报、数字取证和威胁猎取方面较为常用的语言。本文并非是Yara语言的教程,更多的是希望可以让大家知道这个语言的神奇之处及其在当今信息安全领域的重要性。 Yara 是什么? “恶意软件研究人员(以及其他所有人)…...
12.QT-Combo Box|Spin Box|模拟点餐|从文件中加载选项|调整点餐份数(C++)
Combo Box QComboBox 表⽰下拉框 核⼼属性 属性说明currentText当前选中的⽂本currentIndex当前选中的条⽬下标.从0开始计算.如果当前没有条⽬被选中,值为-1editable是否允许修改设为true时, QComboBox 的⾏为就⾮常接近 QLineEdit ,也可以 设置 validatoriconSize下拉框图标…...
FTTR 全屋光纤架构分享
随着光纤网络技术的发展,FTTR 技术逐步普及到千家万户,为了战未来,从现在开始构建并铺设 FTTR 全屋光纤是非常有必要的。 在前期 FTTR 全屋光纤网络的载荷搭建,可以额定为千兆网络或者2.5GE光纤网络,万兆光网最大的成本…...
内网穿透快解析免费开放硬件集成SDK
一、行业问题 随着物联网技术的发展,符合用户需求的智能硬件设备被广泛的应用到各个领域,而智能设备的远程运维管理也是企业用户遇到的问题 二、快解析内网穿透解决方案 快解析是一款内网穿透产品,可以实现内网资源在外网访问,…...
实验八 版本控制
实验八 版本控制 一、实验目的 掌握Git基本命令的使用。 二、实验内容 1.理解版本控制工具的意义。 2.安装Windows和Linux下的git工具。 3.利用git bash结合常用Linux命令管理文件和目录。 4.利用git创建本地仓库并进行简单的版本控制实验。 三、主要实验步骤 1.下载并安…...
《马尼拉》桌游期望计算器
《马尼拉》桌游期望计算器:做出最明智的决策 注:本项目仍在开发验证中,计算结果可能不够准确,欢迎游戏爱好者提供协助! 在线使用 | GitHub 项目简介 马尼拉期望计算器是一个基于 Vue 3 Vite 开发的网页应用ÿ…...
VLAN间通讯技术
多臂路由 路由器使用多条物理线路,每条物理线路充当一个 VLAN 的网管 注意:路由器对端的交换机接口,需要设定 Access 类型,因为路由器的物理接口无法处理 VLAN 标签 。 单臂路由 使用 以太网子接口 (sub-interface) 实现。 …...
linux基础学习--linux文件与目录管理
linux文件与目录管理 1. 目录与路径 1.1 相对路径与绝对路径 绝对路径:路径写法一定从根目录/写起。 绝对路径的正确度要高。 相对路径:路径写法不是由/写起。 1.2 目录的相关操作 切换目录的命令是cd,下面是比较特殊的目录:…...
云原生--基础篇-2--云计算概述(云计算是云原生的基础,IaaS、PaaS和SaaS服务模型)
1、云计算概念 云计算是一种通过互联网提供计算资源(包括服务器、存储、数据库、网络、软件等)和服务的技术模式。用户无需拥有和维护物理硬件,而是可以根据需要租用这些资源,并按使用量付费。 2、云计算特点 (1&am…...
存储器综合:内存条
一、RW 1000题刷题 1、计算Cache缺失率 2、 二、前提回顾 1、CPU从单个DRAM芯片中取地址 注意:Cache与主存的交互以“主存块”为单位,当出现Cache Miss时,主存以“主存块”为单位传输至Cache中。 2、内存条编址 多个DRAM芯片组成内存条&a…...
树莓派超全系列教程文档--(38)config.txt视频配置
config.txt视频配置 视频选项HDMI模式树莓派4-系列的HDMI树莓派5-系列的HDMI 复合视频模式enable_tvout LCD显示器和触摸屏ignore_lcddisable_touchscreen 通用显示选项disable_fw_kms_setup 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 视频选…...
pytest-项目结构
项目结构 api_test_project/ ├── config/ │ └── config.py # 配置文件,存储接口的基本信息,如 URL、请求头、认证信息等 ├── data/ │ └── test_data.json # 测试数据文件,存储接口的请求参数、预期结果等 ├── tests/…...
几何编码:启用矢量模式地理空间机器学习
在 ML 模型中使用点、线和多边形,将它们编码为捕捉其空间属性的向量。 自地理信息系统 (GIS) 诞生之初,“栅格模式”和“矢量模式”之间就存在着显著的区别。在栅格模式下,数据以值的形式呈现在规则的网格上。这包括任何形式的图像࿰…...
什么是SPA,SPA与MAP区别
什么是SPA,SPA与MAP区别 文章目录 什么是SPA,SPA与MAP区别一、什么是SPA二、SPA和MPA的区别一、单页应用与多页应用的区别**二、SPA 的优缺点对比**三、WPA的优缺点 **三、SPA 实现关键技术**hash 模式模式history模式 四、SPA 的适用场景与原因**适用场…...
计算机前沿技术课程论文 K-means算法在图像处理的应用
K-means算法在图像处理的应用 这是本人在计算机前沿技术课程中的课程论文文章,为了方便大家参考学习,我把完整的论文word文档发到了我的资源里,有需要的可以自取。 点击完整资源链接 目录 K-means算法在图像处理的应用摘要:引言1…...
第十四届蓝桥杯 2023 C/C++组 平方差
目录 题目: 题目描述: 题目链接: 思路: 核心思路: 第一种思路: 第二种思路: 坑点: 代码: 数学找规律 O(n) 50分代码详解: O(1)满分代码详解&#x…...
【数学建模】随机森林算法详解:原理、优缺点及应用
随机森林算法详解:原理、优缺点及应用 文章目录 随机森林算法详解:原理、优缺点及应用引言随机森林的基本原理随机森林算法步骤随机森林的优点随机森林的缺点随机森林的应用场景Python实现示例超参数调优结论参考文献 引言 随机森林是机器学习领域中一种…...
计算机组成与体系结构:存储器(Memory)
目录 📁 当你打开一个文件,计算机会做什么? ⚡ 越大的 memory,访问速度越快吗? 🧠 那么,我们是怎么设计存储器的呢? Primary Memory(主存)登场ÿ…...
MyBatis框架—xml映射
目录 一.为什么需要进行手动映射? 二.关联查询 1.使用resultMap进行映射 2.使用Connection进行映射 一.为什么需要进行手动映射? 当我们设计多表查询或关联查询时,表中含有相同的字段名或要进行关联查询时,MyBatis无法智能识别如何处理映射结果&…...
Vue接口平台学习十——接口用例页面2
效果图及简单说明 左边选择用例,右侧就显示该用例的详细信息。 使用el-collapse折叠组件,将请求到的用例详情数据展示到页面中。 所有数据内容,绑定到caseData中 // 页面绑定的用例编辑数据 const caseData reactive({title: "",…...
Visual Studio 2022 运行一个后台程序而不显示控制台窗口
在 Visual Studio 2022 中,希望运行一个后台程序而不显示控制台窗口(黑色命令框),可以通过以下方法实现: 修改项目输出类型为 Windows 应用程序 右键项目 → 选择 属性 (Properties)在 配置属性 → 链接器 → 系统 (…...
剑指Offer(数据结构与算法面试题精讲)C++版——day17
剑指Offer(数据结构与算法面试题精讲)C版——day17 题目一:节点值之和最大的路径题目二:展平二叉搜索树题目三:二叉搜索树的下一个节点附录:源码gitee仓库 题目一:节点值之和最大的路径 题目&am…...
opencv函数展示4
一、形态学操作函数 1.基本形态学操作 (1)cv2.getStructuringElement() (2)cv2.erode() (3)cv2.dilate() 2.高级形态学操作 (1)cv2.morphologyEx() 二、直方图处理函数 1.直方图…...
10天学会嵌入式技术之51单片机-day-3
第九章 独立按键 按键的作用相当于一个开关,按下时接通(或断开),松开后断开(或接通)。实物图、原理图、封装 9.2 需求描述 通过 SW1、SW2、SW3、SW4 四个独立按键分别控制 LED1、LED2、LED3、LED4 的亮…...
DeepSeek智能时空数据分析(二):3秒对话式搞定“等时圈”绘制
序言:时空数据分析很有用,但是GIS/时空数据库技术门槛太高 时空数据分析在优化业务运营中至关重要,然而,三大挑战仍制约其发展:技术门槛高,需融合GIS理论、SQL开发与时空数据库等多领域知识;空…...
第 7 篇:总结与展望 - 时间序列学习的下一步
第 7 篇:总结与展望 - 时间序列学习的下一步 (图片来源: Guillaume Hankenne on Pexels) 恭喜你!如果你一路跟随这个系列走到了这里,那么你已经成功地完成了时间序列分析的入门之旅。我们从零开始,一起探索了时间数据的基本概念、…...
计算机视觉中的正则化:从理论到实践的全面解析
🌟 计算机视觉中的正则化:从理论到实践的全面解析🌟 大家好!今天要和大家分享的是在计算机视觉(CV)领域中非常重要的一个概念——正则化(Regularization)。无论你是刚开始接触深度学…...
解决使用hc595驱动LED数码管亮度低的问题
不知道大家在做项目的时候有没有遇到使用hc595驱动LED数码管亮度低的问题(数码管位数较多),如果大佬们有好的方法的可以评论区留言 当时我们解决是换成了天微的驱动芯片,现在还在寻找新的解决办法(主要软件不花钱&…...
Allegro23.1新功能之4K显示器页面显示不全如何解决操作指导
Allegro23.1新功能之4K显示器页面显示不全如何解决操作指导 Allegro升级到了23.1的时候,可能会出现界面显示不全的情况,如下图 是因为4K高清显示器的原因导致的 如何解决,具体操作如下 我的电脑,右键选择属性 点击高级系统设置 …...
C++——STL——容器deque(简单介绍),适配器——stack,queue,priority_queue
目录 1.deque(简单介绍) 1.1 deque介绍: 1.2 deque迭代器底层 1.2.1 那么比如说用迭代器实现元素的遍历,是如何实现的呢? 1.2.2 头插 1.2.3 尾插 1.2.4 实现 编辑 1.2.5 总结 2.stack 2.1 函数介绍 2.2 模…...
网络原理——UDP
1、 与TCP的关键区别 特性UDPTCP连接方式无连接面向连接可靠性不可靠可靠数据顺序不保证顺序保证顺序传输速度更快相对较慢头部开销8字节20-60字节流量控制无有拥塞控制无有适用场景实时应用、广播/多播可靠性要求高的应用 2、UDP 报文结构 报文结构大致可以分为首部和载荷&a…...
下载pycharm遇到的问题及解决方法
下载和安装 PyCharm 时可能会遇到一些具体问题,以下是一些常见问题及其解决方法: 常见问题及解决方法 下载速度慢或下载中断 解决方法: 检查你的互联网连接,并重启路由器。尝试使用不同的网络连接(如使用移动热点&…...
微硕WSP4407A MOS管在智能晾衣架中的应用与市场分析
微硕WSP4407A MOS管在智能晾衣架中的应用与市场分析 一、引言 智能晾衣架作为一种现代化的家居设备,其核心部件之一是驱动电路,而MOS管作为驱动电路中的关键元件,其性能直接影响到智能晾衣架的运行效率和稳定性。微硕半导体推出的WSP4407A …...
Java 性能优化:如何利用 APM 工具提升系统性能?
Java 性能优化:如何利用 APM 工具提升系统性能? 在当今竞争激烈的软件开发领域,系统性能至关重要。随着应用规模的扩大和用户需求的增加,性能问题逐渐凸显,这不仅影响用户体验,还可能导致业务损失。而 APM…...
FPGA 中 XSA、BIT 和 DCP 文件的区别
在 FPGA(现场可编程门阵列)开发中,XSA、BIT 和 DCP 文件是常见的文件类型,它们在功能、用途、文件内容等方面存在明显区别,以下是详细介绍: 1. XSA 文件 定义与功能 XSA(Xilinx Shell Archiv…...
【c语言】指针进阶
目录 1.字符指针 2.指针数组 3.数组指针 3.1 数组指针的定义 3.2 数组指针的使用 4.数组参数,指针参数 4.1 一维数组传参 4.2 二维数组传参 4.3 一级指针传参 4.4 二级指针传参 5.函数指针 6.函数指针数组 6.1函数指针数组的定义 6.2 函数指针数组…...
使用FastAPI与OpenAI构建多模态分析API服务
引言 随着多模态AI模型的普及(如Qwen-Omni-Turbo),开发者可以轻松构建支持图像、音频、视频分析的API服务。本文将通过一个FastAPI示例,展示如何通过Base64编码传输媒体文件,并结合OpenAI API实现异步分析。这一方案适…...
集成学习实际案例
一、算法竞赛经典:Kaggle & 国际赛事 1. 泰坦尼克号生存预测(Random Forest) 场景:Kaggle 入门级经典赛题,基于乘客信息预测生存概率。方案: 基模型:决策树(CART)&…...
Linux421用户、组
参考...
树模型与集成学习(决策树核心算法:ID3/C4.5/CART、随机森林、GBDT/XGBoost)
树模型与集成学习 一、决策树 决策树核心算法:ID3/C4.5/CART ID3算法(基于信息增益) 核心原理 ID3(Iterative Dichotomiser 3)是最早的决策树算法之一,由Ross Quinlan于1975年提出。其核心思想是通过信…...
Netdata 监控多台服务器
一、多服务器监控方案选择 1. Netdata Cloud(官方推荐,免费) 特点:无需自建中心节点,通过 Netdata 官方云平台集中查看所有服务器。步骤: 在每台服务器上安装 Netdata(参考上一指南࿰…...
CTF web入门之SQL注入使用工具sqlmap
详细说明:https://blog.csdn.net/qq_41701460/article/details/146391515 web201: 查看数据库 获取不到数据库信息 https://9556eca3-d69a-40f4-b2a4-c89c2d2f8f12.challenge.ctf.show/api/?id1题目有提到 使用–user-agent 指定agent,因为对于 sqlm…...
spark–sql项目实验
数据读取与格式转换 读取JSON数据:使用Spark提供的读取接口(如 spark.read.json() ,在不同编程语言接口下使用方式类似)将给定的JSON格式数据读入Spark中,形成 DataFrame 。 格式转换:按照题目要求&…...
gnome中删除application中失效的图标
什么是Application 这一块的东西应该叫application,准确来说应该是applications。 正文 系统级:/usr/share/applications 用户级:~/.local/share/applications ying192 ~/.l/s/applications> ls | grep xampp xampp.desktoprm ~/.local…...
华为设备命令部分精简分类汇总示例
华为网络设备的命令体系庞大且复杂,不同设备系列(如交换机、路由器、防火墙)和不同操作系统版本(如VRP5、VRP8)的命令可能存在差异。以下是一个 精简分类汇总,涵盖常用配置场景和命令示例: 一、…...
Java 自动装箱与拆箱:基本数据类型与包装类的转换
在Java编程中,自动装箱(Autoboxing)和自动拆箱(Unboxing)是两个重要的概念。它们使得基本数据类型与其对应的包装类之间的转换更加方便,同时也提高了代码的可读性和可维护性。 什么是自动装箱和拆箱&#…...
论文阅读HARIVO: Harnessing Text-to-Image Models for Video Generation
h-space对比损失(DC)的设计细节 目标:确保视频的所有帧在语义上保持一致(例如,同一视频中的不同帧应描述相同的主体和场景,避免物体突变或语义漂移)。 1. h-space的定义 h-space 是U-Net最深…...
OpenCV基础函数学习4
【大纲笔记见附件pdf】 目录 一、基于OpenCV的形态学操作 二、基于OpenCV的直方图处理 三、基于OpenCV霍夫变换 四、基于OpenCV模板匹配 一、基于OpenCV的形态学操作 二、基于OpenCV的直方图处理 三、基于OpenCV霍夫变换 四、基于OpenCV模板匹配...
大数据系列 | 详解基于Zookeeper或ClickHouse Keeper的ClickHouse集群部署--完结
大数据系列 | 详解基于Zookeeper或ClickHouse Keeper的ClickHouse集群部署 1. ClickHouse与MySQL的区别2. 在群集的所有机器上安装ClickHouse服务端2.1. 在线安装clickhouse2.2. 离线安装clickhouse 3. ClickHouse Keeper/Zookeeper集群安装4. 在配置文件中设置集群配置5. 在每…...
【leetcode题解】算法练习
目录 分治-快排算法 颜色分类 移动零 排序数组 数组中的第K个最大元素 最小K个数 分治-归并排序 排序数组 交易逆序对的总数(困难) 计算右侧小于当前元素的个数(困难) 翻转对(困难) 字符串 最…...