Apktool MCP Server

by zinja-coder
Verified

local-only server

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

Integrations

  • Provides tools for Android APK reverse engineering, including decoding APKs, examining smali code, analyzing manifests, inspecting resources, building modified APKs, and signing APKs for installation.

  • Integration with Kali Linux for running the APKTool MCP server in a security-focused environment, specifically mentioning Claude Desktop for Debian-based Linux.

  • Features a demo video on YouTube showcasing the APKTool MCP server's capabilities for reverse engineering Android applications.

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

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


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

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

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

데모를 보세요!

안드로이드 리버스 엔지니어링을 위한 다른 MCP 서버

현재 MCP 도구

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

  • build_apk() — 디코딩된 APKTool 프로젝트에서 APK를 빌드합니다.
  • list_workspace_projects() — 작업 공간에 있는 모든 APKTool 프로젝트 디렉토리를 나열합니다.
  • 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() — 지정된 확장자를 가진 파일에서 패턴을 검색합니다.
  • check_apktool_version() — 설치된 APKTool 버전을 확인합니다.
  • sign_apk() — APK 파일에 서명합니다.
  • install_apk() — ADB를 사용하여 연결된 장치에 APK를 설치하고 설치합니다. // 곧 출시될 ADB MCP 서버로 마이그레이션됩니다.
  • extract_dex() — 원본 APK에서 DEX 파일을 추출합니다(프로젝트에서 사용 가능한 경우).
  • list_packages() — ADB를 사용하여 연결된 Android 기기에 설치된 패키지를 나열합니다. // 곧 출시될 ADB MCP 서버로 마이그레이션됩니다.
  • analyze_permissions() — AndroidManifest.xml에 선언된 권한을 분석합니다.
  • clean_project() — 재구축을 준비하기 위해 프로젝트 디렉토리를 정리합니다.
  • create_project() — 새로운 빈 APKTool 프로젝트 구조를 만듭니다.
  • delete_project() — APKTool 프로젝트 디렉토리 삭제
  • compare_smali_files() — 두 개의 smali 파일을 비교하고 차이점을 보여줍니다.
  • get_available_devices() — ADB를 통해 연결된 사용 가능한 Android 기기 목록을 가져옵니다 . // 곧 출시될 ADB MCP 서버로 마이그레이션됩니다.
  • 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:exported=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. 클로드 데스크탑 설정

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

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

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

nano ~/.config/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" ] } } }

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

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

  • 해당 템플릿에 대한 문제를 제기해 주시기 바랍니다.
  • 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 개발자는 이러한 도구의 사용 또는 오용으로 인해 발생하는 모든 피해, 데이터 손실, 법적 결과 또는 기타 결과에 대해 책임을 지지 않습니다. 사용자는 자신의 행동과 사용으로 인해 발생하는 모든 결과에 대해 전적인 책임을 집니다.

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


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

-
security - not tested
A
license - permissive license
-
quality - not tested

Claude 및 기타 LLM을 사용하여 Model Context Protocol을 통해 Android 애플리케이션에 대한 라이브 리버스 엔지니어링 지원을 제공하기 위해 Apktool과 통합되는 MCP 서버입니다.

  1. 🤖 What is apktool-mcp-server?
    1. Other MCP Servers For Android Reverse Engineering
      1. Current MCP Tools
      2. 🗒️ Sample Prompts
      3. 🛠️ Getting Started
      4. 🤖 2. Claude Desktop Setup
      5. To report bugs, issues, feature suggestion, Performance issue, general question, Documentation issue.
      6. 🙏 Credits
      7. 📄 License
      8. ⚖️ Legal Warning
    ID: jtugu4w3w9