Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
AndroPyTool — Android 애플리케이션에서 정적 및 동적 특징을 자동으로 추출하기 위한 프레임워크 | Kitploit
도구/GitHubGitHub/alexmyg/andropytool
Android SecurityStatic AnalysisDynamic Analysis (Sandboxing)Malware AnalysisMobile Security
GitHubalexmyg/andropytool

AndroPyTool

Android 애플리케이션에서 정적 및 동적 특징을 자동으로 추출하기 위한 프레임워크

저장소 보기
381686년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

AndroPyTool

업데이트! DroidBox 이미지가 수정되었습니다. 동적 분석이 이제 작동합니다.

Android APK에서 정적 및 동적 특징을 추출하기 위한 도구입니다. DroidBox, FlowDroid, Strace, AndroGuard 또는 VirusTotal 분석과 같은 잘 알려진 Android 앱 분석 도구들을 결합합니다. APK 파일이 포함된 소스 디렉토리를 제공하면 AndroPyTool이 이러한 모든 도구를 적용하여 사전 정적, 정적 및 동적 분석을 수행하고 JSON 및 CSV 형식의 특징 파일을 생성하며 모든 데이터를 MongoDB 데이터베이스에 저장할 수 있습니다.

자세한 정보를 얻으려면 다음 두 논문을 참조하십시오:

  • Martín, A., Lara-Cabrera, R., & Camacho, D. (2018). 하이브리드 특징 융합 및 앙상블 분류기를 통한 Android 악성코드 탐지: AndroPyTool 프레임워크와 OmniDroid 데이터셋. Information Fusion. DOI: 10.1016/j.inffus.2018.12.006

  • Martín, A., Lara-Cabrera, R., & Camacho, D. (2018). 정적 및 동적 Android 악성코드 분석을 위한 새로운 도구. Data Science and Knowledge Engineering for Sensing Decision Support (pp. 509-516). World Scientific.

이 도구를 사용하시는 경우, 위 연구를 논문에 인용해 주시기 바랍니다.

alt text

설치 방법

AndroPyTool을 설치하고 사용하는 방법은 두 가지입니다.

MODE A - DOCKER: 필요한 모든 파일이 포함된 Docker 컨테이너를 다운로드합니다. 이 방법을 권장합니다. 단 두 단계만으로 AndroPyTool을 실행할 수 있습니다.

MODE B - SOURCE CODE: 필요한 모든 라이브러리를 설치 및 구성하고 Python 소스 코드를 실행합니다.

MODE A - DOCKER CONTAINER 사용

빠르고 안정적인 AndroPyTool 버전을 제공하기 위해 Docker 컨테이너가 구축되었습니다. Docker를 사용하여 AndroPyTool을 사용하려면 다음 단계를 따르십시오:

  • Docker를 설치합니다 (아직 설치하지 않은 경우). 여기의 지침을 따르십시오. Ubuntu를 사용하지 않는 경우 올바른 운영 체제에 맞게 변경하십시오.

  • Docker Hub에서 컨테이너를 가져옵니다:

    root@kitploit:~
    $ docker pull alexmyg/andropytool
    
  • 컨테이너를 실행하여 AndroPyTool을 실행합니다:

    root@kitploit:~
    $ docker run --volume=</PATH/TO/FOLDER/WITH/APKS/>:/apks alexmyg/andropytool -s /apks/ <ARGUMENTS>
    

    *</PATH/TO/FOLDER/WITH/APKS/>*를 분석할 APK가 포함된 호스트의 경로로 바꾸십시오. 위 명령줄과 같이 "-s" 인수는 반드시 /apks/를 가리켜야 합니다.

    참고 2: AndroPyTool은 APK 파일을 정리된 작업 디렉토리를 생성하기 위해 다른 하위 폴더로 이동합니다. 폴더 구조 체계를 참조하십시오.

