본문 바로가기

Hacking Tools

[Hacking Tools] JADX MCP와 Codex를 활용한 안드로이드 분석 환경 구성

반응형

1. Introduction

최근 AI 기술의 발전으로 다양한 분야에서 AI를 활용한 업무 효율화가 이루어지고 있으며, 모의해킹 및 취약점 진단에서도 AI를 활용한 분석 환경의 중요성이 높아지고 있다.

 

특히 안드로이드 애플리케이션 분석 시 JADX를 이용한 코드 탐색과 분석에는 많은 시간이 소요될 수 있다. 이를 개선하기 위해 JADX와 Codex를 MCP(Model Context Protocol)를 통해 연동하여 AI 기반의 코드 분석 환경을 구축하고자 한다.

 

이번 글에서는 JADX MCP 설치부터 Codex 연동까지의 과정을 정리한다.


2. Background Knowledge

2.1 JADX MCP란?

JADX MCP는 JADX의 코드 분석 기능을 MCP를 통해 AI 클라이언트에서 사용할 수 있도록 지원하는 도구이다.

 

이번 실습에서 사용하는 jadx-ai-mcp는 크게 두 가지 구성 요소로 이루어져 있다.

구성 요소 설명
JADX AI MCP Plugin JADX 내부에서 실행되며 디컴파일 결과 및 분석 기능을 외부에 제공
JADX MCP Server Codex의 MCP 요청을 받아 JADX 플러그인과 통신하는 Python 서버

 

전체적인 연동 구조는 다음과 같다.

  Codex
            │
            │ MCP (stdio)
            ▼
     JADX MCP Server
       (Python / uv)
            │
            │ HTTP
            ▼
     JADX AI MCP Plugin
      (127.0.0.1:8650)
            │
            ▼
         JADX-GUI
            │
            ▼
       APK 코드 분석

 

2.2 주요 기능

JADX MCP를 연동하면 Codex에서 다음과 같은 작업을 수행할 수 있다.

  • APK 내부 클래스 및 메서드 탐색
  • Java 디컴파일 코드 조회
  • 특정 문자열 및 코드 검색
  • 메서드 구현 분석
  • 클래스 및 메서드의 호출 관계 분석 지원

실제로 사용할 수 있는 기능은 설치한 JADX MCP 버전과 제공되는 도구 목록에 따라 달라질 수 있다.

 

3. Preparation

3.1 사전 요구사항

JADX MCP를 사용하기 위해 다음 환경이 필요하다.

항목 요구사항
JADX 1.5.1 이상
JAVA 11 이상 (JADX 배포판의 요구사항도 충족해야 함)
Python 3.10 이상
uv Python 실행 환경 및 의존성 관리

 

3.2 JADX 다운로드

아래 GitHub Releases 페이지에 접속하여 1.5.1 이상 버전의 JADX를 다운로드한다.

 

Releases · skylot/jadx

Dex to Java decompiler. Contribute to skylot/jadx development by creating an account on GitHub.

github.com

 

3.3 JADX MCP 다운로드

아래 GitHub Releases 페이지에 접속하여 JADX AI MCP 플러그인과 Python MCP 서버를 다운로드한다.

 

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

 

다운로드할 파일은 다음과 같다.

 

각 파일의 역할은 다음과 같다.

  • jadx-ai-mcp-<version>.jar: JADX-GUI에 설치할 플러그인
  • jadx-mcp-server-<version>. zip: Codex와 JADX 플러그인을 연결할 Python MCP 서버

두 파일은 가능한 한 동일한 릴리스 버전으로 준비한다.

 

다운로드한 ZIP 파일은 원하는 경로에 압축 해제한다.

 

이번 실습에서는 다음 경로를 사용했다.

C:\PC_setting_v1.0\03.Tools\jadx-mcp-server

 

4. Installation Guide

Step 1) JADX AI MCP 플러그인 설치

