
증거 중심의 악성코드 리버스 엔지니어링으로, 심층 PE/.NET 검사, Ghidra 재구성, AI 교차 검증, YARA, ELF 디버깅을 포함합니다.
증거 중심 리버스 엔지니어링 CLI. Andrey Pautov는 Python 분석가 인터페이스, 오프라인 트리아지, 문자열 인텔리전스, PE 검사 및 보고 워크플로를 개발합니다. Capstone, Ghidra, GDB 및 선택적 AI 제공자는 통합 요소이며, 이 프로젝트가 직접 작성한 원본 도구가 아닙니다.
역할 관련성: 악성코드 트리아지, 리버스 엔지니어링 도구, 안전한 AI 지원 분석, Python 제공.
안전한 로컬 데모 실행 및 검증 범위 검토 · 기록된 로컬 검증
AIDebug는 증거 중심의 악성코드 리버스 엔지니어링 CLI 및 터미널 UI입니다. 결정론적 오프라인 트리아지, 전체 파일 헥스 검사, 심층 PE 구조 분석, Capstone 디스어셈블리, Ghidra 재구성, 선택적 LLM 교차 검증, 로컬 ELF 디버깅, 컴파일된 학습 과제, 그리고 분석가 검토 보고를 결합합니다.
현재 소스 버전: AIDebug 3.1.0. 3.1.0 릴리스 노트를 참조하십시오.
최신 불변 게시 릴리스는 AIDebug v3.0.0으로,
1200km-aidebug로 제공되며, 버전이 일치하는 3.1.0 태그와 GitHub 릴리스가 검증된 게시 워크플로를 완료할 때까지 유지됩니다.
PyPI에서 안정 패키지를 설치하십시오:
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install 1200km-aidebug==3.0.0
aidebug --version
필요에 따라 선택적 기능을 설치하세요:
# LLM provider clients and local validation of AI-generated YARA candidates
python -m pip install "1200km-aidebug[ai]==3.0.0"
# Frida dynamic instrumentation
python -m pip install "1200km-aidebug[dynamic]==3.0.0"
# All optional Python integrations
python -m pip install "1200km-aidebug[all]==3.0.0"
String Intelligence는 패키지가 게시될 때까지 소스 3.1을 필요로 합니다.
3.1 리뷰는
아래 리비전을 고정합니다. 해당 런타임 코드는 감사된 10월 1일
main 리비전 80b0b7172b592814504c405a16bf4cc0ce4161eb와도 일치합니다.
git clone https://github.com/anpa1200/AIDebug.git
cd AIDebug
git checkout cd81ef242db0bcea3296970d45c241a4228d2d27
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .
aidebug --version
해당 체크아웃에서 python -m pip install -e ".[ai]", ".[dynamic]" 또는 ".[all]"로 추가 기능을 설치하세요. 추가 기능은 동일한 설치 트랙에 유지하세요. 소스 3.1 위에 "1200km-aidebug[ai]==3.0.0"을 설치하면 게시된 3.0 패키지로 대체될 수 있습니다.
변동하는 개발 체크아웃의 경우:
git clone https://github.com/anpa1200/AIDebug.git
cd AIDebug
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev,dynamic]"
Ghidra, GDB, Bubblewrap, C 컴파일러, Frida 대상 컴포넌트는 해당 기능이 필요한 워크플로에서만 사용되는 외부 도구입니다.
AIDebug는 2026년 10월 7일 PR #355를 통해 REMnux에 승인되었으며, salt-states v2026.41.4에 처음 포함되었습니다.
승인된 state는 PyPI에서 버전이 고정되지 않은 1200km-aidebug[ai]를 /opt/aidebug에 설치하고, 업그레이드를 활성화하며, /usr/local/bin/aidebug를 노출합니다. 2026년 10월 8일 확인된 바에 따르면, PyPI는 여전히 3.0.0을 제공하며, 이는 미공개 3.1 소스나 dynamic extra를 설치하지 않습니다. 분석을 로컬에서 유지하려면 --offline을 사용하십시오.
REMnux 설정 및 버전 경계를 참조하십시오.
메인 터미널 인터페이스에서 PE 또는 ELF 샘플을 엽니다:
aidebug --binary /path/to/sample.exe --offline
전체 화면 UI 없이 결정론적 분석을 실행하고 증거를 내보냅니다:
aidebug --binary /path/to/sample.exe \
--offline --no-tui --report --json-export --yara \
--out-dir reports/
Ghidra 재구성을 사용하세요:
aidebug --binary /path/to/sample.exe --offline --no-tui --decompile
aidebug --binary /path/to/sample.exe --offline --no-tui \
--decompile-all reports/sample-reconstruction.c
임시 비실행 ELF 아티팩트를 통해 하나의 C 번역 단위를 분석합니다:
aidebug --source /path/to/example.c --offline --no-tui
파일 이름 확장자와 무관하게 임의의 파일을 식별합니다:
aidebug --identify /path/to/renamed-or-unknown-file --offline
--identify는 선언된 유형, MIME 유형, 일반적인 확장자, 신뢰도, 방법, 증거, SHA-256 및 크기를 포함한 구조화된 JSON을 보고합니다. 결정론적 커버리지에는 일반적인 실행 파일 및 바이트코드 형식, 아카이브 및 디스크 이미지, Office/OpenDocument/EPUB 컨테이너, 문서, 이미지, 오디오/비디오, 패킷 캡처, 데이터베이스, 레지스트리/이벤트 로그 아티팩트, 스크립트 및 텍스트가 포함됩니다. ZIP 분류는 처음 4,096개의 이름을 고려하며 mimetype 항목의 최대 128바이트를 읽습니다. Python은 이름 제한이 적용되기 전에 중앙 디렉터리를 파싱합니다. 이는 초기 디렉터리 파싱 메모리를 제한하지 않습니다. 전체 입력은 128 MiB로 제한되며, 파일은 절대 실행되거나 추출되지 않습니다. 내장 캡처 시그니처는 두 바이트 순서의 나노초 PCAP과 PCAP-NG를 지원합니다. 기존의 마이크로초 PCAP 시그니처는 현재 누락되어 있으며, 선택적 libmagic이 이를 인식할 수 있습니다.
로컬 플랫폼에서 알려진 추가 시그니처를 위해 python-magic과 운영 체제의 libmagic 데이터베이스를 설치하세요:
python -m pip install python-magic
결정적 시그니처, 구조 또는 텍스트 규칙이 일치하지 않을 때, 구성된 AI 제공자가 제한된 메타데이터(확장자, 크기, SHA-256, 최대 96바이트의 헤더, 32바이트의 꼬리, 샘플 엔트로피, NUL 비율)로부터 후보를 추론할 수 있습니다. 파일 본문, 추출된 문자열, 파일 시스템 경로는 전송되지 않습니다. AI 전용 결과는 ai-inference로 표시되며, 신뢰도는 최대 60%로 제한되고 분석가의 검증이 필요합니다. --offline을 사용하면 폴백을 완전히 비활성화할 수 있으며, 해석되지 않은 유형은 Unknown으로 보고되고 종료 상태 2가 반환됩니다.
메인 터미널 인터페이스에서 S를 누르거나, 워크스페이스에서 직접 시작하십시오:
aidebug --binary /path/to/sample.exe --offline --strings
작업 공간은 파일 오프셋, 가능한 경우 매핑된 주소, 인코딩, 바이트 및 문자 길이, 중복 발생 정보, 섹션 컨텍스트, 신뢰도, 트리아지 점수, 그리고 각 분류에 대한 결정론적 근거를 보존합니다. 필터는 최소 길이, 인코딩, 카테고리, 자유 텍스트 검색을 지원하며, 열 정렬과 페이지네이션은 대규모 인벤토리를 사용 가능하게 유지합니다. 선택된 모든 인코딩은 크기 제한이 적용된 전체 아티팩트를 스캔합니다. 보존되는 인벤토리는 최대 25,000개 레코드와 값당 4,096개 표시 문자로 제한되며, 정확한 후보/생략 개수와 전체 바이트 커버리지로 어느 한도든 가시화됩니다. 각 레코드는 최대 32개의 DLL/API 주석과 4,096개의 설명 문자를 보존하며, 악의적 오버플로는 레코드 사유에 보고됩니다.
탐지는 다중 레이블 방식입니다. 단일 값이 동시에 DLL, Windows 경로, URL, IP 주소, 레지스트리 키, 명령, PowerShell 조각, 명명된 파이프, 해시, 자격 증명 후보, 사용자 에이전트 또는 기타 지원되는 증거 유형일 수 있습니다. 도메인 후보는 IDNA 정규화되고 패키징된 오프라인 IANA 루트 존 스냅샷과 대조하여 검사되며, IP 주소는 완전한 유효 토큰을 차지해야 하고, 구성 할당은 보수적인 전체 행 문법과 일치해야 합니다. 이는 짧은 바이너리 조각이 단지 점, 콜론 또는 등호를 포함한다는 이유만으로 승격되는 것을 방지합니다. 관련 레이블은 하나의 신뢰도 계열을 공유하므로, ip_address와 ipv6는 두 개의 독립적인 관측으로 취급되지 않습니다. 알려진 DLL과 API는 짧고 중립적인 기능 설명을 받으며, 알려지지 않은 이름은 추측된 용도 대신 명시적인 미검증 폴백을 받습니다. 추출된 이름은 존재의 증거일 뿐, 코드가 이를 호출했다거나 샘플이 악성이라는 증명은 아닙니다.
결정론적 인벤토리를 로컬에서 출력하거나, 표시된 CLI 뷰를 필터링하거나, 정규 전체 인벤토리를 소유자 전용 JSON으로 작성하십시오:
aidebug --binary /path/to/sample.exe --strings --no-tui
aidebug --binary /path/to/sample.exe --strings --no-tui \
--string-encoding ascii --min-string-length 6 --string-category url
aidebug --binary /path/to/sample.exe --strings --no-tui \
--strings-output reports/sample-strings.json
AI 문자열 검토는 별도의 옵트인 작업입니다. 워크스페이스 안에서 A를 누르고 개인정보/비용 경고를 확인하거나, CLI 모드에서 명시적으로 요청하세요:
aidebug --binary /path/to/sample.exe --strings --no-tui \
--analyze-strings --accept-ai-cost \
--strings-output reports/sample-strings-ai.json