반응형

GhidraMCP와 클로드, 제미나이 CLI를 사용해 보자.

 

Claude에 가입하고 Claude Desktop을 설치한다.

GhidraMCP를 다운로드하고 압축을 푼다. 압축을 풀면 아래와 같은 2개의 파일이 나온다.

 - GhidraMCP-(version).zip

 - bridge_mcp_ghidra.py

이 중 bridge_mcp_ghidra.py 파일은 Ghidra 설치 폴더에 복사한다. (예: D:\ProgramFiles\ghidra)

 

File - Install Extensions 를 선택한다.

 

오른쪽 상단의 + 버튼을 클릭하고 GhidraMCP-(version).zip을 선택한 후 체크 표시가 되면 OK를 클릭한다. 그리고 Ghidra를 다시 실행한다.

 

CodeBrowser에서 File - Configure를 선택한다.

 

Developer - Configure - GhidraMCPPlugin이 체크되어 있는지 확인한다.

 

 

Claude - 파일 - 설정을 클릭한다.

 

개발자 - 구성 편집을 클릭한다.

 

Claude 폴더 - claude_desktop_config.json 파일을 아래 코드와 같이 편집한다.

 

{
  "mcpServers": {
    "ghidra": {
      "command": "python",
      "args": [
        "D:\\ProgramFiles\\ghidra\\bridge_mcp_ghidra.py",
        "--ghidra-server",
        "http://127.0.0.1:8080/"
      ]
    }
  }
}

 

위에서 Ghidra 설치 폴더로 복사해 둔 bridge_mcp_ghidra.py 의 경로 D:\ProgramFiles\ghidra 표현 시 역슬래시 2개를 사용하는것에 주의한다.

 

 

Claude - 파일 - 종료를 선택해 종료하고 Claude를 다시 실행한다. 오른쪽 상단 X 버튼을 클릭해 종료하면 진짜 종료되지 않는다.

 

Claude를 다시 실행해 보면 로컬 MCP 서버가 실행되고 있다.

 

다시 첫 화면으로 돌아와 검색 및 도구 버튼을 클릭하면 ghidra가 활성화 되어 있다.

 

Ghidra로 원하는 프로그램을 분석하다가 FUN_00401130 함수의 역할이 궁금해졌다고 가정하자.

 

 

원하는 함수를 분석해 결과를 알려준다.

 

변수 이름을 알기쉽게 바꿔 달라고 요청해 본다.

 

변수 이름 뿐만 아니라 함수 이름까지 적당히 바꿔서 결과를 출력해 준다.

 

함수 위치에서 대충 질문해도 알아서 잘 답해준다.

 

 

Gemini-CLI를 설치한다.

 

Gemini CLI의 세팅 파일은 settings.json이다.

 

{
  "selectedAuthType": "oauth-personal",
  "theme": "Default",
  "mcpServers": {
    "ghidra-mcp": {
      "command": "python",
      "args": [
        "D:\\ProgramFiles\\ghidra\\bridge_mcp_ghidra.py",
        "--ghidra-server",
        "http://127.0.0.1:8080/"
      ]
    }
  }
}

 

settings.json을 위와 같이 작성한다.

 

Gemini CLI를 실행하면 위와 같이 1개의 MCP server가 사용되고 있음이 표시된다.

 

Ctrl+t 키를 누르면 사용 가능한 툴이 표시된다.

 

Ghidra에서 분석을 진행하다 궁금한게 있다면 질문하고 답변을 받을 수 있다.

 

반응형
Posted by J-sean
: