信号量+令牌桶算法实现的简单限流组件
基于条件变量的信号量简单实现class Semaphore { public: Semaphore(int max_count) : max_count_(max_count), current_count_(max_count) {} Semaphore() : max_count_(1), current_count_(1) ...
Protobuf简单使用
C++ 生成代码指南 | 协议缓冲区文档 - ProtoBuf 中文 namespace 如果 .proto 文件包含 package 声明,则该文件的所有内容都将放置在相应的 C++ 命名空间中。例如,给定 package 声明 package fo...
浅谈RVO与NRVO
RVO 和 NRVORVO(Return Value Optimization,返回值优化)和 NRVO(Named Return Value Optimization,命名返回值优化)是编译器进行的优化技术,旨在减少函数返回值的拷贝或移动操作。它们是 ...
leetcode刷题记录——2024年2月
2641、二叉树的堂兄弟节点 Ⅱ——哈希表、层序遍历使用队列进行层序遍历,sameparent记录每个节点的兄弟节点的值,同时sum用于存储当前遍历层的下一层节点总和。当遍历到下一层时,每个节点的va...
实现 Linux 系统防火墙(包过滤、状态防火墙、NAT)
GitHub仓库地址https://github.com/cSuk1/myFireWall前言最大的难点在于内核驱动的编写,在此之前我也没有做过Linux内核模块的代码编写,所以刚开始做起来非常吃力,这要求代码编写者有非常好的...
leetcode刷题记录——2024年1月
2487、从链表中移除节点——递归、单调栈整个过程可以理解为维护一个递减的栈,栈中的节点是按照从大到小的顺序排列的。每遇到一个新节点时,如果栈顶节点的值大于当前节点的值,则将栈顶节点替...
leetcode刷题记录——动态规划
509、斐波那契数 和爬楼梯一样,最基础的动态规划,没什么好说的。 class Solution { public: int fib(int n) { if (n == 0) { return 0; } vector<int> dp(3, 0); dp[1] = 1; dp[2] = 1;...
SeedLab——Spectre Attack Lab
IntroductionSpectre AttackSpectre攻击是一种基于侧信道漏洞的攻击方法,它于2018年首次公开披露。该攻击利用了现代处理器中存在的一种设计缺陷,使得恶意程序可以访问其本不应该具备权限的内...
SeedLab——DNS Attack Lab
About DNS DNS(Domain Name System)是一个用于将域名转换为与之关联的IP地址的分布式命名系统。它充当了互联网上的电话簿,将人类可读的域名(例如example.com)映射到计算机可理解的IP地址(...
Linux下iptables防火墙配置
netfilter与iptables 不同内核版本下的Linux下防火墙 在Linux 2.0.X 内核版本中,防火墙功能由 ipfwadm 提供。ipfwadm 是一个基于规则的防火墙工具,可以设置过滤规则来控制数据包的流动。它使...
SeedLab——TCP/IP Attack Lab
TCP/IP协议栈 TCP/IP协议栈是用于在计算机网络中进行通信的一组协议。它是互联网的核心协议栈,由多个层级的协议构成,应用层、传输层、网络层、数据链路层。每个层级的协议负责不同的功能。 TC...
四种分组密码操作模式的DES加解密算法——C语言实现
大二的时候写的程序了,代码写的很烂只关注效果的实现了。这么烂的代码估计只有自己能看懂了。源代码GitHub仓库地址 DesEncryptLab使用示例——加密DesEncrypt -p a_plain_text -k a_key -v a_i...
leetcode刷题记录——2023年12月
2661、找出叠涂元素——哈希表超时方法首先,通过使用unordered_map来构建矩阵mat中元素与其索引的映射关系。遍历矩阵中的每个元素,将元素作为键,将其索引{i, j, 0}作为值,存储在matrix中。...
Libnet实现ICMP SMURF攻击
完整代码在文末什么是ICMP SMURF攻击ICMP SMURF攻击是一种DDoS攻击,利用了Internet Control Message Protocol (ICMP) 的功能和网络的特性,目的是通过大量伪造的ICMP回应数据包(通常是使用广...
深入浅出C/C++函数指针
和变量一样,函数在内存中有固定的地址,函数的实质也是内存中一块固定的空间。函数的地址存放其机器代码的内存的开始地址。当我们需要调用一个函数并让其使用我们期望的函数进行操作时,函数指...