⚙️ 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를 다시 시작(종료)하세요. 다시 시작하면 다음과 같습니다.
✅ 사용 흐름
plugins/폴더에 있는 릴리스 의 최신 플러그인 JAR로 Jadx를 열거나Plugins->install plugin통해 로드합니다.APK 또는 DEX 파일 로드
(선택 사항) Jadx를 실행하여 HTTP 인터페이스 주소를 지정할 수 있습니다.
jadx-gui -Pjadx-mcp.http-interface=http://localhost:8085기본 호스트/포트(
http://localhost:8085)를 변경하려는 경우 유용합니다.참고: 여기서 인터페이스 주소를 변경하는 경우
fastmcp_adapter.py에서 해당 URL도 일치하도록 업데이트해야 합니다.클로드는 Jadx MCP 서버 도구를 감지하고 활성화합니다.
이제 클래스를 나열하고, 소스를 가져오고, 메서드/필드를 검사하고, 코드를 실시간으로 추출할 수 있습니다.
Related MCP server: Coder Toolbox MCP Server
🧪 제공되는 도구
도구 | 설명 |
| 모든 디컴파일된 클래스 이름 가져오기 |
| 문자열과 일치하는 클래스 찾기 |
| 주어진 클래스의 전체 소스를 얻으세요 |
| 문자열과 일치하는 메서드 찾기 |
| 클래스의 모든 메서드 이름 나열 |
| 클래스의 모든 필드 이름 나열 |
| 메서드에 대한 디컴파일된 코드 추출 |
🛠 개발
☕ 자바 플러그인
Java 플러그인은 다음 위치에 있습니다.
plugin/src/main/java/com/mobilehackinglab/jadxplugin/McpPlugin.javaJadxPlugin API( jadx.api.* )를 사용하여 다음을 수행합니다.
디컴파일된 클래스 및 메서드 로드
내장된 HTTP 서버를 통해 구조화된 데이터 제공
/invoke및/tools엔드포인트에 응답합니다.
🚀 Gradle 작업을 통한 자동 설치
다음 Gradle 작업을 사용하면 한 단계로 플러그인을 빌드하고 설치할 수 있습니다.
./gradlew installPlugin
jadx pluginsCLI를 사용합니다. Jadx가 설치되어 있고PATH에 등록되어 있는지 확인하세요.
플러그인 관련 작업(제거, 활성화/비활성화)에 대해서는 plugin/build.gradle 에 있는 작업 정의를 참조하세요.
🔧 수동 설치
플러그인을 빌드하려면:
./gradlew build
# Output: plugin/build/libs/jadx-mcp-plugin-<version>.jarjadx 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-mcpPython FastMCP 어댑터
어댑터 파일은 다음과 같습니다.
fastmcp_adapter.pyClaude의 MCP 도구 호출을 실행 중인 Jadx 플러그인 서버에 대한 HTTP POST로 변환합니다. Claude를 시작하기 전에 Jadx가 열려 있는지 확인하세요.
🤝 기여하기
PR, 기능 요청, 도구 확장을 환영합니다!
이 프로젝트는 Mobile Hacking Lab 에서 관리하고 있습니다.