Skip to main content
Glama

Apktool MCP Server

apktool-mcp-server(Zin의 역엔지니어링 MCP 제품군의 일부)

⚡ 클로드와 같은 LLM을 사용하여 Android APK를 분석하기 위해 apktool 위에 구축된 완전 자동화된 MCP 서버입니다. 이를 통해 취약점을 발견하고, 매니페스트를 분석하고, 손쉽게 리버스 엔지니어링을 수행할 수 있습니다.

GitHub 기여자 apktool-mcp-serverGitHub 모든 릴리스GitHub 릴리스(SemVer 기준 최신)최신 릴리스파이썬 3.10+

AI 도구를 사용하여 생성된 이미지입니다.


🤖 apktool-mcp-server는 무엇인가요?

apktool-mcp-server는 Claude와 같은 LLM에 대한 라이브 리버스 엔지니어링 지원을 제공하기 위해 Model Context Protocol(MCP) 과 직접 통합되는 Apk Tool 용 MCP 서버입니다.

생각해 보세요: "디컴파일 → 컨텍스트 인식 코드 검토 → AI 추천" - 모두 실시간으로 진행됩니다.

데모를 보세요!

https://github.com/user-attachments/assets/d50251b8-6b1c-4341-b18e-ae54eb24a847

  • CTF 해결

https://github.com/user-attachments/assets/c783a604-a636-4e70-9fa8-37e3d219b20b

Zin MCP Suite의 다른 프로젝트

현재 MCP 도구

사용 가능한 MCP 도구는 다음과 같습니다.

  • build_apk() — 디코딩된 APKTool 프로젝트에서 APK를 빌드합니다.
  • get_manifest() — 디코딩된 APK 프로젝트에서 AndroidManifest.xml 콘텐츠를 가져옵니다.
  • get_apktool_yml() — 디코딩된 APK 프로젝트에서 apktool.yml 정보를 가져옵니다.
  • list_smali_directories() — 프로젝트에 있는 모든 smali 디렉토리를 나열합니다.
  • list_smali_files() — 특정 smali 디렉토리에 있는 smali 파일을 나열합니다. 선택적으로 패키지 접두사로 필터링합니다.
  • get_smali_file() — 클래스 이름으로 특정 smali 파일의 내용을 가져옵니다.
  • modify_smali_file() — 특정 smali 파일의 내용을 수정합니다.
  • list_resources() — 프로젝트의 리소스를 나열하고, 선택적으로 리소스 유형별로 필터링합니다.
  • get_resource_file() — 특정 리소스 파일의 콘텐츠를 가져옵니다.
  • modify_resource_file() — 특정 리소스 파일의 내용을 수정합니다.
  • search_in_file() — 지정된 확장자를 가진 파일에서 패턴을 검색합니다.
  • clean_project() — 재구축을 준비하기 위해 프로젝트 디렉토리를 정리합니다.
  • decode_apk() — APKTool을 사용하여 APK 파일을 디코딩하고 리소스와 smali 코드를 추출합니다.

🗒️ 샘플 프롬프트

🔍 기본 코드 이해

  • "dvac 프로젝트에 대한 모든 smali 디렉토리를 나열하세요."
  • "dvac 프로젝트에서 패키지 접두사 com.vulnerable.component 아래에 있는 모든 smali 파일을 보여주세요."
  • "com.vulnerable.component.MainActivity 클래스에 대한 smali 코드를 가져오세요."
  • “MainActivity.smali를 이전 버전과 비교하고 차이점을 보여주세요.”
  • dvac 프로젝트의 smali 파일에서 startActivity 사용법을 검색하세요.

🛡️ 취약점 탐지

  • “dvac AndroidManifest.xml에 선언된 권한을 분석하고 위험한 권한을 표시합니다.”
  • "프로젝트의 모든 .xml 및 .smali 파일에서 하드코딩된 URL이나 IP를 검색합니다."
  • "smali 파일에서 PendingIntent.getActivity의 모든 용도를 찾아보세요."
  • “dvac의 AndroidManifest.xml에서 내보낸 활동이나 수신기를 확인하세요.”
  • "android.permission.SEND_SMS 또는 READ_CONTACTS에 액세스하는 모든 smali 파일을 나열하세요."

