Jadx MCP Server

by mobilehackinglab
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

⚙️ Jadx MCP 플러그인 - MCP를 통한 Claude 디컴파일러 액세스

이 프로젝트는 Java 로 작성된 Jadx 플러그인을 제공합니다. 이 플러그인은 HTTP를 통해 Jadx API를 노출하여 Claude 와 같은 MCP 클라이언트와 MCP(Model Context Protocol) 를 통해 실시간 상호작용을 가능하게 합니다. Python으로 작성된 경량 FastMCP 어댑터는 Claude와 플러그인을 연결하는 다리 역할을 합니다. 이를 통해 리버스 엔지니어링 워크플로의 지능적인 탐색 및 자동화가 가능해져, 안드로이드 앱의 AI 기반 보안 분석에 이상적입니다.


🧰 설정 지침

지엑스피1

Python 종속성 설치

pip install -r requirements.txt

🧠 Claude MCP 클라이언트 통합 설정

Claude Desktop에서 이 어댑터를 사용하려면 File -> Settings -> Developer -> Edit Config -> claude_desktop_config.json 으로 이동한 후 venv에 있는 Python 실행 파일을 가리키는 MCP 서버를 추가하고(종속성 문제를 방지하기 위해) 아래 예시에 따라 전체 어댑터 경로를 추가합니다.

윈도우:

{ "mcpServers": { "Jadx MCP Server": { "command": "C:\\Workset\\jadx-mcp-plugin\\venv\\Scripts\\python.exe", "args": ["C:\\Workset\\jadx-mcp-plugin\\fastmcp_adapter.py"] } } }

MacOS / Linux:

{ "mcpServers": { "Jadx MCP Server": { "command": "/Users/yourname/jadx-mcp-plugin/venv/bin/python", "args": ["/Users/yourname/jadx-mcp-plugin/fastmcp_adapter.py"] } } }

설정을 편집한 후에는 Claude를 다시 시작(종료)하세요. 다시 시작하면 다음과 같습니다.

✅ 사용 흐름

  1. plugins/ 폴더에 있는 릴리스 의 최신 플러그인 JAR로 Jadx를 열거나 Plugins -> install plugin 통해 로드합니다.
  2. APK 또는 DEX 파일 로드
  3. (선택 사항) Jadx를 실행하여 HTTP 인터페이스 주소를 지정할 수 있습니다.
    jadx-gui -Pjadx-mcp.http-interface=http://localhost:8085
    기본 호스트/포트( http://localhost:8085 )를 변경하려는 경우 유용합니다.

    참고: 여기서 인터페이스 주소를 변경하는 경우 fastmcp_adapter.py 에서 해당 URL도 일치하도록 업데이트해야 합니다.

  4. 클로드는 Jadx MCP 서버 도구를 감지하고 활성화합니다.
  5. 이제 클래스를 나열하고, 소스를 가져오고, 메서드/필드를 검사하고, 코드를 실시간으로 추출할 수 있습니다.

🧪 제공되는 도구

도구설명
list_all_classes모든 디컴파일된 클래스 이름 가져오기
search_class_by_name문자열과 일치하는 클래스 찾기
get_class_source주어진 클래스의 전체 소스를 얻으세요
search_method_by_name문자열과 일치하는 메서드 찾기
get_methods_of_class클래스의 모든 메서드 이름 나열
get_fields_of_class클래스의 모든 필드 이름 나열
get_method_code메서드에 대한 디컴파일된 코드 추출

🛠 개발

☕ 자바 플러그인

Java 플러그인은 다음 위치에 있습니다.

plugin/src/main/java/com/mobilehackinglab/jadxplugin/McpPlugin.java

JadxPlugin API( jadx.api.* )를 사용하여 다음을 수행합니다.

  • 디컴파일된 클래스 및 메서드 로드
  • 내장된 HTTP 서버를 통해 구조화된 데이터 제공
  • /invoke/tools 엔드포인트에 응답합니다.

🚀 Gradle 작업을 통한 자동 설치

다음 Gradle 작업을 사용하면 한 단계로 플러그인을 빌드하고 설치할 수 있습니다.

./gradlew installPlugin

jadx plugins CLI를 사용합니다. Jadx가 설치되어 있고 PATH 에 등록되어 있는지 확인하세요.

플러그인 관련 작업(제거, 활성화/비활성화)에 대해서는 plugin/build.gradle 에 있는 작업 정의를 참조하세요.

🔧 수동 설치

플러그인을 빌드하려면:

./gradlew build # Output: plugin/build/libs/jadx-mcp-plugin-<version>.jar

jadx plugins CLI를 사용하여 플러그인 JAR을 설치하세요.

jadx plugins --install-jar path/to/jadx-mcp-plugin-<version>.jar

또는 빌드된 .jar 파일을 Jadx plugins/ 폴더에 넣으세요. 일반적으로 이 폴더 ~/.jadx/plugins/ 에 있습니다.

JAR을 수동으로 배치하는 경우 Jadx GUI를 통해 또는 다음을 실행하여 플러그인을 활성화해야 합니다.

jadx plugins --enable jadx-mcp

Python FastMCP 어댑터

어댑터 파일은 다음과 같습니다.

fastmcp_adapter.py

Claude의 MCP 도구 호출을 실행 중인 Jadx 플러그인 서버에 대한 HTTP POST로 변환합니다. Claude를 시작하기 전에 Jadx가 열려 있는지 확인하세요.


🤝 기여하기

PR, 기능 요청, 도구 확장을 환영합니다!
이 프로젝트는 Mobile Hacking Lab 에서 관리하고 있습니다.


🧩 크레딧

-
security - not tested
F
license - not found
-
quality - not tested

HTTP를 통해 Jadx 디컴파일러 API를 제공하는 서버로, Claude가 디컴파일된 Java/Android 코드와 상호 작용하여 클래스를 나열하고, 소스 코드를 가져오고, 메서드/필드를 검사하고, 코드를 실시간으로 추출할 수 있도록 합니다.

  1. 🧰 Setup Instructions
    1. Install Python dependencies
      1. 🧠 Setup Claude MCP CLient Integration
        1. ✅ Usage Flow
          1. 🧪 Tools Provided
            1. 🛠 Development
              1. ☕ Java Plugin
              2. Python FastMCP Adapter
            2. 🤝 Contributing
              1. 🧩 Credits
                ID: v44v7i9np4