Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
tetsuo-pulse — Tetsuo 套接字库 | Kitploit
工具/GitHubGitHub/7etsuo/tetsuo-pulse
数据包嗅探与分析加密/解密工具Web安全模糊测试网络安全密码学实用工具与框架API 安全DNS 分析
GitHub7etsuo/tetsuo-pulse

tetsuo-pulse

Tetsuo 套接字库

729687个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

Socket Library Logo

License: MIT Coverage

Socket Library

成熟度提示:本库功能完善且经过充分测试,但为新近发布。适用于开发、内部工具及受控环境。在代码库积累数月实战加固之前,不建议在涉及不可信网络输入的生产环境中部署。

高性能、异常驱动的 POSIX 系统套接字工具包。提供简洁现代的 C API,支持 TCP、UDP、Unix 域套接字、HTTP/1.1、HTTP/2、QUIC、WebSocket 及 TLS/DTLS,具备全面的错误处理、零拷贝 I/O 和跨平台事件轮询。

特性

核心网络

  • TCP 流套接字 — 功能完备的 TCP 客户端/服务器,支持分散/聚集 I/O
  • UDP 数据报套接字 — 无连接和连接模式,支持多播/广播
  • Unix 域套接字 — IPC 套接字,支持对等凭据和文件描述符传递
  • TLS 1.3 支持 — 现代 TLS,支持 SNI、ALPN、会话恢复、CRL/OCSP、证书绑定、证书透明度 (CT)、kTLS 卸载、0-RTT 早期数据、KeyUpdate
  • DTLS 1.2+ 支持 — 安全 UDP,支持 cookie 交换以抵御 DoS 攻击、会话缓存、ALPN

HTTP 协议栈

  • HTTP/1.1 — 表驱动 DFA 解析器 (RFC 9112)、分块编码、请求走私防护
  • HTTP/2 — 二进制分帧、流多路复用、流量控制、服务器推送 (RFC 9113)
  • HPACK — 标头压缩,支持静态/动态表、哈夫曼编码 (RFC 7541)
  • QPACK — HTTP/3 标头压缩 (RFC 9204)、双流架构、阻塞流管理
  • HTTP 客户端 — 连接池、认证 (Basic/Digest/Bearer)、Cookie (RFC 6265)
  • HTTP 服务器 — 事件驱动请求处理、keep-alive、优雅关闭

QUIC 传输

  • 符合 RFC 9000 — 完整 QUIC v1 传输协议实现
  • 连接管理 — 连接 ID 轮换、无状态重置、地址验证
  • 流多路复用 — 双向和单向流,带流量控制
  • 丢包检测 — RFC 9002 拥塞控制与丢包恢复
  • 路径迁移 — 网络变化时无缝连接迁移
  • 0-RTT 恢复 — 支持早期数据的快速重连

QUIC-TLS (RFC 9001)

  • 数据包保护 — AEAD 加密 (AES-128-GCM、AES-256-GCM、ChaCha20-Poly1305)
  • 头部保护 — 用于数据包号加密的 AES-ECB/ChaCha20 掩码生成
  • 密钥派生 — 基于客户端 DCID 的 HKDF 初始密钥、握手/流量密钥
  • 密钥更新 — 带 AEAD 保密性限制的密钥相位比特旋转 (RFC 9001 §6)
  • 重试完整性 — 重试数据包的 AEAD 标签验证 (RFC 9001 §5.8)
  • 传输参数 — QUIC 配置交换的 TLS 扩展 (类型 0x39)

QPACK (RFC 9204)

  • 标头压缩 — HTTP/3 标头压缩,避免队头阻塞
  • 双流架构 — 单独的编码器流 (0x02) 和解码器流 (0x03)
  • 动态表 — 基于编码器相对和字段相对的绝对索引方案
  • 静态表 — 99 个预定义条目 (RFC 9204 附录 A)
  • 状态同步 — 段确认、流取消、插入计数递增
  • 阻塞流管理 — 通过 SETTINGS 协商的可配置阻塞流限制

WebSocket

  • 符合 RFC 6455 — 完整 WebSocket 协议实现
  • permessage-deflate — 通过 zlib 实现的压缩扩展 (RFC 7692)
  • 增量 UTF-8 — 基于 DFA 的文本帧验证
  • 自动 Ping/Pong — 可配置心跳,集成定时器