🛠️ 리버스 엔지니어링 도우미

  • "이 APK를 디코딩하세요: dvac.apk 그리고 dvac라는 프로젝트를 만드세요."
  • "test-harness라는 이름의 새로운 APKTool 프로젝트를 만듭니다."
  • "재구축하기 전에 DVAC 프로젝트를 청소하세요."
  • "외부 분석을 위해 dvac 프로젝트에서 DEX 파일을 추출합니다."
  • "onCreate()의 시작 부분에 로그 줄을 삽입하려면 MainActivity.smali를 수정하세요."

📦 정적 분석

  • “dvac 프로젝트에서 AndroidManifest.xml 전체를 가져옵니다.”
  • "dvac 프로젝트에 대한 apktool.yml의 내용을 보여주세요."
  • "레이아웃 유형의 모든 리소스 파일을 나열합니다."
  • "모든 리소스 및 smali 파일에서 password라는 단어를 검색하세요."
  • "어떤 권한이 사용되는지 확인하고 일반적인 과도한 권한 부여 위험과 비교하세요."

🤖 AI 코드 수정

  • "MainActivity.smali의 onCreate() 메서드를 수정하여 토스트 메시지를 추가합니다."
  • "strings.xml에서 모든 http:// 링크를 https://로 바꾸세요."
  • “AndroidManifest.xml의 모든 액티비티에 android=false 속성을 추가합니다.”
  • "LoginManager.smali의 validateLogin 메서드를 패치하여 항상 true를 반환하도록 합니다."
  • "MainActivity.smali의 모든 메서드에 로깅 문을 추가합니다."

📄 문서 및 메타데이터

  • "작업 공간에 있는 모든 디코딩된 APKTool 프로젝트를 나열합니다."
  • "apktool.yml 구성을 보고 버전, 원본 APK 메타데이터, 압축 설정을 검토해 보세요."
  • "ADB를 통해 연결된 모든 Android 기기를 가져옵니다. (ADB MCP 서버로 마이그레이션됩니다.)"
  • "apktool.yml에서 프로젝트 dvac에 대한 메타데이터를 가져옵니다."
  • "현재 서버에 설치된 APKTool 버전을 확인하세요."

🛠️ 시작하기

1. 릴리스에서 다운로드: https://github.com/zinja-coder/apktool-mcp-server/releases

지엑스피1

2. Ollama 및 Zin MCP 클라이언트를 사용하여 로컬 LLM에서 실행 - 권장

⚡ STDIO MCP 서버용의 가볍고 빠르며 간단한 CLI 기반 MCP 클라이언트로, Ollama와 MCP 서버를 실행하는 로컬 LLM 간의 간극을 메우고 연결해 줍니다.

지금 확인하세요: https://github.com/zinja-coder/zin-mcp-client

데모: 곧 출시됩니다.

🤖 3. 클로드 데스크탑 설정

Claude Desktop이 MCP를 활성화하여 실행되고 있는지 확인하세요.

예를 들어, 저는 Kali Linux에 대해 다음을 사용했습니다: https://github.com/aaddrick/claude-desktop-debian

LLM 파일에 MCP 서버를 구성하고 추가합니다.

nano ~/.config/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

그리고 그 안에는 다음과 같은 내용이 있습니다:

{ "mcpServers": { "apktool-mcp-server": { "command": "/<path>/<to>/uv", "args": [ "--directory", "</PATH/TO/>apktool-mcp-server/", "run", "apktool_mcp_server.py" ] } } }

바꾸다:

  • uv 실행 파일의 실제 경로를 path/to/uv 로 지정합니다.
  • 이 저장소를 복제한 절대 경로를 포함하는 path/to/apktool-mcp-server

그런 다음 내장된 통합 기능을 사용하여 코드를 탐색하고 실시간 코드 검토 메시지를 통해 상호 작용합니다.

버그, 문제점, 기능 제안, 성능 문제, 일반적인 질문, 문서 문제를 보고합니다.

  • 해당 템플릿에 대한 문제를 제기해 주시기 바랍니다.
  • Claude Desktop Client에서 테스트되었으며, 다른 AI에 대한 지원도 곧 테스트될 예정입니다!

