Andromeda的头像-能不能吃完饭再说
站长管理员超级版主
悟已往之不谏,知来者之可追。
SeedLab——DNS Attack Lab-能不能吃完饭再说

SeedLab——DNS Attack Lab

About DNS DNS(Domain Name System)是一个用于将域名转换为与之关联的IP地址的分布式命名系统。它充当了互联网上的电话簿,将人类可读的域名(例如example.com)映射到计算机可理解的IP地址(...
ThinkPHP 5.x 远程代码执行漏洞-能不能吃完饭再说

ThinkPHP 5.x 远程代码执行漏洞

漏洞简介 ThinkPHP是PHP语言的一种开源框架。ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架...
kali Linux上安装docker-能不能吃完饭再说

kali Linux上安装docker

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -echo 'deb https://download.docker.com/linux/debian stretch stable'> /etc/apt/sources.list.d/docker.li...
PHP魔术常量-能不能吃完饭再说

PHP魔术常量

什么是PHP魔术常量?PHP 向它运行的任何脚本提供了大量的预定义常量。很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。魔...
EL表达式-能不能吃完饭再说

EL表达式

EL表达式是一种简单的数据访问语言,能够快速访问servlet域对象中存储的数据。EL基本语法语法格式如下${ expression }EL中的变量EL中的变量不需要预先定义就可以直接使用${ var }EL的运算符 算...
servlet高级-Filter过滤器-能不能吃完饭再说

servlet高级-Filter过滤器

可以对调用servlet容器的过程进行拦截,用于在servlet进行响应前后进行实现一些特殊功能。实例servlet程序import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet...
四种分组密码操作模式的DES加解密算法——C语言实现-能不能吃完饭再说

四种分组密码操作模式的DES加解密算法——C语言实现

大二的时候写的程序了,代码写的很烂只关注效果的实现了。这么烂的代码估计只有自己能看懂了。源代码GitHub仓库地址 DesEncryptLab使用示例——加密DesEncrypt -p a_plain_text -k a_key -v a_i...
9个月前
014418
SeedLab——SQL Injection Attack Lab-能不能吃完饭再说

SeedLab——SQL Injection Attack Lab

Lab Environment Setup 在Linux下的/etc/hosts种添加下面的映射 10.9.0.5 www.seed-server.com 进入Labsetup根目录,运行dcbuild构建容器,dcup启动容器 dcbuild # alias for docker-compose bu...
SSL/TLS协议解析-能不能吃完饭再说

SSL/TLS协议解析

SSL/TLS协议是什么? SSL/TLS概述 SSL/TLS协议(Security Socket Layer Protocol/Transport Layer Security Protocol,安全套接层协议/传输层安全协议)是网景公司在1994年提出的一种基于Web应用...
智能指针详解-能不能吃完饭再说

智能指针详解

为什么引入智能指针?内存泄漏问题C++在堆上申请内存后,需要手动对内存进行释放。随着代码日趋复杂和协作者的增多,很难保证内存都被正确释放,因此很容易导致内存泄漏。在上述代码中,Functio...
leetcode刷题记录——2024年1月-能不能吃完饭再说

leetcode刷题记录——2024年1月

2487、从链表中移除节点——递归、单调栈整个过程可以理解为维护一个递减的栈,栈中的节点是按照从大到小的顺序排列的。每遇到一个新节点时,如果栈顶节点的值大于当前节点的值,则将栈顶节点替...
Linux下iptables防火墙配置-能不能吃完饭再说

Linux下iptables防火墙配置

netfilter与iptables 不同内核版本下的Linux下防火墙 在Linux 2.0.X 内核版本中,防火墙功能由 ipfwadm 提供。ipfwadm 是一个基于规则的防火墙工具,可以设置过滤规则来控制数据包的流动。它使...
程序机械级表示——数据格式与访问信息-能不能吃完饭再说

程序机械级表示——数据格式与访问信息

数据格式 8位称为字节(byte),16位称为字(word),32位为双字(double words),64位为四字(quad words) C语言基本数据类型对应的x86-64表示如下 C声明 Intel数据类型 汇编代码后缀 大小(...
使用Libpcap捕获局域网中的数据包-能不能吃完饭再说
Redis 内部编码与优化方式-能不能吃完饭再说

Redis 内部编码与优化方式

前言 redis 为每种数据类型都提供了多种内部编码方式,以散列类型为例,通过散列表实现散列类型,此时查找和赋值操作时间复杂度为 O(1),但是当键中元素很少时,O(1)的性能并不会比 O(n)有明显...
preg_replace函数/e漏洞-能不能吃完饭再说

preg_replace函数/e漏洞

preg_replace 函数执行一个正则表达式的搜索和替换,语法如下: mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] ) pat...
Redis事务与乐观锁-能不能吃完饭再说

Redis事务与乐观锁

