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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Cartographer — Ghidra용 코드 커버리지 탐색 플러그인 | Kitploit
도구/GitHubGitHub/nccgroup/cartographer
Dynamic Code Analysis (DAST)Reverse EngineeringBinary Analysis
GitHubnccgroup/cartographer

Cartographer

Ghidra용 코드 커버리지 탐색 플러그인

저장소 보기
3823562년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Cartographer

코드 커버리지 매핑

Version Build Status License
Watchers Stars Downloads

Austin Peavy가 개발 - https://github.com/aus10pv

NCC Group Plc가 오픈 소스로 공개 - https://www.nccgroup.com/
Apache 2.0 라이선스로 공개됨 (자세한 내용은 LICENSE 참조)

Cartographer 인터페이스

설명

Cartographer는 Ghidra용 코드 커버리지 매핑 플러그인으로, 연구자들이 소스 코드 없이도 프로그램의 어느 부분이 실행되었는지 관찰할 수 있게 해줍니다.

목차

  • 주요 기능
  • 설치
    • 플러그인 로드
  • 사용법
    • 코드 커버리지 파일 로드
    • 코드 커버리지 세부 정보
    • 커버리지 간 전환
    • 표현식 파서
      • 구문
      • 예제
  • 기여하기
    • 소스에서 빌드
    • 버그 신고
  • 크레딧

주요 기능

  • 실행된 코드에 색상 지정
    • 함수 그래프(Function Graph)
    • 디스어셈블리(리스팅) 뷰
    • 디컴파일러 뷰
  • 완전히 사용자 지정 가능한 색상
  • Ghidra 테마 지원
  • DRCOV 파일 및 사용자 정의 EZCOV 파일 로드
    • EZCOV 형식에 대한 자세한 내용은 EZCOV.md 참조
  • 함수 커버리지에 대한 상세 개요 제공
    • 각 함수가 얼마나 실행되었는지 보여주는 히트맵 포함
  • 로드된 커버리지 파일 간 손쉬운 전환
  • 함수 이름으로 검색
  • 커버리지 양 등으로 결과 필터링
  • 강력한 표현식 파서
    • 여러 로드된 커버리지에 대해 논리 연산 수행
  • 서로 다른 주소 공간의 커버리지 지원

설치

Cartographer의 최신 안정 버전은 Releases 페이지에서 다운로드할 수 있습니다.

플러그인 로드

  1. Ghidra를 실행합니다.
  2. Install Extensions 창으로 이동합니다.
    • File -> Install Extensions...
  3. 오른쪽 상단 모서리에 있는 녹색 "+" 아이콘을 클릭합니다.
  4. 다운로드한 ZIP 파일을 선택하여 Ghidra에 플러그인을 로드합니다.
  5. "OK" 버튼을 클릭하여 Install Extensions 창을 종료합니다.
  6. 메시지가 표시되면 Ghidra를 다시 시작합니다.

사용법

플러그인이 로드되면 CodeBrowser 창에 코드 커버리지 데이터를 작업하기 위한 추가 컨트롤이 표시됩니다.

코드 커버리지 파일 로드

코드 커버리지 파일은 Tools 메뉴를 통해 로드할 수 있습니다: Tools -> Code Coverage -> Load Code Coverage File(s)...

코드 커버리지 파일이 로드되면 모든 커버리지 데이터가 Listing 뷰와 Decompiler 뷰에서 즉시 강조 표시됩니다.

코드 커버리지 파일 로드

코드 커버리지 세부 정보

각 함수의 커버리지 데이터에 대한 자세한 정보는 Code Coverage 창에서 확인할 수 있습니다.

Code Coverage 창은 Window -> Code Coverage로 이동하거나 Windows에서는 Ctrl-Shift-C, Mac에서는 Cmd-Shift-C를 눌러 열 수 있습니다.

이 창에는 프로그램의 각 함수에 대한 다양한 세부 정보가 표시됩니다.

  • Coverage %: 실행된 함수의 비율
  • Name: 함수의 이름
  • Address: 함수의 주소(진입점)
  • Blocks Hit: 실행된 기본 블록 수
  • Instructions Hit 실행된 명령어 수
  • Function Size: 함수의 크기(바이트)

함수를 클릭하면 Listing 뷰와 Decompiler 뷰에서 해당 함수로 이동합니다.

Code Coverage 창 열기

검색 및 필터링

Filter 입력 상자를 사용하여 함수 이름으로 검색할 수 있습니다.

커버리지 테이블에 표시된 모든 데이터는 열 필터로 사용할 수 있습니다.

데이터 검색 및 필터링

커버리지 간 전환

Code Coverage 창의 오른쪽 하단에 있는 드롭다운을 사용하면 로드된 코드 커버리지 파일 간에 빠르고 쉽게 전환할 수 있습니다.

커버리지 간 전환

표현식 파서

Code Coverage 창 하단의 텍스트 상자를 사용하면 로드된 코드 커버리지 파일에 대해 논리 연산을 수행할 수 있습니다.

이는 프로그램의 서로 다른 실행 간 차이점과 유사점을 검토하는 데 매우 유용할 수 있습니다.

표현식 파서 사용

구문

표현식 파서에서 사용할 수 있는 논리 연산자는 다음과 같습니다.

  • &: 두 커버리지 모두에서 실행된 코드 만 가져옵니다.
  • |: 두 커버리지 중 하나에서 실행된 모든 코드를 가져옵니다.
  • ^: 커버리지 간에 다르게 실행된 코드 만 가져옵니다.
  • -: 왼쪽 커버리지에 고유한 실행 코드 만 가져옵니다.

커버리지는 드롭다운 메뉴의 알파벳 ID(예: A, B, XY 등)로 참조됩니다.

각 논리 연산은 괄호로 그룹화되며, 표현식은 길이나 복잡도에 제한이 없습니다.

예제

  1. 커버리지 A와 B 모두에서 실행된 코드를 표시합니다:

    root@kitploit:~
    A & B
    
  2. 커버리지 A와 B 간에 다르게 실행된 코드를 표시합니다:

    root@kitploit:~
    A ^ B
    
  3. B에서 만 실행된 코드를 표시합니다:

    root@kitploit:~
    B - A
    
  4. A와 B에서 찾은 모든 커버리지 데이터를 결합한 다음 C와의 차이점을 찾습니다:

    root@kitploit:~
    (A | B) ^ C
    

기여하기

소스에서 빌드

Gradle을 사용하여 Cartographer를 소스 코드에서 빌드할 수 있습니다.

  1. Cartographer GitHub 저장소를 클론합니다.

    root@kitploit:~
    $ git clone https://github.com/nccgroup/Cartographer.git
    
  2. 저장소에 들어가 gradle로 빌드합니다.

    root@kitploit:~
    $ cd Cartographer
    $ gradle -PGHIDRA_INSTALL_DIR=<ghidra_install_dir>
    
    • <ghidra_install_dir>을 로컬 Ghidra 설치 경로로 바꿉니다.
  3. 빌드가 완료되면 플러그인 ZIP 파일은 dist/ 폴더에 위치합니다.

버그 신고

Cartographer에서 버그를 발견한 경우 GitHub를 통해 이슈를 열어 주세요.

크레딧

원래 Lighthouse에서 영감을 받았습니다 - https://github.com/gaasedelen/lighthouse

도구 다운로드