Gepetto는 Python 플러그인으로 다양한 대형 언어 모델을 사용하여 IDA Pro (≥ 7.4)가 컴파일 한 기능에 의미를 제공합니다. 함수가 무엇을하는지 설명하고 변수의 이름을 자동으로 바꿀 수 있습니다. 다음은 몇 초 안에 어떤 결과를 제공 할 수 있는지에 대한 간단한 예입니다.

이 스크립트 ( gepetto.py 및 gepetto/ 폴더)를 IDA 플러그인 폴더 ( $IDAUSR/plugins )에 떨어 뜨리십시오. 기본적으로 Windows에서는 %AppData%Hex-RaysIDA Proplugins 이어야합니다 (생성해야 할 수도 있음).
스크립트가 작동하려면 필요한 패키지를 IDA의 파이썬 설치에 추가해야합니다. 다음 레지스트리 키를 확인하여 어떤 통역사 IDA가 사용하는지 찾으십시오. ComputerHKEY_CURRENT_USERSoftwareHex-RaysIDA (Windows의 기본값 : %LOCALAPPDATA%ProgramsPythonPython39 ). 마지막으로 해당 통역사를 사용하면 간단히 실행하십시오.
[/path/to/python] -m pip install -r requirements.txt
gepetto/config.ini 로 찾음)을 편집하고 자신의 API 키를 추가해야합니다. OpenAi의 경우이 페이지에서 찾을 수 있습니다. API 쿼리는 일반적으로 무료가 아니며 (비용이 많이 들지는 않지만) 해당 제공자와 결제 방법을 설정해야합니다.
OpenAI와 유사한 API를 노출시키는 공급자가 있으면 추가 모델에 대한 지원을 추가하는 것은 너무 어렵지 않아야합니다. 영감을 얻기 위해 gepetto/models 폴더를 살펴 보거나 알아낼 수없는 경우 문제를여십시오.
플러그인이 올바르게 설치되면 아래 스크린 샷과 같이 IDA의 의사 코드 창의 컨텍스트 메뉴에서이를 호출 할 수 있어야합니다.

편집> gepetto 메뉴에서 Gepetto가 지원하는 모델 간 전환 :

Gepetto는 또한 IDA에서 직접 LLM에 질문하는 데 사용할 수있는 CLI 인터페이스를 제공합니다. 입력 막대에서 Gepetto 선택하십시오.

다음과 같은 핫키를 사용할 수 있습니다.
Ctrl + Alt + GCtrl + Alt + R초기 테스트에 따르면 더 나은 이름을 요구하는 기능에 대한 설명을 먼저 요청하면 더 나은 이름이 더 잘 작동하는 것으로 나타났습니다. 모델이 고유 한 의견을 사용하여보다 정확한 제안을하기 때문에 가정합니다. AI의 답변에는 무작위성 요소가 있습니다. 어떤 이유로 든 초기 응답이 귀하에게 적합하지 않으면 언제든지 명령을 다시 실행할 수 있습니다.
구성에서 로케일을 편집하여 Gepetto의 언어를 변경할 수 있습니다. 예를 들어, 프랑스어로 플러그인을 사용하려면 간단히 추가합니다.
[Gepetto]
LANGUAGE = " fr_FR " 선택한 로케일은 gepetto/locales 의 폴더 이름과 일치해야합니다. 원하는 언어를 사용할 수 없으면 직접 추가하여 프로젝트에 기여할 수 있습니다! 원하는 로케일에 대한 새 폴더를 만들고 (예 : gepetto/locales/de_DE/LC_MESSAGES/ ) 업데이트 된 .po 파일로 새 풀 요청을 열면 gepetto/locales/gepetto.pot 복사하고 편집하여 생성 할 수 있습니다 ( msgstr 을 시작하여 모든 줄을 로컬 버전으로 교체하십시오).