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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
mole — 변수 역방향 슬라이싱을 정적 오염 분석의 드라이버로 사용하는 Binary Ninja 플러그인 | Kitploit
도구/GitHubGitHub/cyber-defence-campus/mole
Static AnalysisVulnerability AnalysisCode AnalysisExploitationReverse EngineeringBinary AnalysisAI-Assisted Reversing
GitHubcyber-defence-campus/mole

mole

변수 역방향 슬라이싱을 정적 오염 분석의 드라이버로 사용하는 Binary Ninja 플러그인

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Publish Release Release

Mole

Mole Logo

Mole는 바이너리에서 흥미로운 실행 경로를 식별하도록 설계된 Binary Ninja 플러그인입니다. Binary Ninja의 Static Single Assignment (SSA) 형태의 Medium Level Intermediate Language (MLIL)를 사용하여 변수에 대한 역방향 슬라이싱을 수행하며, 이는 정적 오염 분석의 기초를 형성합니다.

Mole에서 경로는 정의된 소스와 싱크 간의 데이터 흐름을 나타냅니다. "흥미로운" 경로의 정의는 분석 목표에 따라 달라집니다. 예를 들어, 취약점을 검색할 때는 신뢰할 수 없는 입력(소스)이 잠재적으로 위험한 방식으로 민감한 작업(싱크)에 영향을 미치는 경로를 찾을 수 있습니다.

다음 목록은 Mole의 현재 기능 중 일부를 강조합니다.

  • 작동 모드: Mole는 Binary Ninja UI 내에서 또는 헤드리스 모드에서 실행할 수 있습니다. 헤드리스 모드는 특히 많은 수의 바이너리에 대한 스크립트 분석에 유용합니다. 반대로, UI 내에서 Mole를 사용하는 것은 감지된 경로를 면밀히 조사하는 데 이상적입니다.

  • 경로 식별:

    • 구성: Mole는 사용자가 Binary Ninja의 UI 또는 구성 파일을 통해 소스 및 싱크 함수를 정의할 수 있도록 합니다(사용법 참조). 이를 통해 특정 사용 시나리오에 따라 소스와 싱크를 유연하게 선택할 수 있습니다.
  • 탐색: 경로를 더 잘 이해하고 특성을 조사하기 위해 경로를 따라 모든 명령어를 출력하거나 Binary Ninja 내에서 시각적으로 강조 표시할 수 있습니다. 또한 두 경로를 나란히 비교하여 차이점을 빠르게 식별할 수 있습니다. 명령어와 마찬가지로 경로의 함수 호출 시퀀스를 출력하거나 그래프로 시각화할 수 있습니다.
  • 그룹화: 유사한 경로 식별을 용이하게 하기 위해 Mole는 여러 그룹화 전략을 지원합니다. 현재 경로는 일치하는 소스 및 싱크 함수를 기반으로 하거나 동일한 호출 시퀀스로 그룹화할 수 있습니다. 이 기능을 확장 및 사용자 정의하기 위해 새로운 사용자 정의 그룹화 전략을 쉽게 추가할 수 있습니다(사용자 정의 참조).
  • 영구 저장: 발견된 경로는 명확성을 위해 주석을 추가하거나 관련이 없다고 판단되면 제거할 수 있습니다. 분석 진행 상황을 보존하기 위해 경로를 대상 바이너리의 데이터베이스(Binary Ninja의 .bndb 형식)에 직접 저장할 수 있습니다. 또한 경로를 내보낼 수 있습니다. 예를 들어 파일 시스템의 많은 바이너리에 대해 헤드리스 분석을 수행할 때 식별된 경로를 나중에 Binary Ninja에서 더 쉽게 탐색할 수 있도록 가져올 수 있습니다.
  • AI를 통한 경로 분석: Mole는 OpenAI API를 통해 로컬 또는 원격 대규모 언어 모델 (LLM)과 상호 작용할 수 있습니다(사용법 참조). 모델은 식별된 경로를 분석하고 해당 경로가 악용 가능한 취약점에 해당하는지 여부를 추론하는 데 사용됩니다. LLM은 취약점을 분류하고 심각도 수준을 할당하려고 시도하여 분석가가 추가 조사할 가치가 있는 경로를 우선 순위를 정하는 데 도움을 줄 수 있습니다. Mole는 LLM이 분석 중인 바이너리에 대한 추가 정보를 요청하는 데 사용할 수 있는 기본 도구 세트를 제공합니다.

  • 프로시저 간 변수 슬라이싱: Mole는 함수 경계를 넘어 MLIL 변수 슬라이싱을 지원합니다. 이 작업은 여러 문제를 제시합니다. 예를 들어, 함수의 실제 호출자를 정적으로 결정하는 것은 종종 어렵거나 불가능합니다. 결과적으로 구현된 접근 방식은 근사치입니다. 완벽하지는 않지만 광범위한 실제 시나리오에서 상당히 잘 작동합니다.

  • 기본 포인터 분석: Mole는 현재 포인터 사용을 추적하기 위한 단순화된 전략을 구현합니다. 프로시저 간 슬라이싱과 마찬가지로 이 접근 방식은 단순화이며 본질적인 한계가 있습니다(예: 전역 변수를 추적할 수 없음). 그럼에도 불구하고 많은 실제 사례에서 잘 작동하며 향후 버전에서 개선될 예정입니다.

  • 사용 예시

    Mole가 CVE-2021-4045를 노출하는 모습을 확인하세요. TP-Link Tapo C200 IP 카메라의 인증되지 않은 명령 주입 결함입니다(아래 이미지를 클릭하면 YouTube에서 시청 가능):

    Mole 사용 예시

    문서

    1. 설치
    2. 사용법
    3. 사용자 정의

    기여 또는 경험 공유

    Mole는 현재 진행 중인 작업입니다. 버그를 발견하거나, 오탐 또는 미탐을 강조하는 유용한 새로운 단위 테스트가 있거나, 새로운 기능에 대한 제안이 있는 경우 이슈를 열거나 풀 리퀘스트를 통해 기여해 주시기 바랍니다. 또한 현재 단위 테스트는 linux-x86_64 및 linux-armv7 바이너리에서만 검증되었습니다.

    Mole의 도움으로 취약점을 찾는 등 흥미로운 성공 사례가 있다면 저희에게 알려주세요! 부담 없이 경험을 공유해 주시기 바랍니다.

    기여자

    • Damian Pfammatter, Cyber-Defence Campus (armasuisse S+T)
    • Daniel Hulliger, Cyber-Defence Campus (armasuisse S+T)
    • Sergio Paganoni
    도구 다운로드