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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
SentinelNav — SentinelNav: 종속성 없는 순수 Python 바이너리 시각화 및 포렌식 도구. | Kitploit
도구/GitHubGitHub/smolfiddle/sentinelnav
Memory ForensicsReverse EngineeringForensicsData RecoveryDigital ForensicsBinary AnalysisFirmware Analysis
GitHubsmolfiddle/sentinelnav

SentinelNav

SentinelNav: 종속성 없는 순수 Python 바이너리 시각화 및 포렌식 도구.

저장소 보기
14681610개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

SentinelNav

SentinelNav는 의존성이 없는 순수 Python 바이너리 시각화 및 포렌식 도구입니다. 바이너리 데이터를 대화형 스펙트럼 맵으로 변환하여 분석가가 파일 구조, 엔트로피 이상, 코드 섹션 및 잠재적인 암호화 블롭을 시각적으로 식별할 수 있도록 합니다.

다중 처리 백엔드를 사용하여 파일을 빠르게 스캔하고, 로컬 웹 기반 프론트엔드를 통해 대화형 탐색, 16진수 검사 및 아키텍처 핑거프린팅을 제공합니다.

첫 번째 스크린샷 두 번째 스크린샷


빠른 시작

SentinelNav는 Python 표준 라이브러리만 사용하므로 외부 패키지 설치가 필요하지 않습니다.

  1. 스크립트를 sentinelnav.py로 저장합니다.
  2. 대화형 모드로 스크립트를 실행합니다.
python3 sentinelnav.py
  1. 프롬프트가 표시되면 대상 파일을 터미널 창에 끌어다 놓습니다.
  2. 브라우저에서 http://localhost:8000을 엽니다.


기능

핵심 분석

  • 의존성 없음: pip install 없이 모든 표준 Python 3 설치에서 실행 가능.
  • 혼합 스캔 모드:
    • 고정 블록: 파일을 일정한 청크(예: 1024바이트)로 분할. 바이너리 및 디스크 이미지에 적합.
    • 센티넬: 구분자(예: 로그 또는 텍스트 기반 프로토콜의 경우 0x0A)를 기준으로 파일을 분할.
  • 아키텍처 핑거프린팅 (ArchID):
    • 파일 헤더(MZ, ELF, Mach-O, PDF, PNG, JPEG) 탐지.
    • 원시 바이너리 청크에서 CPU 아키텍처(x86, x64, ARM64)를 추측하는 휴리스틱 빈도 분석 수행.
  • 엔트로피 및 이상 탐지:
    • 블록당 섀넌 엔트로피 계산.
    • "플럭스" 이벤트 탐지: 급격한 상승(암호화/코드 시작) 또는 하강(데이터 스트림 종료).

시각화

  • 스펙트럼 매핑: 바이트 분포를 RGB 색상으로 매핑하여 데이터 유형(텍스트 vs 코드 vs 패딩)을 시각적으로 구분.
  • 캔버스 렌더링: 페이지네이션을 통해 수백만 개의 청크를 처리할 수 있는 고성능 HTML5 캔버스 렌더링.
  • 라이브 16진수 검사기: 블록을 클릭하면 원시 16진수 덤프, ASCII 디코딩 및 ArchID 분석을 확인 가능.
  • BMP 내보내기: 외부 보고용으로 파일의 전체 히트맵 이미지 생성.

성능

  • 병렬 처리: 스캔 중 concurrent.futures.ProcessPoolExecutor를 사용하여 모든 CPU 코어 활용.
  • SQLite 백엔드: 분석 결과를 임시 SQLite 데이터베이스에 저장하여 대용량 파일(GB 이상)의 효율적인 페이지네이션 및 쿼리 지원.

아키텍처 설계

SentinelNav는 생산자-소비자 아키텍처와 클라이언트-서버 인터페이스를 따릅니다.