代理隧道

  • HTTP CONNECT — 通过基本认证的代理隧道
  • SOCKS4/4a — 传统 SOCKS 支持
  • SOCKS5 — RFC 1928/1929,支持用户名/密码认证
  • 异步 API — 带状态机的非阻塞代理连接

事件系统

  • 跨平台轮询 — epoll (Linux)、kqueue (BSD/macOS)、poll 回退
  • 边缘触发模式 — 高性能事件通知
  • 异步 I/O — io_uring (Linux 5.1+)、kqueue AIO (BSD/macOS)
  • 定时器 — 单次与重复定时器,基于 O(log n) 最小堆

连接管理

  • 连接池 — 基于哈希表的 O(1) 查找,每连接 I/O 缓冲区
  • Happy Eyeballs — RFC 8305 双栈 IPv4/IPv6 连接竞速
  • 自动重连 — 带断路器模式的指数退避
  • 优雅关闭 — 带超时保证的池排空状态机

安全加固

  • SYN Flood 防护 — 信誉评分、限速、内核集成
  • 每 IP 跟踪 — 每客户端的连接限制和速率限制
  • 速率限制 — 用于连接和带宽的令牌桶算法
  • 请求走私防护 — 符合 RFC 的严格 HTTP 解析

DNS 解析

  • 异步解析器 — 基于线程池和查询多路复用的非阻塞解析
  • DNS-over-TLS (DoT) — RFC 7858/8310 加密 DNS,支持机会/严格模式
  • DNS-over-HTTPS (DoH) — RFC 8484 通过 HTTPS 的 DNS 查询 (POST/GET 方法)
  • DNSSEC 验证 — RFC 4033-4035 信任链、NSEC/NSEC3 认证拒绝
  • DNS Cookies — RFC 7873 基于 EDNS0 的欺骗防护
  • 否定缓存 — RFC 2308 正确的 NXDOMAIN/NODATA 处理
  • 扩展 DNS 错误 — RFC 8914 详细的错误码

基础设施

  • 基于异常的错误 — 通过 TRY/EXCEPT/FINALLY 实现干净的错误传播
  • 简单 API — 基于返回码的便捷层(无需 TRY/EXCEPT)
  • 区域内存管理 — 带溢出保护的高效分配
  • 环形缓冲区 I/O — 网络操作的零拷贝缓冲
  • 异步 I/O — 平台优化的异步操作 (io_uring/kqueue)
  • UTF-8 验证 — 面向安全的 UTF-8 处理,用于 WebSocket 文本帧
  • 通用重试框架 — 带抖动的指数退避,实现弹性操作
  • 每 IP 连接跟踪 — 每个客户端 IP 的连接限制和速率限制
  • 零拷贝 I/O — 平台优化的 sendfile() 和分散/聚集 I/O
  • 可观测性 — 可插拔日志、Prometheus/StatsD/JSON 指标导出、事件分发
  • 加密工具 — SHA-1/256、HMAC、Base64、安全随机数

平台要求

  • POSIX 兼容系统 (Linux、BSD、macOS)
  • C11 编译器,支持 GNU 扩展
  • POSIX 线程 (pthread) 用于线程安全操作
  • 内核支持 IPv6 (用于双栈套接字)
  • 不可移植到 Windows (需 Winsock 适配层)

平台特定特性

FeatureLinuxBSD/macOS回退
事件轮询epollkqueuepoll(2)
异步 I/Oio_uring (5.1+)kqueue AIO边缘触发
TCP Fast Open3.7+10.0+/10.11+禁用
拥塞控制可配置--
对等凭据SO_PEERCREDLOCAL_PEERCRED-
SYN 防护TCP_DEFER_ACCEPTSO_ACCEPTFILTER用户空间

TLS/DTLS 要求

  • OpenSSL 1.1.1+ 或 LibreSSL,支持 TLS 1.3
  • 默认仅 TLS 1.3 (可配置)
  • DTLS 1.2 最小版本,用于安全 UDP

快速开始

