업데이트로 돌아가기
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

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

cargo add oneiromancer

컴파일

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

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

설정

  1. Ollama를 다운로드하고 설치합니다.
  2. Hugging Face에서 파인튜닝된 가중치와 Ollama modelfile을 다운로드합니다:
    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

크레딧

  • 파인튜닝 LLM aidapal을 제공한 Atredis Partners의 Chris Bellows(@AverageBusinessUser)님께 감사드립니다 <3

변경 내역

TODO

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

카테고리