Dryxio/reagent
Reconstruct and validate C/C++ code from compiled programs with AI.
해결하는 문제
ReAgent는 컴파일된 바이너리에서 C/C++ 함수를 자동으로 재구성하도록 설계되었습니다. 일반적으로 읽기 어려운 원시 디컴파일러 출력과 검증 가능한 고품질 소스 코드 사이의 격차를 AI 에이전트를 활용해 바이너리 증거를 기반으로 반복적으로 구현을 개선함으로써 메우는 것을 목표로 합니다.
작동 방식
이 도구는 Ghidra와 통합되어 디컴파일 코드, 어셈블리, 제어 흐름 그래프(CFG), 크로스 레퍼런스 등의 증거를 수집하고 이를 LLM의 파이프라인에 공급합니다. "reverser" 모델은 후보 코드를 생성하고, 별도의 "checker" 모델은 이를 검증합니다.
이 과정은 엄격한 검증 워크플로우에 의해 관리됩니다:
- 구조적 검증: 생성된 코드를 바이너리 증거와 비교하여 강한 불일치를 탐지합니다.
- 빌드 및 테스트 게이트: 프로젝트별 빌드 및 테스트 명령어를 격리된 프로젝트 복사본에서 실행하여 코드가 실제로 컴파일되고 테스트를 통과하는지 확인합니다.
- 패리티 분석: 11개의 내장 히ュ리스틱 신호(예: 소스 누락 또는 호출 횟수 불일치 확인 등)를 사용해 잠재적 문제를 경고합니다.
대상 사용자
이 도구는 단일 분석을 위해 디컴파일러에서 수동으로 분석하는 것이 아니라, 프로젝트 규모로 바이너리에서 소스 코드를 재구성해야 하는 리버스 엔지니어 및 소프트웨어 분석가를 위한 것입니다.
주요 특징
- 자율적 워크플로우: 증거 수집, 구현, 검토를 제한된 루프 내에서 통합합니다.
- 다중 LLM 지원: Claude API/CLI, OpenAI 호환 API, Codex CLI와 호환됩니다.
- 격리된 검증: 빌드 및 테스트 명령어를 일시적인 프로젝트 복사본에서 실행하여 원본 소스 트리가 변경되지 않도록 합니다.
- 지식 그래프: 함수, 호출, 글로벌 변수를 연결하는 지속적인 증거 그래프를 생성합니다.
- 보수적 검증: 체커, 구조 검증기, 빌드 테스트, 패리티 신호의 다층적 접근 방식을 사용해 높은 신뢰도의 결과를 보장합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트