Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
tetsuo-pulse — Tetsuo Socket Library | Kitploit
도구/GitHubGitHub/7etsuo/tetsuo-pulse
Packet Sniffing & AnalysisEncryption/Decryption ToolsWeb SecurityFuzzingNetwork SecurityCryptographyUtilities & FrameworksAPI SecurityDNS Analysis
GitHub7etsuo/tetsuo-pulse

tetsuo-pulse

Tetsuo Socket Library

729667개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
저장소 보기
공유

소켓 라이브러리 로고

License: MIT Coverage

소켓 라이브러리

성숙도 알림: 이 라이브러리는 기능적이며 잘 테스트되었지만 최근에 출시되었습니다. 개발, 내부 도구 및 제어된 환경에 적합합니다. 신뢰할 수 없는 네트워크 입력을 사용하는 프로덕션 배포는 코드베이스에 몇 달간의 실제 환경 강화가 축적될 때까지 기다려야 합니다.

POSIX 시스템을 위한 고성능 예외 기반 소켓 도구 키트입니다. TCP, UDP, 유닉스 도메인 소켓, HTTP/1.1, HTTP/2, QUIC, WebSocket 및 TLS/DTLS를 위한 깔끔하고 현대적인 C API를 제공하며, 포괄적인 오류 처리, 제로 카피 I/O 및 크로스 플랫폼 이벤트 폴링을 지원합니다.

기능

핵심 네트워킹

  • TCP 스트림 소켓 - 분산/수집 I/O를 지원하는 완전한 기능의 TCP 클라이언트/서버
  • UDP 데이터그램 소켓 - 멀티캐스트/브로드캐스트를 지원하는 비연결 및 연결 모드
  • 유닉스 도메인 소켓 - 피어 자격 증명 지원 및 파일 디스크립터 전달이 가능한 IPC 소켓
  • TLS 1.3 지원 - SNI, ALPN, 세션 재개, CRL/OCSP, 인증서 핀 고정, Certificate Transparency (CT), kTLS 오프로드, 0-RTT 초기 데이터, KeyUpdate를 지원하는 현대적인 TLS
  • DTLS 1.2+ 지원 - DoS 보호를 위한 쿠키 교환, 세션 캐싱, ALPN을 지원하는 안전한 UDP

HTTP 프로토콜 스택

  • HTTP/1.1 - 테이블 기반 DFA 파서 (RFC 9112), 청크 인코딩, 요청 스머글링 방지
  • HTTP/2 - 바이너리 프레이밍, 스트림 멀티플렉싱, 흐름 제어, 서버 푸시 (RFC 9113)
  • HPACK - 정적/동적 테이블을 사용한 헤더 압축, 허프만 코딩 (RFC 7541)
  • QPACK - HTTP/3 헤더 압축 (RFC 9204), 이중 스트림 아키텍처, 차단된 스트림 관리
  • HTTP 클라이언트 - 연결 풀링, 인증 (Basic/Digest/Bearer), 쿠키 (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)

  • 헤더 압축 - HOL(Head-of-Line) 차단을 피하는 HTTP/3 헤더 압축
  • 이중 스트림 아키텍처 - 별도의 인코더(0x02) 및 디코더(0x03) 스트림
  • 동적 테이블 - 인코더 상대 및 필드 상대 체계를 사용한 절대 인덱싱
  • 정적 테이블 - 99개의 사전 정의된 항목 (RFC 9204 부록 A)
  • 상태 동기화 - 섹션 확인, 스트림 취소, 삽입 카운트 증가
  • 차단된 스트림 관리 - SETTINGS 협상을 통한 구성 가능한 차단된 스트림 제한

WebSocket

  • RFC 6455 준수 - 완전한 WebSocket 프로토콜 구현
  • permessage-deflate - zlib을 통한 압축 확장 (RFC 7692)
  • 증분 UTF-8 - DFA 기반 텍스트 프레임 검증
  • 자동 핑/퐁 - 타이머 통합을 통한 구성 가능한 하트비트

프록시 터널링

  • HTTP CONNECT - 기본 인증을 통한 프록시 터널링
  • SOCKS4/4a - 레거시 SOCKS 지원
  • SOCKS5 - RFC 1928/1929 (사용자 이름/비밀번호 인증 포함)
  • 비동기 API - 상태 머신을 통한 비차단 프록시 연결

이벤트 시스템

  • 크로스 플랫폼 폴링 - epoll (Linux), kqueue (BSD/macOS), poll fallback
  • 에지 트리거 모드 - 고성능 이벤트 알림
  • 비동기 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 플러드 보호 - 평판 점수, 조절, 커널 통합
  • IP별 추적 - 클라이언트당 연결 제한 및 속도 제한
  • 속도 제한 - 연결 및 대역폭을 위한 토큰 버킷 알고리즘
  • 요청 스머글링 방지 - RFC 준수를 통한 엄격한 HTTP 파싱

DNS 해석

  • 비동기 리졸버 - 스레드 풀 및 쿼리 멀티플렉싱을 통한 비차단 해석
  • DNS-over-TLS (DoT) - RFC 7858/8310 암호화 DNS (기회적/엄격 모드)
  • DNS-over-HTTPS (DoH) - RFC 8484 DNS 쿼리 (POST/GET 메서드)
  • DNSSEC 검증 - RFC 4033-4035 신뢰 체인, NSEC/NSEC3 인증 부인
  • DNS 쿠키 - EDNS0을 통한 RFC 7873 스푸핑 방지
  • 부정 캐싱 - RFC 2308 적절한 NXDOMAIN/NODATA 처리
  • 확장 DNS 오류 - RFC 8914 상세 오류 코드

인프라

  • 예외 기반 오류 - TRY/EXCEPT/FINALLY를 통한 깔끔한 오류 전파
  • 간단한 API - 일반 작업을 위한 반환 코드 기반 편의 계층 (TRY/EXCEPT 불필요)
  • 아레나 메모리 관리 - 오버플로 방지가 포함된 효율적인 할당
  • 원형 버퍼 I/O - 네트워크 작업을 위한 제로 카피 버퍼링
  • 비동기 I/O - 플랫폼 최적화 비동기 작업 (io_uring/kqueue)
  • UTF-8 검증 - WebSocket 텍스트 프레임을 위한 보안 중심 UTF-8 처리
  • 일반 재시도 프레임워크 - 탄력적인 작업을 위한 지터가 포함된 지수 백오프
  • 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 적응 계층 필요)

플랫폼별 기능

기능LinuxBSD/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 전용 (구성 가능)
  • 안전한 UDP를 위한 DTLS 1.2 최소

빠른 시작

빌드```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;

}

### 편의 함수 (단일 호출 설정)

일반적인 사용 사례를 위해 편의 함수가 소켓 설정을 간소화합니다:```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);
도구 다운로드