AndroPyTool에 제공할 수 있는 다양한 인수는 다음과 같습니다:

  • -h: 도움말 메시지를 표시하고 종료합니다.
  • -all, --allsteps: AndroPyTool의 모든 단계를 실행합니다 (권장). VirusTotal 보고서를 얻으려면 -vt 인수 뒤에 VirusTotal API 키를 추가로 제공해야 합니다. -all 옵션이 제공되지 않으면 제공된 인수와 함께 마지막 단계만 실행됩니다.
  • -s SOURCE_FOLDER, --source SOURCE_FOLDER: 분석할 APK가 포함된 폴더입니다. 모든 샘플은 .apk 확장자를 포함해야 합니다. 이전 AndroPyTool 실행이 중단된 경우 이전 작업 디렉토리를 제공해야 합니다.
  • -S, --single: 각 분석을 별도로 저장합니다. 기본값: False.
  • -f, --filter: 유효한 APK와 유효하지 않은 APK를 필터링합니다 (권장).
  • -vt VIRUSTOTAL_API_KEY, --virustotal VIRUSTOTAL_API_KEY: VirusTotal 서비스로 애플리케이션을 분석합니다. 뒤에 VirusTotal API 키를 입력해야 합니다.
  • -cl, --classify: VirusTotal 보고서를 기반으로 앱을 악성코드 또는 정상 앱으로 분류합니다. --virustotal 인수가 설정되어 있어야 합니다.

MODE B - SOURCE CODE 사용

참고: 이 절차는 Ubuntu에서만 테스트되었습니다.

0. 요구 사항

  • AndroPyTool에는 여러 종속성이 있습니다. 다음 명령을 실행하여 모두 설치할 수 있습니다:
    root@kitploit:~
    $ sudo apt-get update
    $ sudo apt-get install -y --no-install-recommends software-properties-common wget git lib32gcc1 lib32ncurses5 lib32stdc++6 lib32z1 libc6-i386 libgl1-mesa-dev python-pip python-dev gcc python-tk curl
    $ sudo add-apt-repository ppa:webupd8team/java -y
    $ sudo apt-get update
    $ sudo echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
    $ sudo apt-get install -y oracle-java8-installer
    $ sudo apt-get install -y python-setuptools
    $ sudo apt-get clean
    

1. Android SDK를 설치해야 합니다 (이미 설치한 경우 다음 단계로 이동) 다음 단계는 GUI 없이 Android SDK를 설치하는 방법입니다:

  • Android SDK를 다운로드하고 압축을 풉니다:

    root@kitploit:~
    $ cd
    $ wget http://dl.google.com/android/android-sdk_r24.2-linux.tgz
    $ tar -xvf android-sdk_r24.2-linux.tgz
    
  • Android SDK를 PATH에 추가합니다 (Bash를 사용하지 않고 예를 들어 Zsh를 선호하는 경우 올바른 파일을 수정해야 합니다). 이를 위해 ~/.bashrc 파일에 다음 두 줄을 추가합니다:

    root@kitploit:~
    export ANDROID_HOME=$HOME/android-sdk-linux/
    export PATH=$PATH:$ANDROID_HOME/tools
    export PATH=$PATH:$ANDROID_HOME/platform-tools
    
  • 다음 명령으로 현재 세션에 라이브러리를 로드합니다:

    root@kitploit:~
    $ source ~/.bashrc
    

2. Android 16 패키지를 설치해야 합니다

  • DroidBox가 지원하는 버전인 Android 16(플랫폼 및 시스템 이미지)을 설치합니다:

    root@kitploit:~
    $ echo y | android update sdk --filter platform-tools --no-ui --force -a
    $ echo y | android update sdk --filter tools --no-ui --force -a
    $ echo y | android update sdk --filter android-16 --no-ui --force -a
    $ echo y | android update sdk --filter sys-img-armeabi-v7a-android-16 --no-ui -a
    

3. 저장소를 다운로드합니다

  • 이제 GitHub에서 AndroPyTool 저장소를 다운로드할 수 있습니다. 여기에는 다운로드되는 종속성도 포함됩니다. DroidBox의 경우, 시스템 및 RAM 이미지를 복사하기 위해 원래 DroidBox 저장소의 최신 릴리스도 다운로드됩니다:
    root@kitploit:~
     $ git clone --recursive https://github.com/alexMyG/AndroPyTool.git
     $ wget https://github.com/alexMyG/AndroPyTool/releases/download/droidbox_images_patched/images_droidbox.zip
     $ unzip -o images_droidbox.zip -d AndroPyTool/DroidBox_AndroPyTool/images
     $ touch AndroPyTool/avclass/__init__.py
    