构建```bash

Basic build

cmake -S . -B build cmake --build build -j

Run tests

cd build && ctest --output-on-failure

Build with TLS support (auto-detects OpenSSL/LibreSSL)

cmake -S . -B build -DENABLE_TLS=ON

Build with sanitizers for debugging

cmake -S . -B build -DENABLE_SANITIZERS=ON

Build with fuzzing support (requires Clang)

cmake -S . -B build -DENABLE_FUZZING=ON -DCMAKE_C_COMPILER=clang

### 基本TCP服务器```c
#include "socket/Socket.h"
#include "core/Except.h"
#include <stdio.h>

int main(void)
{
    Socket_T server = Socket_new(AF_INET, SOCK_STREAM, 0);
    
    TRY
        Socket_setreuseaddr(server);
        Socket_bind(server, NULL, 8080);
        Socket_listen(server, 128);
        printf("Server listening on port 8080...\n");
        
        while (1) {
            Socket_T client = Socket_accept(server);
            if (client) {
                char buf[1024];
                ssize_t n = Socket_recv(client, buf, sizeof(buf) - 1);
                if (n > 0) {
                    buf[n] = '\0';
                    Socket_sendall(client, buf, n);
                }
                Socket_free(&client);
            }
        }
    EXCEPT(Socket_Failed)
        fprintf(stderr, "Error: %s\n", Socket_GetLastError());
    END_TRY;
    
    Socket_free(&server);
    return 0;
}

基本TCP客户端```c

#include "socket/Socket.h" #include "core/Except.h" #include <stdio.h> #include <string.h>

int main(void) { Socket_T client = Socket_new(AF_INET, SOCK_STREAM, 0);

TRY
    Socket_connect(client, "127.0.0.1", 8080);
    printf("Connected to server\n");
    
    const char *msg = "Hello, Server!";
    Socket_sendall(client, msg, strlen(msg));
    
    char buf[1024];
    ssize_t n = Socket_recvall(client, buf, strlen(msg));
    buf[n] = '\0';
    printf("Received: %s\n", buf);
EXCEPT(Socket_Failed)
    fprintf(stderr, "Error: %s\n", Socket_GetLastError());
EXCEPT(Socket_Closed)
    fprintf(stderr, "Connection closed\n");
END_TRY;

Socket_free(&client);
return 0;

}

### Convenience Functions (One-Call Setup)

对于常见用例,便利函数简化了套接字设置:```c
#include "socket/Socket.h"
#include "socket/SocketDgram.h"

/* TCP Server - one call creates listening socket */
Socket_T server = Socket_listen_tcp("0.0.0.0", 8080, 128);
while (running) {
    Socket_T client = Socket_accept_timeout(server, 1000);  // 1s timeout
    if (client) handle_client(client);
}
Socket_free(&server);

/* TCP Client with timeout - one call connects */
Socket_T client = Socket_connect_tcp("api.example.com", 443, 5000);  // 5s timeout
Socket_sendall(client, request, len);
Socket_free(&client);

/* UDP Server - one call binds */
SocketDgram_T udp = SocketDgram_bind_udp("0.0.0.0", 5353);
SocketDgram_recvfrom(udp, buf, sizeof(buf), sender_ip, sizeof(sender_ip), &sender_port);
SocketDgram_free(&udp);

/* Unix Domain Server */
Socket_T unix_srv = Socket_listen_unix("/var/run/app.sock", 128);
Socket_free(&unix_srv);

/* Unix Domain Client with timeout */
Socket_T unix_cli = Socket_new(AF_UNIX, SOCK_STREAM, 0);
Socket_connect_unix_timeout(unix_cli, "/var/run/app.sock", 5000);
Socket_free(&unix_cli);

/* Non-blocking connect (for event loops) */
Socket_T sock = Socket_new(AF_INET, SOCK_STREAM, 0);
int status = Socket_connect_nonblocking(sock, "192.168.1.1", 8080);
if (status == 1) {
    /* In progress - poll for POLL_WRITE then check Socket_isconnected() */
}

Simple API(无需 TRY/EXCEPT)

对于偏好基于返回码的错误处理的用户,简单 API 提供了一个便利层,封装了基于异常的底层实现:```c #include "simple/SocketSimple.h"

下载工具