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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Enigma- — Ghidra의 분석 코어를 JVM 의존성 없이 C++로 재구현하여, 임베디드 가능한 바이너리 분석, Pcode/Sleigh 기반, 그리고 리버스 엔지니어링을 위한 AI 지원 인터페이스를 제공합니다. | Kitploit
도구/GitHubGitHub/gmh5225/enigma-
Static AnalysisCode AnalysisDynamic Code Analysis (DAST)Reverse EngineeringUtilities & FrameworksBinary AnalysisAI-Assisted ReversingAI Security
GitHubgmh5225/enigma-

Enigma-

Ghidra의 분석 코어를 JVM 의존성 없이 C++로 재구현하여, 임베디드 가능한 바이너리 분석, Pcode/Sleigh 기반, 그리고 리버스 엔지니어링을 위한 AI 지원 인터페이스를 제공합니다.

저장소 보기
143개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Enigma

Ghidra의 분석 코어(SoftwareModeling + Utility)를 Java/JVM 의존성 없이 C++로 재구현한 것. AI 통합, 성능, 임베드 가능성을 위해 설계됨. Enigma Engine 프로젝트의 일부.

Enigma Engine

Ghidra의 분석 코어를 C++로 재구현 — JVM 없음, Java 없음, 완전한 제어.


이것은 무엇인가?

Ghidra는 NSA가 Java로 만든 강력한 리버스 엔지니어링 프레임워크입니다. Enigma는 그 분석 코어를 현대적인 C++로 처음부터 다시 작성한 것으로, 다음을 목표로 합니다:

  • 임베드 가능 — 어떤 프로젝트에도 라이브러리로 링크 가능
  • AI 준비 완료 — ML/AI 통합을 위한 깔끔한 인터페이스
  • 빠름 — JVM 오버헤드 없음, 네이티브 메모리 레이아웃
  • 해킹 가능 — 모든 파일을 수정, 확장, 교체 가능

이것은 Java-to-C++ 트랜스파일러의 출력이 아닙니다. 모든 파일은 수동으로 번역되고 검증되었으며, 완전한 테스트 커버리지를 갖추고 있습니다.


왜?

Ghidra의 Java 코드베이스는 성숙했지만 특정 방향으로 확장하기 어렵습니다:

문제Enigma의 해답
JVM 시작 + GC 오버헤드네이티브 C++, 런타임 제로
비 Java 프로젝트에 임베드하기 어려움정적/공유 라이브러리
AI 통합에 JNI 브리지 필요직접적인 C++ API
모놀리식 플러그인 시스템모듈식, 교체 가능한 컴포넌트

현재 상태

활발한 개발 중 — 분석 기반은 안정적이고 테스트됨.

핵심 타입 시스템, 주소 모델, 메모리 인터페이스, 설정 프레임워크, Pcode/Sleigh 기반이 구현되었고 테스트를 통과했습니다. 이 프로젝트는 엄격한 상향식 번역 순서를 따릅니다: 모든 의존성이 갖춰지고 검증되기 전까지 어떤 모듈도 추가되지 않습니다.

빌드 시스템: CMake + Ninja + CTest — 경고 제로, 모든 테스트 통과.


아키텍처

Enigma는 Ghidra의 내부 패키지 구조를 그대로 반영하여 C++ 네임스페이스로 번역했습니다:

root@kitploit:~
include/ghidra/
├── [Address system]     Address, AddressSpace, AddressFactory, AddressRange
├── [Data types]         DataType, Structure, Union, Enum, Pointer,
│                        Array, TypeDef, FunctionDefinition, ...
├── [Memory]             MemBuffer, MemoryBlock, Memory, ByteProvider
├── [Settings]           Settings + full SettingsDefinition hierarchy
├── [Pcode / Sleigh]     PcodeOp, Varnode, SleighLanguage, SequenceNumber
└── [Utilities]          MathUtilities, DataConverter, Msg, TaskMonitor, ...

src/
└── [.cpp implementations for complex classes]

주요 설계 결정:

  • Java interface → 순수 virtual 메서드를 가진 C++ abstract class
  • Java ArrayList / HashMap → std::vector / std::unordered_map
  • Java null 반환 → std::optional<T>
  • Java 제네릭 → C++ 템플릿
  • Address는 인터페이스 + 구현을 단일 값 타입으로 병합 (힙 할당 방지)
  • 원시 포인터는 비소유 참조에만 사용; 소유권은 항상 명시적

범위

Enigma는 Ghidra의 완전한 대체입니다 — Java에 존재하는 모든 컴포넌트는 UI, 플러그인 시스템, 디스어셈블러, 디컴파일러, 스크립팅 엔진을 포함하여 C++ 등가물을 갖게 됩니다.

현재 초점은 분석 코어 — 다른 모든 것이 그 위에 구축되는 기반입니다. 이것이 견고해지고 테스트되면 나머지 계층(GUI, 로더, 분석 플러그인, 스크립팅)이 순서대로 뒤따를 것입니다.

영구적으로 제외되는 것은 없습니다. 모든 것은 우선순위의 문제입니다.


빌드

요구 사항

  • C++17 컴파일러 (g++ 11+ 또는 clang++ 13+)
  • CMake 3.20+
  • Ninja (권장)

단계

root@kitploit:~
git clone https://github.com/adam-040/Enigma.git
cd Enigma
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build
ctest --test-dir build --output-on-failure

로드맵

단기

  • Sleigh 언어 엔진 완성 (.sla / .pspec 로딩)
  • PcodeEmitter — 원시 명령어에서 Pcode 생성
  • BasicBlock + ControlFlowGraph
  • 디스어셈블리를 위한 Capstone 통합 (x86, ARM, RISC-V)

중기

  • 바이너리 로딩을 위한 LIEF 통합 (ELF, PE, Mach-O)
  • 심볼 테이블 + 타입 복구
  • 디컴파일러 IR (High Pcode)

AI 통합

  • ML 모델을 위한 깔끔한 C++ API 표면
  • 함수 시그니처 추론
  • 변수 이름 / 타입 제안
  • 로컬 LLM 통합 (클라우드 의존성 없음)

프로젝트 이름

Enigma — 제2차 세계 대전의 암호 기계에서 이름을 따왔으며, 리버스 엔지니어링을 통해 해독되었습니다. 그게 딱 맞는 것 같았습니다.


라이선스

이 프로젝트는 Ghidra의 번역물이며, Ghidra는 Apache License 2.0에 따라 라이선스됩니다.

Enigma는 동일한 라이선스로 배포됩니다. 자세한 내용은 LICENSE를 참조하세요.


관련

  • Ghidra (NSA) — 원본 Java 프로젝트
  • Capstone — 디스어셈블리 엔진 (통합 예정)
  • LIEF — 바이너리 파싱 (통합 예정)
도구 다운로드