먼저 JADX-GUI를 실행하여 상단 Plugins → Manage Plugins → 플러그인에 접근한 후 다운로드한 jadx-ai-mcp-<version>.jar 파일 선택하여 플러그인 설치를 진행한 후 JADX-GUI 종료 후 재실행시킨다.

 

 

Step 2) JADX AI MCP 플러그인 실행 확인

JADX-GUI에서 분석할 APK 파일을 연다.

 

이후 Plugins → JADX AI MCP Server → Server Status 메뉴에 접근하여 서버 상태를 확인한다.

 

기본 포트는 8650이다.

 

 

Step 3) uv 설치

Python MCP 서버의 실행 환경을 구성하기 위해 uv를 설치한다.

 

uv는 Python 버전, 가상환경 및 패키지 의존성을 관리할 수 있는 도구이다.

 

Windows poershell을 관리자 권한으로 실행한 후 다음 명령어를 입력한다.

winget install --id=astral-sh.uv -e

 

설치가 완료되면 다음 명령어로 정상 설치 여부를 확인한다.

uv --version

 

버전 정보가 출력되면 설치가 정상적으로 완료된 것이다.

 

명령어가 인식되지 않는다면 PowerShell을 종료한 후 다시 실행하여 확인한다.

 

 

Step 4) Python MCP 서버 실행 환경 확인

Powershell에서 압축 해제한 Python MCP 서버 디렉터리로 이동한다.

cd "C:\PC_setting_v1.0\03.Tools\jadx-mcp-server"

 

이후 다음 명령어를 실행한다.

uv run jadx_mcp_server.py --help

 

해당 명령어는 Python MCP 서버의 실행 옵션을 출력한다.

 

정상적으로 실행되면 uv를 통해 MCP 서버 스크립트를 실행할 수 있는 환경이 준비된 것이다.

 

Step 5) uv 실행 파일 경로 확인

Codex 설정 파일에 MCP 서버를 등록하려면 uv 실행 파일의 경로를 확인해야 한다.

 

Powershell에서 다음 명령어를 실행한다.

(Get-Command uv).Source

 

출력된 경로를 복사해 두자

 

Step 6) Codex MCP 서버 등록

Codex에서 JADX MCP 서버를 사용하기 위해 설정 파일에 서버 정보를 등록한다.

 

PowerShell에서 다음 명령어를 실행하여 Codex 설정 파일을 연다.

notepad "$env:USERPROFILE\.codex\config.toml"

 

설정 파일의 기존 내용은 유지하고 맨 아래에 다음 설정을 추가한다.

[mcp_servers.jadx]
command = '[Step5에서 확인한 uv.exe 경로]'

args = [
    "--directory",
    'C:\PC_setting_v1.0\03.Tools\jadx-mcp-server(압축 푼 Python MCP 서버 경로)',
    "run",
    "jadx_mcp_server.py"
]

startup_timeout_sec = 120
항목 설명
[mcp_servers.jadx] Codex에 등록할 MCP 서버 이름
command uv 실행 파일 경로
args Python MCP 서버 실행에 필요한 인수
--directory MCP 서버 프로젝트 디렉터리
run uv를 이용한 Python 스크립트 실행
jadx_mcp_server.py MCP 서버 실행 스크립트
startup_timeout_sec MCP 서버 시작 대기 시간(초)

 

설정 파일을 저장한 후 Codex를 다시 실행하여 변경 사항을 적용한다.

 

VS Code에서 ctrl + Shift + P를 누르고 아래 명령어 실행

Developer: Reload Window

 

5. Verification

JADX로 분석을 진행할 APK 파일을 열린 상태에서 Codex를 실행한다.

 

VS Code로 New Folder을 연 후 다음과 같이 요청하여 MCP 도구가 정상적으로 호출되는지 확인한다.

현재 연결된 JADX MCP 도구 목록을 확인해줘.

 

JADX의 분석 결과가 Codex에 정상적으로 전달된다면 MCP 연동이 완료된 것이다.

반응형