1. 포렌식 엔진 (백엔드)

  • 스캐너 인터페이스:
    • 파일 읽기 프로세스 추상화.
    • FixedScanner: N바이트를 반복적으로 읽음.
    • SentinelScanner: 버퍼로 읽어들이고 특정 바이트(예: 널 바이트 또는 개행)를 발견하면 청크를 반환.
  • 작업자 프로세스:
    • Processor는 CPU 수에 따라 작업자 풀을 생성.
    • FastMath: 엔트로피 및 바이트 빈도(스펙트럼 데이터) 계산.
    • Heuristics: 청크가 ASCII 중심, Null 중심 또는 High-Bit 중심인지 판단.
  • 데이터 엔진 (저장소):
    • 임시 sqlite3 데이터베이스가 바이너리 파일의 구조화된 인덱스를 생성.
    • 저장 항목: 오프셋, 길이, 엔트로피, RGB 값, 이상 점수.
    • 이를 통해 도구가 RAM보다 큰 파일을 처리할 수 있으며 필요에 따라 데이터를 페이지 단위로 가져옴.

2. 웹 서버

  • 동시 HTTP 요청 처리를 위해 http.server.ThreadingMixIn 구현.
  • API 엔드포인트:
    • /data: 청크 데이터(색상 + 엔트로피)의 JSON 페이지 반환.
    • /read: 검사 패널용 특정 16진수 덤프.
    • /search: 물리 파일에서 16진수 시퀀스 검색.
    • /download: 원시 바이너리 블롭 추출 또는 BMP 시각화 생성.

3. 프론트엔드

  • Python 스크립트에 직접 포함된 단일 페이지 애플리케이션(SPA).
  • 렌더링: HTML5 Canvas API를 사용하여 픽셀 단위 블록 렌더링.
  • 탐색: 키보드 입력(WASD)을 그리드 좌표계에 매핑하는 공간 탐색 로직 구현.

시각 매핑 가이드

이 도구는 특정 RGB 알고리즘을 사용하여 바이너리 데이터 유형을 나타냅니다.

색상구성 요소의미
빨강High Bit바이트 0x80 - 0xFF. 컴파일된 기계어 코드, 압축 데이터, 암호화된 블롭 또는 이미지 데이터를 나타냄.
초록ASCII바이트 0x20 - 0x7E. 일반 텍스트, 소스 코드, JSON, XML 또는 로그를 나타냄.
파랑제어바이트 0x00 - 0x1F. 널 패딩, 헤더 또는 프로토콜 제어 문자를 나타냄.

일반적인 패턴:

  • 밝은 초록: 텍스트 파일 또는 소스 코드.
  • 분홍/보라: 혼합된 코드와 데이터 (실행 가능 섹션).
  • 단색 파랑: 0으로 채워진 패딩 또는 빈 공간.
  • 정적/회색: 높은 엔트로피 잡음 (암호화된 데이터).

설치

사전 요구 사항

  • Python 3.6 이상.

설정

설치할 라이브러리가 없습니다. 파일을 다운로드하기만 하면 됩니다.

# 스크립트 복제 또는 다운로드
wget https://raw.githubusercontent.com/smolfiddle/SentinelNav/main/sentinelnav.py

사용법 및 CLI 인수

도구는 대화형으로 실행하거나 명령줄 인수를 사용하여 실행할 수 있습니다.

대화형 마법사

인수 없이 실행하면 마법사가 시작됩니다.

python3 sentinelnav.py

CLI 인수

자동화 또는 고급 사용자를 위해 플래그를 사용하여 마법사를 건너뜁니다.

python3 sentinelnav.py <대상_파일> [옵션]
인수설명기본값
--mode스캔 모드: fixed 또는 sentinel.fixed
--size고정 모드의 블록 크기(바이트) 또는 센티넬의 최대 버퍼.1024
--hex센티넬 모드의 구분자 바이트(예: 개행의 경우 0A).00
--port웹 서버 포트.8000
--window이상 탐지 계산을 위한 슬라이딩 윈도우 크기.5

예제: 펌웨어 이미지를 256바이트 해상도로 포트 8080에서 스캔:

python3 sentinelnav.py firmware.bin --size 256 --port 8080

키보드 제어

웹 인터페이스가 로드된 후 다음 제어가 가능합니다.

키동작
W / A / S / D선택 커서 이동 (위/왼쪽/아래/오른쪽).
왼쪽 화살표이전 페이지.
오른쪽 화살표다음 페이지.
Shift + WASD블록 범위 선택 (다중 선택).
Shift + 클릭이전 앵커에서 클릭한 블록까지의 범위 선택.

마우스 제어

  • 호버: 커서 아래 블록의 실시간 엔트로피 및 스펙트럼 통계를 확인.
  • 클릭: 블록을 선택하여 검사 패널에서 16진수 덤프 및 아키텍처 분석을 확인.
도구 다운로드