🙏 크레딧

이 프로젝트는 @iBotPeaches 가 개발하고 관리하는 놀라운 오픈소스 안드로이드 리버스 엔지니어링 도구인 Apktool 용 MCP 서버입니다. 모든 핵심 APK 디코딩 및 리소스 처리 로직은 @iBotPeaches의 소유입니다. 저는 AI 기능을 갖춘 MCP 서버를 지원하기 위해 이 서버를 확장했습니다.

📎 원본 README(Apktool)

Apktool의 원본 README.md는 참고 및 출처 표시를 위해 이 저장소에 포함되어 있습니다.

또한 Debian 기반 Linux용 Claude 데스크톱을 개발한 @aaddrick 에게도 큰 감사를 표합니다.

마지막으로, 모델 컨텍스트 프로토콜을 개발한 @anthropics@FastMCP 팀에 감사드립니다.

그리고 이와 같은 프로젝트가 가능하도록 라이브러리와 종속성을 제공하는 모든 오픈 소스 프로젝트 유지 관리자와 기여자.

📄 라이��스

apktool-mcp-server 및 모든 관련 프로젝트는 Apache 2.0을 상속합니다.

⚖️ 법적 경고

부인 성명

apktool-mcp-server 도구 및 이 프로젝트의 모든 관련 도구는 교육, 연구 및 윤리적 보안 평가 목적으로만 사용됩니다. 명시적이든 묵시적이든 어떠한 보증도 없이 "있는 그대로" 제공됩니다. 사용자는 이러한 도구 사용 시 모든 관련 법률, 규정 및 윤리 지침을 준수할 전적인 책임을 집니다.

apktool-mcp-server 사용함으로써 귀하는 테스트 권한이 있는 환경(예: 귀하가 소유하거나 명시적으로 분석 권한을 부여받은 애플리케이션)에서만 이를 사용하는 데 동의합니다. 이러한 도구를 무단 리버스 엔지니어링, 지적 재산권 침해 또는 악의적인 활동에 사용하는 것은 엄격히 금지됩니다.

apktool-mcp-server 개발자는 이러한 도구의 사용 또는 오용으로 인해 발생하는 모든 피해, 데이터 손실, 법적 결과 또는 기타 결과에 대해 책임을 지지 않습니다. 사용자는 자신의 행동과 사용으로 인해 발생하는 모든 결과에 대해 전적인 책임을 집니다.

책임감 있게 사용하세요. 지적 재산권을 존중하세요. 윤리적인 해킹 관행��� 준수하세요.


🙌 기여 또는 지원

기여하다

  • 도움이 되셨나요? ⭐️를 눌러주세요.
  • 아이디어가 있으신가요? 이슈를 공개하거나 PR을 제출하세요.
  • 위에 뭔가를 추가하고 싶으신가요? DM이나 멘션 주세요. README에 추가해 드릴게요!

감사 및 평가 배지 수령

감사를 담당하고 평가 배지를 제공해 주신 Mseep.net에 감사드립니다.

리버스 엔지니어링 및 AI 커뮤니티를 위해 ❤️로 제작되었습니다.

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    This tool creates a Model Context Protocol (MCP) server that acts as a proxy for any API that has an OpenAPI v3.1 specification. This allows you to use Claude Desktop to easily interact with both local and remote server APIs.
    Last updated -
    195
    641
    JavaScript
    MIT License
    • Apple
    • Linux
  • -
    security
    A
    license
    -
    quality
    A Python-based MCP server that allows Claude and other LLMs to execute arbitrary Python code directly through your desktop Claude app, enabling data scientists to connect LLMs to APIs and executable code.
    Last updated -
    23
    MIT License
    • Apple
    • Linux
  • -
    security
    A
    license
    -
    quality
    Claude MCP server that enables secure access to browse and read Android project files, validating authentic projects by checking for gradle configuration files.
    Last updated -
    Python
    MIT License
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol (MCP) server that enables AI assistants to control and interact with Android devices, allowing for device management, app debugging, system analysis, and UI automation through natural language commands.
    Last updated -
    29
    143
    Python
    Apache 2.0
    • Linux
    • Apple

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zinja-coder/apktool-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server