업데이트로 돌아가기
New releaseAug 13, 2026

oneiromancer v0.9.1

리버스 엔지니어링 도우미로, 로컬에서 실행되는 LLM을 사용하여 의사 코드(pseudocode) 분석을 돕습니다.

공유

oneiromancer

build

"소프트웨어 개발에서 발생하는 결함의 상당 부분은 프로그래머가 자신의 코드가 실행될 수 있는 모든 가능한 상태를 완전히 이해하지 못하기 때문에 발생한다." -- John Carmack

"Doom이 돌아가나요?" -- https://canitrundoom.org/

Oneiromancer는 Hex-Rays 의사코드에 맞게 미세 조정된 로컬 LLM을 사용하여 코드 분석을 지원하는 리버스 엔지니어링 어시스턴트입니다. 함수나 더 작은 코드 조각을 분석하여 코드가 수행하는 작업에 대한 고수준 설명, 함수에 권장되는 이름, 변수 이름 변경 제안을 분석 결과에 기반하여 반환합니다.

기능

  • mistral-7b-instruct를 기반으로 미세 조정된 LLM aidapal에 대한 크로스 플랫폼 지원.
  • 의사코드 추출기 haruspex 및 인기 있는 IDE와의 손쉬운 통합.
  • 코드 설명, 권장 함수 이름, 변수 이름 변경 제안이 터미널에 출력됩니다.
  • 분석된 각 함수의 개선된 의사코드가 별도 파일로 저장되어 쉽게 검토할 수 있습니다.
  • 외부 크레이트에서 analyze_code 또는 analyze_file을 호출하여 의사코드를 분석한 후 분석 결과를 처리할 수 있습니다.

기사

참고 항목

설치

최신 릴리스를 얻는 가장 쉬운 방법은 crates.io를 이용하는 것입니다:

cargo install oneiromancer --locked

라이브러리로 설치하려면 프로젝트 디렉터리에서 다음 명령을 실행하세요:

cargo add oneiromancer

컴파일

또는 소스에서 빌드할 수 있습니다:

git clone --depth 1 https://github.com/0xdea/oneiromancer
cd oneiromancer
cargo build --release --locked

구성

  1. Ollama를 다운로드하여 설치합니다.
  2. Hugging Face에서 미세 조정된 가중치와 Ollama 모델 파일을 다운로드합니다:
    wget https://huggingface.co/AverageBusinessUser/aidapal/resolve/main/aidapal-8k.Q4_K_M.gguf
    wget https://huggingface.co/AverageBusinessUser/aidapal/resolve/main/aidapal.modelfile
    
  3. 파일을 다운로드한 디렉터리에서 다음 명령을 실행하여 Ollama를 구성합니다:
    ollama create aidapal -f aidapal.modelfile
    ollama list
    

사용법

  1. 다음과 같이 oneiromancer를 실행합니다:
    export OLLAMA_BASEURL=custom_baseurl # if not set, the default will be used
    export OLLAMA_MODEL=custom_model # if not set, the default will be used
    oneiromancer <target_file>.c
    
  2. <target_file>.out.c에서 개선된 의사코드를 확인합니다:
    vim <target_file>.out.c
    code <target_file>.out.c
    

[!TIP] 최상의 결과를 얻으려면 한 번에 하나의 함수만 LLM에 제출하여 분석하세요.

호환성

다음 환경에서 Ollama 0.32.9로 테스트되었습니다:

  • Apple macOS Tahoe 26.5.2
  • Ubuntu Linux 24.04.2 LTS
  • Microsoft Windows 11 23H2

크레딧

  • Atredis Partners의 Chris Bellows(@AverageBusinessUser)가 미세 조정한 LLM aidapal <3

변경 로그

TODO

  • 버전 관리 및/또는 출력 디렉터리를 통한 출력 파일 처리 개선.
  • IDAPython aidapal IDA Pro 플러그인의 다른 기능 구현(예: 컨텍스트).
  • haruspex 및 idalib과 통합.
  • "마이너리티 리포트" 프로토콜 구현(즉, 세 번 질의하고 최상의 응답을 선택).
  • 잠재적인 코드 손상을 방지하기 위해 변수 이름 변경의 리팩터링 고려.
  • aidapal LLM의 다른 사용 사례 조사 및 사용자 정의 LLM을 플러그인할 수 있는 모듈식 아키텍처 구현.

카테고리