VXiaoZhi Blog

「离开世界之前 一切都是过程」

Nginx 内存池机制

Nginx 内存池机制

Nginx 内存池机制 nginx 的内存池设计得非常精妙,它在满足小块内存申请的同时,也处理大块内存的申请请求,同时还允许挂载自己的数据区域及对应的数据清楚操作。 nginx 内存池实现主要是在 core/ngx_palloc.{h,c}中,一些支持函数位于 os/unix/ngx_alloc.{h,c}中,支持函数主要是对原有的 malloc/free/memalign 等函数的封装...

内存优化综述

内存优化综述

内存优化综述 任何一个复杂的系统内存分配释放的最佳策略一定是: 按照其特性进行内存分类管理。 一般来说可将其特性分为以下几类: 对象池(Object Pools) 延迟销毁(Lazy Deletion) 动态生成(Dynamic Generation) 为什么说这种策略是最优的呢, 举例来说: 如果有大量相同大小的对象需要分配存储空间, 那么通过 空闲链 的算法(即预...

内网穿透工具

内网穿透工具

内网穿透工具 如果希望自己二次开发(有API可以调用)或者有多个租户(每个客户端一个单独的key),建议使用nps。 如果希望简单上手,没有多个租户的要求,建议使用frp。 通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括: 客户端服务端通信支持 TCP、QUIC、KCP 以及 Websocket 等多种协议。...

Linux 中的虚拟网络接口

Linux 中的虚拟网络接口

Linux 中的虚拟网络接口 tun/tap 对应 char 设备 /dev/net/tun, 操作系统内核中的虚拟网络设备,用户层程序提供数据的接收与传输。 普通的物理网络接口如 eth0,它的两端分别是内核协议栈和外面的物理网络。而对于 TUN/TAP 虚拟接口如 tun0,它的一端一定是连接的用户层程序,另一端则视配置方式的不同而变化,可以直连内核协议栈,也可以是某个...

Linux 反弹Shell

Linux 反弹Shell

Linux 反弹Shell 前言 在渗透测试实战中,我们经常会遇到Linux系统环境,而让Linux主机反弹个shell是再常见不过的事情了。 反弹shell,就是攻击机监听在某个TCP/UDP端口为服务端,目标机主动发起请求到攻击机监听的端口,并将其命令行的输入输出转到攻击机。 正向连接 假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:...

ptrace 学习笔记

ptrace 学习笔记

ptrace 学习笔记 参考 ptrace学习笔记I ptrace理解 ptrace 跟踪多线程程序

Linux 网络命名空间

Linux 网络命名空间

Linux 网络命名空间 参考 网络命名空间 linux 网络虚拟化: network namespace 简介 一文吃透 Linux nsenter

Linux 网络负载均衡

Linux 网络负载均衡

Linux 网络负载均衡 参考 负载均衡-lvs linux负载均衡总结性说明(四层负载/七层负载) Linux 集群总结 + LVS(负载均衡器)原理及配置 黑石5.0-网络架构设计

Linux LD_PRELOAD 技术介绍

Linux LD_PRELOAD 技术介绍

Linux LD_PRELOAD 技术介绍 LD_PRELOAD介绍 LD_PRELOAD是Linux/Unix系统的一个环境变量,它可以影响程序的运行时的链接,它允许在程序运行前定义优先加载的动态链接库。通过这个环境变量,可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖系统的函数库。 具体来说, Linux操作系统的动态链接库在加载过程中,动态链接器会先读取LD_PREL...

Linux 中C/C++代码通过函数名称字符串发起调用

Linux 中C/C++代码通过函数名称字符串发起调用

Linux 中C/C++代码通过函数名称字符串发起调用 分两种情况: 1. 函数实现在so 中 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 // 打开动态链接库 void* handle = dlopen("demo.so", RTLD_LAZY); if (!handle) { fpr...