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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/ahaggard2013/binaryninja-ollama
Code AnalysisReverse EngineeringPrivacyBinary AnalysisMachine LearningAI-Assisted Reversing
GitHubahaggard2013/binaryninja-ollama

binaryninja-ollama

Binary Ninja용 플러그인으로, 로컬 Ollama 모델을 통합하여 디컴파일된 HLIL 코드에서 함수와 변수의 이름을 바꿉니다. 분석을 완전히 로컬 및 오프라인으로 유지하여 개인정보를 보호합니다.

저장소 보기
831181년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

"Buy Me A Coffee"

Binary Ninja Ollama (v1.0.9)

작성자: Austin Haggard

Binary Ninja Ollama는 자체 호스팅 ollama 서버와 통합하여 AI로 함수와 변수의 이름을 바꿔줍니다.

설명:

Ollama는 오픈 소스 AI 모델을 내려받아 로컬에서 실행할 수 있게 해주는 도구입니다. 일부 모델은 막대한 컴퓨팅 성능을 요구하지만, 다른 모델은 개인 노트북에서도 실행할 수 있습니다. 선택하는 모델에 따라 결과는 크게 달라질 수 있습니다 :).

사이드킥(sidekick)/openai 대신 이 플러그인을 사용하는 이유는 무엇일까요?

  1. 무료이고 로컬에 쉽게 설정할 수 있습니다.
  2. 무료라고 말했나요?
  3. 인터넷 없이도 어디서든 실행할 수 있습니다!
  4. 귀하의 데이터는 제3자 없이 귀하와 ollama 서버 사이에만 유지됩니다.

기능

이 플러그인은 Ollama를 Binary Ninja와 통합하며 아래 나열된 작업을 지원합니다:

  • Binary Ninja가 ollama에 연결할 때 사용할 서버/포트를 설정합니다.
    • (아주) 고성능 게이밍 PC를 가지고 있나요? 그 PC로 ollama를 호스팅하고 binja를 llama3:70b/gemma2:27b로 지정하세요.
    • 노트북에서 실행 중인가요? 로컬에서 호스팅하고 localhost로 설정한 뒤 gemma2:latest/llama3:latest를 실행하세요.
    • 시도해 볼 수 있는 다른 모델도 많지만, 저는 주로 llama3/gemma2 변형 모델로 테스트했고 괜찮은 결과를 얻었습니다.
  • 로컬에서 호스팅되는 ollama 서버에 질의하여 주어진 함수가 무엇을 하는지 파악합니다.
    • 이 기능을 사용해 모든 함수를 일괄적으로 또는 개별 대상 함수의 이름을 바꿀 수 있습니다.
  • 사용자가 ollama를 사용해 HLIL의 변수 이름을 바꿀 수 있게 합니다.
    • 이 기능을 사용해 한 명령어 내의 개별 변수 이름을 바꿀 수 있습니다.
    • 이 기능을 사용해 한 함수 내의 모든 변수 이름을 바꿀 수 있습니다.

설치

이 플러그인을 독립형 플러그인으로 설치하려면 Binary Ninja의 플러그인 경로에 배치(또는 심볼릭 링크)하면 됩니다. 기본 경로는 Vector 35의 문서에 자세히 설명되어 있습니다.

의존성

  • Python 3.10+
  • pip3 install ollama로 설치된 ollama

Ollama 서버

이 플러그인을 사용하려면 자신만의 ollama 서버에 접근하거나 호스팅하고, 사용하고 싶은 모델을 다운로드해야 합니다.

https://ollama.com의 지침에 따라 서버를 설정하고 시도해 볼 모델을 내려받으세요. 완료되면 서버가 자동으로 시작되며 localhost:11434로 접근할 수 있습니다.

사용법

모든 함수 변수 이름 바꾸기

"모든 함수 변수 이름 바꾸기" 옵션은 함수 내 모든 변수를 파싱하고 다음 프롬프트를 기반으로 이름을 바꾸려고 시도합니다:

root@kitploit:~
prompt = (
             f"In one word, what should the variable '{variable}' be named in the below Function? "
             f"The name must meet the following criteria: all lowercase letters, usable in Python code"
)

변수 이름 바꾸기 전 변수 이름 바꾸기 후

모든 함수 이름 바꾸기

"모든 함수 이름 바꾸기" 옵션은 binaryview 내의 모든 함수를 크기순(작은 것부터 큰 것까지)으로 순회하며 다음 프롬프트를 기반으로 이름을 바꿉니다:

root@kitploit:~
prompt = (
    f"Given the following HLIL decompiled code snippet, provide a Python-style function name that describes what the code is doing. "
    f"The name must meet the following criteria: all lowercase letters, usable in Python code, with underscores between words. "
    f"Only return the function name and no other explanation or text data included."
)

함수 이름 바꾸기 전 함수 이름 바꾸기 후 함수 이름 바꾸기 후

대상 함수 이름 바꾸기

대상 함수의 이름을 바꾸는 것은 모든 함수 이름 바꾸기와 동일한 프롬프트를 사용하지만, 플러그인을 실행할 때 선택한 함수로 제한됩니다.

대상 함수 변수 이름 바꾸기

대상 변수의 이름을 바꾸는 것은 모든 변수 이름 바꾸기와 동일한 프롬프트를 사용하지만, 플러그인을 실행할 때 선택한 함수로 제한됩니다.

설정

설정은 Binary Ninja를 처음 시작한 후 첫 번째 이름 바꾸기 작업을 호출할 때, 또는 수동으로 트리거할 때 실행됩니다. 적용된 설정은 Binary Ninja 세션 내에서 유지됩니다.

설정 창에서는 ollama에서 사용할 IP, 포트 및 모델을 설정할 수 있습니다. 다운로드된 모델만 선택할 수 있습니다.

플러그인 설정 옵션 플러그인 연결 옵션 플러그인 모델 옵션

알려진 문제점

  • 더 큰 함수에서는 AI가 프롬프트를 무시하고 함수를 설명하는 큰 텍스트 블록을 반환합니다. 이 경우 반환된 값을 무시하고 "함수 이름을 바꿀 수 없음" 로그를 출력하여 완화되지만, 추가 조사가 필요할 수 있습니다.
  • 선택한 서버가 존재하지 않을 때의 처리를 개선할 수 있습니다.

기능 요청

  • 포함되지 않았지만 관심 있는 기능이 있나요?

    • 이슈를 열어주세요!
    • 풀 리퀘스트를 만들어 주세요.
  • 아이디어:

    • 한 줄의 모든 변수 대신 개별 변수 이름 지정
    • 코드를 설명하는 AI 주석 생성
    • 구조 복구

라이선스

이 플러그인은 MIT 라이선스로 배포됩니다.

도구 다운로드