概述 Redis 事务是一种将多个命令打包在一起执行的机制。通过使用事务,可以确保一系列命令在一次执行中依次执行,而不会被其他客户端的命令请求打断。 Redis 事务的执行分为以下几个步骤: 开...
经典进程同步问题-能不能吃完饭再说

经典进程同步问题

进程同步 临界区 对共享资源进行访问的那段代码称为临界区,当有其他进程在这段代码中运行时,其他进程就不能在这段代码中执行。 为了互斥访问临界资源,每个进程在进入临界区之前,需要先进行...
Libnet实现ICMP SMURF攻击-能不能吃完饭再说

Libnet实现ICMP SMURF攻击

完整代码在文末什么是ICMP SMURF攻击ICMP SMURF攻击是一种DDoS攻击,利用了Internet Control Message Protocol (ICMP) 的功能和网络的特性,目的是通过大量伪造的ICMP回应数据包(通常是使用广...
leetcode刷题记录——动态规划-能不能吃完饭再说

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;...
nmap使用-能不能吃完饭再说

nmap使用

主机发现nmap主机发现的原理与ping类似,发送探测包到目标主机,如果收到回复,则说明目标主机是开启的。主机发现常用参数如下所示参数说明-snping扫描,只进行主机发现,不进行端口扫描-PE/PP/...
Redis常用数据类型与基本命令指北-能不能吃完饭再说

Redis常用数据类型与基本命令指北

字符串优点:简单、灵活,可以存储任意类型的数据,支持丰富的字符串操作命令。应用场景:缓存、计数器、分布式锁、消息队列等。底层数据结构:简单动态字符串(SDS)。SET:设置指定键的字符串...
GoF 23种经典的设计模式——适配器模式-能不能吃完饭再说

GoF 23种经典的设计模式——适配器模式

适配器模式(Adapter Pattern)是一种结构性设计模式,它允许接口不兼容的类之间进行协同工作。适配器模式充当两个不兼容接口之间的桥梁,使得它们能够协同工作而无需修改其源代码。 简而言之,...
深入浅出C/C++函数指针-能不能吃完饭再说

深入浅出C/C++函数指针

和变量一样,函数在内存中有固定的地址,函数的实质也是内存中一块固定的空间。函数的地址存放其机器代码的内存的开始地址。当我们需要调用一个函数并让其使用我们期望的函数进行操作时,函数指...
10个月前
011019
GoF 23种经典的设计模式——装饰器模式-能不能吃完饭再说

GoF 23种经典的设计模式——装饰器模式

装饰器模式 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 引入装饰器主要是为了...
浅谈RVO与NRVO-能不能吃完饭再说

浅谈RVO与NRVO

RVO 和 NRVORVO(Return Value Optimization,返回值优化)和 NRVO(Named Return Value Optimization,命名返回值优化)是编译器进行的优化技术,旨在减少函数返回值的拷贝或移动操作。它们是 ...
1个月前
010824
Protobuf简单使用-能不能吃完饭再说

Protobuf简单使用

C++ 生成代码指南 | 协议缓冲区文档 - ProtoBuf 中文 namespace 如果 .proto 文件包含 package 声明,则该文件的所有内容都将放置在相应的 C++ 命名空间中。例如,给定 package 声明 package fo...
深拷贝与浅拷贝-能不能吃完饭再说

深拷贝与浅拷贝

概念浅拷贝(shallow copy)浅拷贝(Shallow Copy)是一种对对象进行复制的方式,它简单地将源对象的所有成员变量的值复制给目标对象。在浅拷贝中,如果对象中存在指针成员变量,那么只会复制指...
10个月前
010528
信号量+令牌桶算法实现的简单限流组件-能不能吃完饭再说

信号量+令牌桶算法实现的简单限流组件

基于条件变量的信号量简单实现class Semaphore { public: Semaphore(int max_count) : max_count_(max_count), current_count_(max_count) {} Semaphore() : max_count_(1), current_count_(1) ...
1个月前
010528
cpp的union使用-能不能吃完饭再说

cpp的union使用

union介绍 看一下下面的代码运行结果 #include <iostream> using namespace std; union u { char c; int n; }; int main() { cout << sizeof(u) << endl; return 0; } 运行结...
1年前
010522
GoF 23种经典的设计模式——抽象工厂模式-能不能吃完饭再说

GoF 23种经典的设计模式——抽象工厂模式

抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种方式来创建一系列相关或依赖对象的家族,而无需指定具体的类。在抽象工厂模式中,我们定义一个抽象工厂接口,该接...
GoF 23种经典的设计模式——原型模式-能不能吃完饭再说

GoF 23种经典的设计模式——原型模式

原型模式(Prototype Pattern)是一种创建型设计模式,其主要思想是通过复制(克隆)现有对象来创建新的对象,而不是通过构造函数创建。这样可以避免重复创建相似对象时的性能损耗,同时也更灵...