3. DroidBox를 준비합니다

  • 모든 스크립트에 필요한 권한을 부여합니다:
    root@kitploit:~
    $ chmod 744 AndroPyTool/DroidBox_AndroPyTool/*.sh
    
  • 이제 Android 기기를 생성합니다:
    root@kitploit:~
    $ echo "no" | AndroPyTool/DroidBox_AndroPyTool/createDroidBoxDevice.sh
    

4. 필요한 Python 라이브러리를 설치합니다

  • 이 저장소에는 여러 Python 라이브러리가 필요합니다. 가상 환경 사용을 권장합니다. 원하지 않으면 다음 단계로 이동하세요: virtualenv를 설치합니다:
    root@kitploit:~
    $ sudo pip install virtualenv
    
    가상 환경을 생성하고 활성화합니다:
    root@kitploit:~
    $ virtualenv droidbox_env
    $ source droidbox_env/bin/activate
    
  • 다음 Python 라이브러리가 필요합니다:
    root@kitploit:~
    $ pip install -r AndroPyTool/requirements.txt
    

5. 이제 AndroPyTool을 실행할 수 있습니다

  • 모든 것이 정상이면, AndroPyTool을 실행합니다:
    root@kitploit:~
    $ cd AndroPyTool/
    $ python androPyTool.py -s </PATH/TO/FOLDER/WITH/APKS/>
    
  • 사용 가능한 인수는 위의 Docker 섹션을 참조하십시오.

입력 및 출력 폴더 구조

입력: ".apk" 확장자를 가진 파일이 포함된 폴더. 출력: 다음 체계를 따르는 폴더 구조:

root@kitploit:~
/                      --> 루트 폴더
/samples/              --> 원래 루트 폴더에 있던 샘플들
/samples/BW/           --> 정상 앱 샘플
/samples/MW/           --> 악성코드 샘플
/invalid_apks/         --> 발견된 유효하지 않은 APK
/VT_analysis/          --> VirusTotal 분석 보고서
/FlowDroid_outputs/    --> FlowDroid 결과
/FlowDroid_processed/  --> 처리된 FlowDroid 결과
/DroidBox_outputs/     --> DroidBox 원시 출력
/Dynamic/Droidbox/     --> JSON 형식의 DroidBox 분석
/Dynamic/Strace/       --> CSV 형식의 Strace 분석
/Features_files/       --> AndroPyTool로 생성된 특징 파일

감사의 말

  • phamhduy가 Droidbox 이미지를 수정했습니다.
도구 다운로드
  • -fw, --flowdroid: FlowDroid를 실행합니다.
  • -dr, --droidbox: DroidBox를 실행합니다.
  • -c, --cleanup: 임시 작업 파일을 삭제하여 정리합니다. 기본값: True
  • -P PACKAGEINDEX, --packgeIndex PACKAGEINDEX: 모든 Android API 패키지가 포함된 TXT 파일입니다. 기본값: info/package_index.txt
  • -C CLASSINDEX, --classIndex CLASSINDEX: 모든 Android API 클래스가 포함된 TXT 파일입니다. 기본값: info/class_index.txt
  • -C CLASSINDEX, --classIndex CLASSINDEX: 모든 Android API 클래스가 포함된 TXT 파일입니다. 기본값: info/class_index.txt
  • -SC SYSTEMCOMMANDSINDEX, --systemCommandsIndex SYSTEMCOMMANDSINDEX: 모든 시스템 명령이 포함된 TXT 파일입니다. 기본값: info/system_commands.txt
  • -C CLASSINDEX, --classIndex CLASSINDEX: 모든 Android API 클래스가 포함된 TXT 파일입니다. 기본값: info/class_index.txt
  • -mg MONGODBURI, --mongodbURI MONGODBURI: 생성된 보고서를 MongoDB 데이터베이스로 내보냅니다. localhost:27017 형식의 연결 주소가 필요합니다.
  • -csv EXPORTCSV, --cexportCSV EXPORTCSV: 생성된 보고서를 CSV 파일로 내보냅니다. 정적 특징만 포함됩니다.
  • --color: 메시지 출력 시 색상을 허용합니다.
  • --no-color: 메시지 출력 시 색상을 사용하지 않습니다.