Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ltm — ltm은 Linux용 머신-히스토리 디버거입니다. eBPF를 통해 프로세스, 파일, 네트워크, 메모리 및 블록 I/O 메타데이터를 기록한 후 타임라인을 쿼리할 수 있습니다. | Kitploit
도구/GitHubGitHub/agent-hellboy/ltm
Disk ForensicsOSINT (Open Source Intelligence)Dynamic Analysis (Sandboxing)Memory ForensicsNetwork ForensicsDebuggersForensicsDigital ForensicsIncident ResponseLog Analysis
GitHubagent-hellboy/ltm

ltm

23181개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ltm은 Linux용 머신-히스토리 디버거입니다. eBPF를 통해 프로세스, 파일, 네트워크, 메모리 및 블록 I/O 메타데이터를 기록한 후 타임라인을 쿼리할 수 있습니다.

저장소 보기

ltm

Linux용 머신 히스토리 디버거입니다. eBPF를 통해 프로세스, 파일, 네트워크, 메모리 및 블록 I/O를 기록하고, 메타데이터를 SQLite에 저장하며, 박스에서 발생한 일에 대한 타임라인/차이/일반 영어/SQL 질문에 답변합니다.

⚠️ 현재는 Tracepoint 전용 캡처 — 현재 기록은 tracepoint 프로그램을 사용합니다. 아직 kprobes, uprobes, XDP 또는 TC 후크를 사용하지 않으므로, 더 깊은 커널 내부, 사용자 공간 함수 추적 또는 패킷 경로 검사보다 안정적인 시스템 호출/블록/프로세스 메타데이터를 선호합니다.

빠른 시작

root@kitploit:~
go build -o bin/ltm ./cmd/ltm

sudo ./bin/ltm start                       # record (eBPF; root, Linux/x86_64)
./bin/ltm timeline --since 5m
./bin/ltm watch                            # live tail; Ctrl-C to stop
./bin/ltm diff --from 10m --to now
./bin/ltm query "who modified /etc/some.conf?"
sudo ./bin/ltm stop

녹화에는 루트(또는 CAP_BPF + CAP_PERFMON)가 필요합니다. 질의는 필요하지 않습니다. 라이브 Linux 기록기가 없으면: ltm benchmark --count 1000으로 합성 이벤트를 DB에 시드하여 timeline, diff, query로 검사할 수 있습니다.

전역 플래그는 하위 명령어 앞에 옵니다 (ltm --db /tmp/ltm.db status). 기본값: DB ~/.local/share/ltm/ltm.db, PID ~/.local/run/ltm.pid. 머신이 읽을 수 있는 출력을 원하면 모든 읽기 명령어에 --json을 추가하세요.

명령어

저장소 및 질의

하나의 SQLite 데이터베이스, 데몬이 보유한 WAL 작성자입니다. 모든 읽기 경로는 읽기 전용으로 열립니다 (PRAGMA query_only=ON) — 질의는 작성자와 충돌하거나 로그를 변경하지 않습니다. 메타데이터만 있으며, 파일 내용은 없습니다.

root@kitploit:~
export LTM_AGENT=claude   # or codex, cursor, gemini, auto, or a custom command
ltm query "which process wrote to files the most today?"

에이전트 SQL이 출력된 후 읽기 전용 연결에서 실행되며, 단일 SELECT가 아니면 거부됩니다. 에이전트가 없거나(에이전트 실패) → 내장 템플릿을 사용합니다.

기록되는 것

약 60개의 tracepoint: 프로세스 (exec, exit, fork, clone, kill), 파일 (open/close, read/write, rename, unlink, link, symlink, mkdir, rmdir, chmod, chown, stat, access, truncate, dup, pipe, …), 메모리 (mmap, munmap, mprotect), 네트워크 (socket, connect, bind, listen, accept, send/recv, shutdown), 블록 (block_rq_issue).

BPF는 /proc, /sys, /dev 및 데몬 자체 PID를 건너뜁니다. 수작업으로 작성된 tracepoint 매니페스트는 internal/abi/abi.yaml에 있으며, 체크인된 런타임 테이블은 internal/abi/tracepoints_gen.go로 생성됩니다. collector.bpf.c를 편집한 후 make ebpf로 재빌드하세요. internal/abi/abi.yaml의 ABI 메타데이터를 편집한 후 make generate를 실행한 다음, 커널 이벤트 레이아웃 또는 tracepoint 테이블이 변경된 경우 make ebpf를 실행합니다.

제한 사항

  • x86_64 녹화 전용 — BPF는 -D__TARGET_ARCH_x86으로 빌드됩니다 (#2). 질의 및 벤치마크로 생성된 데모 데이터는 Linux 녹화 지원이 필요하지 않습니다.
  • IPv4 주소 전용 — IPv6 연결/바인드는 디코딩된 주소 없이 저장됩니다.
  • 바이트 카운트는 시스템 호출의 요청된 크기(enter probe)입니다. 짧거나 실패한 I/O는 초과 계산됩니다. readv/writev/sendmsg/recvmsg는 0을 보고합니다.
  • fd→path는 fd ≤ 1024를 다루며, 많은 PID 재사용 후 잘못 귀속될 수 있습니다. 더 높은 fd는 경로 없이 기록됩니다.

개발

root@kitploit:~
go test ./...                # local/unit tests
make generate                # regenerate ABI/schema outputs from abi.yaml
make ebpf                    # regenerate checked-in BPF object/bindings (Linux)
make integration             # real eBPF recording; Linux + root

레이아웃: cmd/ltm 진입점, 그 외는 internal/ 아래 (abi, cli, daemon, collector, ebpf, storage, agent, diff, query).

ABI/스키마 생성기는 이벤트 정의, 저장소 DDL, tracepoint 메타데이터 및 커널 측 구조체를 단일 진실 공급원인 internal/abi/abi.yaml에 연결합니다. 이는 의도적으로 CPython의 Argument Clinic 워크플로우(소스)와 유사합니다: 새로운 캡처된 이벤트/모듈 표면을 추가할 때 파생된 Go 또는 C 파일을 수동 편집하는 대신 매니페스트를 업데이트하고 체크인된 출력을 재생성합니다.

문서: docs/ (ABI, CLI, 생성된 파일, 질의, 녹화, 아키텍처, 보안). 기여자 규칙: AGENTS.md.

도구 다운로드
명령어기능
start / stop / status기록기 제어
timeline--pid --uid --comm --category --action --path --exe --since --until --limit로 필터링 (반복 가능; --path/--exe는 SQL LIKE)
watch실시간 테일 (--interval --since --category --comm --pid)
diff --from --to두 시점 사이의 시스템 상태 변경
query "<question>"일반 영어 (템플릿 또는 에이전트 → SQL)
query sql ["<SELECT>"]읽기 전용 SQL; 인자 없으면 스키마 출력 (ltm sql도 작동)
prune --older-than 720h [--vacuum]오래된 행 삭제, 선택적으로 디스크 공간 회수
benchmark --count NN개의 합성 이벤트 기록 (eBPF 없음)
version빌드 버전, 커밋, 플랫폼