
Headless AI 에이전트로 결정론적 리버스 엔지니어링 수행
_ _
| | _____ _ __ _ __ __ _ __ _ ___ _ __ | |_
| |/ / _ \ '__| '_ \ / _` |/ _` |/ _ \ '_ \| __|
| < __/ | | | | | (_| | (_| | __/ | | | |_
|_|\_\___|_| |_| |_|\__,_|\__, |\___|_| |_|\__|
|___/
바이너리를 대화로 전환 — 결정적이고, 감사 가능하며, 오프라인에서도 사용 가능.
kernagent는 바이너리를 이식 가능한 정적 스냅샷으로 변환하고, LLM(또는 스크립트)이 증거와 함께 질문에 답할 수 있도록 합니다.
라이브 IDE 불필요 • GUI 자동화 불필요 • 환각(hallucination) 없음
오프라인 지원: Ollama, LM Studio 등 OpenAI 호환 엔드포인트를 사용하여 완전히 로컬에서 실행 가능; 인터넷 불필요.
/v1/chat/completions LLM 엔드포인트(OpenAI, Gemini, Ollama, LM Studio, 자체 게이트웨이)와 호환/v1/chat/completions 게이트웨이(예: Ollama, LM Studio))자신의 도구 환경에 맞는 흐름을 선택하세요. 모든 옵션은 ~/.config/kernagent/config.env를 마운트하므로 인증 정보를 한 번만 설정하면 됩니다.
install.sh 래퍼 (Linux / macOS / WSL2)bash <(curl -fsSL https://raw.githubusercontent.com/Karib0u/kernagent/main/install.sh)
원라이너가 차단된 경우:
curl -fsSL https://raw.githubusercontent.com/Karib0u/kernagent/main/install.sh -o install.sh
bash install.sh
또는 먼저 클론:
git clone https://github.com/Karib0u/kernagent.git
cd kernagent
bash install.sh
설치 스크립트는 다음을 수행합니다 (scripts/에서 완전히 감사 가능):
ghcr.io/karib0u/kernagent:latest 이미지 풀 (빌드 단계 없음)/usr/local/bin/에 설치:
kernagent — 메인 CLI 래퍼 (바이너리 및 설정 자동 마운트)kernagent-config — 대화형 설정 편집기kernagent-update — 최신/태그 버전으로 업데이트kernagent-uninstall — 설치된 모든 파일 제거~/.config/kernagent/.version에 저장모든 스크립트는 실행하기 전에 scripts/에서 검토할 수 있는 일반 셸 코드입니다. /usr/local/bin에 쓰기 권한이 없으면 sudo가 필요하지 않습니다.
래퍼와 이미지의 특정 버전을 설치하려면 부트스트래퍼를 태그 스크립트로 지정하고 태그를 전달하세요:
KERNAGENT_INSTALL_URL="https://raw.githubusercontent.com/Karib0u/kernagent/vX.Y.Z/scripts/install.sh" \
bash <(curl -fsSL https://raw.githubusercontent.com/Karib0u/kernagent/main/install.sh) --tag vX.Y.Z
raw URL에서 vX.Y.Z를 커밋 SHA로 바꾸면 정확한 커밋에 고정할 수도 있습니다.
git clone https://github.com/Karib0u/kernagent.git
cd kernagent
mkdir -p ~/.config/kernagent
cp config.env.example ~/.config/kernagent/config.env
# 사전 빌드 이미지 풀 (권장)
docker compose pull
# 로컬 개발용 빌드
docker compose build
docker compose run --rm kernagent --help
디렉토리를 /data에 마운트하여 바이너리 분석:
docker compose run --rm \
-v /absolute/path/to/binaries:/data \
kernagent summary /data/sample.exe
Windows (PowerShell + Docker Desktop)에서는 C:\malware:/data와 같은 Windows 스타일 절대 경로 사용.
사전 빌드 이미지 풀 (권장):
mkdir -p ~/.config/kernagent
curl -fsSL https://raw.githubusercontent.com/Karib0u/kernagent/main/config.env.example \
-o ~/.config/kernagent/config.env
docker pull ghcr.io/karib0u/kernagent:latest
docker run --rm \
-v /absolute/path/to/binaries:/data \
-v ~/.config/kernagent/config.env:/config/config.env:ro \
ghcr.io/karib0u/kernagent:latest summary /data/sample.exe
또는 로컬 빌드:
git clone https://github.com/Karib0u/kernagent.git
cd kernagent
docker build -t kernagent:local .
docker run --rm \
-v /absolute/path/to/binaries:/data \
-v ~/.config/kernagent/config.env:/config/config.env:ro \
kernagent:local summary /data/sample.exe
옵션 1 (래퍼):
kernagent --help
kernagent --version
직접 실행:
kernagent summary /path/to/binary.exe
kernagent ask /path/to/binary.exe "What does this binary do?"
kernagent oneshot /path/to/binary.exe
옵션 2 또는 3 (Docker Compose / raw Docker):
도움말 실행으로 확인:
# Docker Compose
docker compose run --rm kernagent --help
# Raw Docker
docker run --rm ghcr.io/karib0u/kernagent:latest --help
옵션 1 (래퍼):
kernagent-uninstall
옵션 2 또는 3 (Docker Compose / raw Docker):
클론 디렉토리 삭제 및 이미지 제거:
docker image rm ghcr.io/karib0u/kernagent:latest
# 또는
docker image rm kernagent:local
옵션 1 (래퍼):
kernagent-update # 최신 버전으로 전환
kernagent-update --check # 확인만
kernagent-update --tag vX.Y.Z # 특정 버전으로 고정
옵션 2 또는 3 (Docker Compose / raw Docker):
docker compose pull 또는 docker pull ghcr.io/karib0u/kernagent:latest 재실행.
Summary — 인용된 아티팩트와 함께하는 개요

Ask — 상호 참조/디컴파일 조각을 포함한 집중 질문/답변

최초 실행 —
<이름>_archive/스냅샷이 없으면kernagent가 답변 전에 자동으로 생성합니다.
summary개요: 목적, 기능, 주요 함수/임포트/문자열, 검증 주소 제공
kernagent summary /path/to/binary
# raw JSON (자동화용)
kernagent summary /path/to/binary --json
ask안전한 도구(함수/문자열/임포트 검색, 호출 그래프 추적, 디컴파일 읽기, 상호 참조 해결)를 사용하여 스냅샷에 대한 대화형 Q&A
kernagent ask /path/to/binary "의심되는 C2 로직과 증거를 보여주세요."
oneshotCI/대량 분석을 위한 결정적 트라이지(triage) 보고서. 분류:
MALICIOUS | GRAYWARE | BENIGN | UNKNOWN
kernagent oneshot /path/to/binary
# raw JSON (자동화용)
kernagent oneshot /path/to/binary --json
전역 재정의 (모든 명령어):
# 상세도 및 실행별 모델/API 재정의
kernagent -v --model gpt-4o \
--base-url https://api.openai.com/v1 \
--api-key sk-... \
summary /path/to/binary
스냅샷 구조 (하위 집합)
<name>_archive/
├─ meta.json
├─ functions.jsonl
├─ strings.jsonl
├─ imports_exports.json
├─ callgraph.jsonl
├─ capa_summary.json
└─ decomp/*.c
한 번만 생성하세요 (리포지토리 외부). 빠른 경로:
kernagent-config
또는 수동으로 파일 편집:
mkdir -p ~/.config/kernagent
cp config.env.example ~/.config/kernagent/config.env
$EDITOR ~/.config/kernagent/config.env
환경 변수로 재정의:
export OPENAI_API_KEY=...
export OPENAI_BASE_URL=https://api.openai.com/v1 # 또는 게이트웨이
export OPENAI_MODEL=gpt-4o # 또는 로컬 모델
모든 /v1/chat/completions 호환 엔드포인트가 작동합니다.
PR 환영합니다
Apache 2.0 — LICENSE 참조