개요
AI의 발전은 빠르게 이루어지고 있다. 안드로이드 정적 분석에 활용할 수 있는 MCP를 소개한다. 블로그에서 MCP를 직접 다룬 적은 없지만, AI가 다양한 외부 리소스(API, 데이터베이스, 플러그인 등)와 대화하는 언어 정도로 정리하고 넘어간다. 수천개의 MCP들이 개발되고 배포되고 있다. 프로토콜 표준은 정해졌지만 아직 공식 배포채널이 없어 많은 개발자들이 도구를 필요에 의해 개발하고 있다.
JADX 디컴파일러와 연동하여 사용할 수 있는 MCP이다.
https://github.com/zinja-coder/jadx-ai-mcp
GitHub - zinja-coder/jadx-ai-mcp: Plugin for JADX to integrate MCP server
Plugin for JADX to integrate MCP server. Contribute to zinja-coder/jadx-ai-mcp development by creating an account on GitHub.
github.com
주요 특징 및 동작 방식
- 자동화된 Android APK 분석 지원 (취약점 탐지, 매니페스트/리소스 파싱 등 AI 활용).
- 다양한 MCP 함수: 클래스/메서드 소스 추출, manifest/resource 조회, 앱 구성 파일 제공 등.
- Claude, LM Studio, Cursor IDE, Cherry Studio, 사용자 지정 LLM 환경 등과 연동 가능. (이 글에서는 cursor IDE와 연동)
- Python 기반 MCP 서버(jadx-mcp-server.py)와 AI plugin(.jar) 설치 필요. Python 패키지는 uv(의존성 관리), httpx, fastmcp 등을 사용.
설치 및 활용 요약
1. jadx 및 cursor 설치
[jadx] https://github.com/skylot/jadx/releases
[cursor] https://cursor.com/download
2. JADX-GUI에 플러그인 설치: GUI 내 플러그인 관리 기능 또는 수동 .jar 설치.
- GitHub에서는 jadx-ai-mcp-<version>.jar와 jadx-mcp-server-<version>.zip 다운로드하여 설치하는 방법도 안내하고 있다.
- jadx 실행하여 plugin으로도 설치 가능하다.
3. jadx-mcp-server 준비
https://github.com/zinja-coder/jadx-ai-mcp/releases
Releases · zinja-coder/jadx-ai-mcp
Plugin for JADX to integrate MCP server. Contribute to zinja-coder/jadx-ai-mcp development by creating an account on GitHub.
github.com
MCP 서버 파일(jadx-mcp-server-vX.X.X.zip)을 내려받아 jadx_mcp_server.py을 준비한다.
(옵션) jadx-gui에서 플러그인 설치를 수동으로 하고자 한다면 .jar 파일을 내려받아 import 하면 된다.
4. MCP 서버 환경 구축: uv로 환경 준비 후 Python MCP 서버 실행.
python uv를 통한 가상환경에서 설치한다.
# On Windows PowerShell.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
# set ENV
$env:Path = "C:\Users\rharn\.local\bin;$env:Path"
PS> uv venv --python 3.13
uv venv --python 3.13
Using CPython 3.13.07
Creating virtual environment at: .venv
Activate with: .venv\Scripts\activate
# 실행 정책 변경
PS> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
# 실행 정책 원복(필요시)
# Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope CurrentUser
PS> .\.venv\Scripts\activate # 가상환경 activate
(jadx-mcp) > uv pip install httpx fastmcp # 의존성 설치
5. AI/IDE 연동: Claude Desktop, Cursor, LM Studio 등에서 mcp.json 등으로 서버 연결 설정.
Cusor 설정 > MCP > Add Custom MCP 순서로 들어가면 설정파일(json)을 수정할 수 있다.
mcp.json의 내용을 다음과 같이 수정한다. 상세 경로는 설정에 맞게 변경
{
"mcpServers": {
"jadx-mcp-server": {
"command": "C:\\Users\\user\\.local\\bin\\uv.exe",
"args": [
"--directory",
"C:\\Users\\user\\.venv\\jadx-mcp-server",
"run",
"jadx_mcp_server.py"
]
}
}
}
설정이 완료되면, 정상적으로 로드된 MCP와 이용가능한 함수를 확인할 수 있다.
6. 실시간 분석: 코드, 메니페스트, 리소스에 대한 실시간 LLM 기반 분석 요청 가능.
연결된 후에는 cursor의 프롬프트에 수행하고자 하는 프롬프트를 입력하면 된다. 샘플 앱의 메인 액티비티와 어떤 행위를 가장 먼저 수행하는지 분석하도록 요청했다. 악성행위(피싱)를 하는 앱을 대상으로 해본다.
요청 받은 프롬프트에 따라 분석 계획을 잡고, 난독화와 실행 로직까지 분석하여 상세하게 알려준다. 이것 이외에도 클래스, 메소드 탐색, 실행 분기 흐름 분석, 문자열 노출 등 다양한 명령을 자연어로 수행할 수 있다.
앱 설치 파일을 디컴파일하여 얻을 수 있는 정적 분석 정보를 수집하는 데에 시간을 크게 단축시킬 수 있다.
'Security > └ 안드로이드 취약점 진단' 카테고리의 다른 글
[Androidmeda] LLM Powered Deobfuscation for Android Apps (1) | 2025.09.10 |
---|---|
[Fridump3] Frida 17 이상 버전에서 Not a function 에러 해결 (1) | 2025.08.13 |
[안드로이드 모의해킹] 메모리 내 중요정보 평문 노출 (1) | 2024.11.26 |
[안드로이드 모의해킹] 코드 패치와 앱 무결성 검증 (NDK 코드 분석) (0) | 2024.11.17 |
[안드로이드 모의해킹] 코드 패치와 앱 무결성 검증 (smali 코드 분석) (4) | 2024.11.16 |