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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
droidlysis — Automated pre-analysis tool for Android apps that disassembles samples, extracts properties via configurable pattern matching, and organizes output for accelerated reverse engineering and malware analysis. | Kitploit
도구/GitHubGitHub/cryptax/droidlysis
Android SecurityStatic AnalysisReverse EngineeringInformation GatheringMalware AnalysisMobile Security
GitHubcryptax/droidlysis

droidlysis

Automated pre-analysis tool for Android apps that disassembles samples, extracts properties via configurable pattern matching, and organizes output for accelerated reverse engineering and malware analysis.

저장소 보기
3114910일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

DroidLysis

DroidLysis는 Android 앱을 위한 사전 분석 도구입니다. 리버스 엔지니어링 초반에 일반적으로 수행하는 반복적이고 지루한 작업을 자동화합니다. Android 샘플을 디스어셈블하고, 출력을 디렉터리로 정리하며, 코드에서 의심스러운 부분을 검색합니다. 출력 결과는 리버스 엔지니어가 분석 초기 단계를 빠르게 진행하는 데 도움을 줍니다.

DroidLysis는 Android 패키지(apk), Dalvik 실행 파일(dex), Zip 파일(zip), Rar 파일(rar) 또는 파일 디렉터리에서 사용할 수 있습니다.

DroidLysis 설치

  1. 필요한 시스템 패키지 설치
root@kitploit:~
sudo apt-get install default-jre git python3 python3-pip unzip wget libmagic-dev libxml2-dev libxslt-dev
  1. Android 디스어셈블리 도구 설치
  • Apktool
  • Baksmali
  • 선택적으로 Dex2jar
root@kitploit:~
$ mkdir -p ~/softs
$ cd ~/softs
$ wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.9.3.jar
$ wget https://bitbucket.org/JesusFreke/smali/downloads/baksmali-2.5.2.jar
$ wget https://github.com/pxb1988/dex2jar/releases/download/v2.4/dex-tools-v2.4.zip
$ unzip dex-tools-v2.4.zip 
$ rm -f dex-tools-v2.4.zip 
  1. Git 저장소에서 DroidLysis 받기 (권장) 또는 pip으로 설치

Python 가상 환경(python3 -m venv 또는 pyenv 가상 환경 등)에서 Git으로 설치합니다.

root@kitploit:~
$ python3 -m venv venv
$ source ./venv/bin/activate
(venv) $ pip3 install git+https://github.com/cryptax/droidlysis

또는 PyPi에서 직접 DroidLysis를 설치할 수 있습니다. (pip3 install droidlysis)

  1. conf/general.conf 파일을 설정합니다. 특히 /home/axelle을 사용자 환경에 맞게 변경해야 합니다.
root@kitploit:~
[tools]
apktool = /home/axelle/softs/apktool_2.9.3.jar
baksmali = /home/axelle/softs/baksmali-2.5.2.jar
dex2jar = /home/axelle/softs/dex-tools-v2.4/d2j-dex2jar.sh
keytool = /usr/bin/keytool
...
  1. 실행:
root@kitploit:~
python3 ./droidlysis3.py --help

설정

설정 파일은 ./conf/general.conf입니다. (--config 옵션으로 다른 파일로 전환 가능) 여기서 외부 도구(예: Apktool)의 위치, 패턴 파일 이름(기본값: ./conf/smali.conf, ./conf/wide.conf, ./conf/arm.conf, ./conf/kit.conf), 데이터베이스 파일 이름(--enable-sql 옵션 사용 시에만 사용됨)을 설정합니다.

디스어셈블리 도구의 올바른 경로를 지정해야 하며, 그렇지 않으면 DroidLysis가 찾을 수 없습니다.

사용법

DroidLysis는 Python 3을 사용합니다. 실행 및 옵션 보기:

root@kitploit:~
droidlysis --help

예를 들어, Signal의 APK로 테스트:

root@kitploit:~
droidlysis --input Signal-website-universal-release-6.26.3.apk --output /tmp --config /PATH/TO/DROIDLYSIS/conf/general.conf

DroidLysis 출력:

  • 콘솔에 요약 (위 이미지 참고)
  • 출력 디렉터리의 하위 디렉터리에 압축 해제 및 전처리된 샘플. 하위 디렉터리 이름은 샘플의 파일명과 sha256 합계를 사용하여 지정됩니다. 예를 들어, Signal 애플리케이션을 분석하고 --output /tmp를 설정하면 분석 결과는 /tmp/Signalwebsiteuniversalrelease4.52.4.apk-f3c7d5e38df23925dd0b2fe1f44bfa12bac935a6bc8fe3a485a4436d4487a290에 저장됩니다.
  • 발견한 속성을 포함하는 데이터베이스(기본적으로 SQLite droidlysis.db)

옵션

droidlysis --help로 사용법 확인

  • 입력은 파일 또는 재귀적으로 검색할 파일 디렉터리일 수 있습니다. DroidLysis는 Android 패키지, DEX, ODEX, ARM 실행 파일, ZIP, RAR을 처리하는 방법을 알고 있습니다. 다른 유형의 파일은 (버그가 없다면) 실패하지 않지만 내용을 이해하지 못할 수 있습니다.

  • 파일 디렉터리를 처리할 때, 처리된 샘플을 다른 위치로 이동하여 처리된 항목을 파악하는 것이 매우 유용합니다. 이는 --movein 옵션으로 처리됩니다. 또한 통계에만 관심이 있다면 각 샘플의 세부 정보가 포함된 출력 디렉터리를 비우는 것이 좋습니다. 이는 --clearoutput 옵션입니다. 모든 통계를 SQL 데이터베이스에 저장하려면 --enable-sql을 사용하십시오 (여기 참조).

  • DroidLysis의 분석은 기본적으로 알려진 타사 SDK를 검사하지 않습니다. 즉, 이러한 SDK에서 의심스러운 활동을 보고하지 않습니다. 이를 검사하려면 --no-kit-exception 옵션을 사용하십시오. 이렇게 하면 SDK(예: 광고)가 많은 플래그 API(GPS 위치 가져오기, IMEI 가져오기, IMSI 가져오기, HTTP POST 등)를 사용하므로 일반적으로 샘플에 대해 더 많은 검색 속성이 생성됩니다.

샘플 출력 디렉터리 (--output DIR)

이 디렉터리에는 (해당하는 경우) 다음이 포함됩니다:

  • 읽기 가능한 AndroidManifest.xml
  • res의 읽기 가능한 리소스
  • 라이브러리 lib, 자산 assets
  • 디스어셈블된 Smali 코드: smali (및 기타)
  • 패키지 메타 정보: META-INF
  • 단순히 압축 해제된 패키지 내용: ./unzipped
  • DEX 실행 파일 classes.dex (및 기타), jar로 변환된 classes-dex2jar.jar, 압축 해제된 ./unjarred

DroidLysis가 생성하는 파일:

  • autoanalysis.md: DroidLysis가 감지한 각 패턴과 위치를 나열
  • report.md: 콘솔에 출력된 내용과 동일

샘플 출력 디렉터리가 필요하지 않은 경우 --clearoutput 옵션을 사용하십시오.

Exodus 등에서 추적기 가져오기 (--import-exodus)

root@kitploit:~
$ python3 ./droidlysis3.py --import-exodus --verbose
Processing file: ./droidurl.pyc ...
DEBUG:droidconfig.py:Reading configuration file: './conf/./smali.conf'
DEBUG:droidconfig.py:Reading configuration file: './conf/./wide.conf'
DEBUG:droidconfig.py:Reading configuration file: './conf/./arm.conf'
DEBUG:droidconfig.py:Reading configuration file: '/home/axelle/.cache/droidlysis/./kit.conf'
DEBUG:droidproperties.py:Importing ETIP Exodus trackers from https://etip.exodus-privacy.eu.org/api/trackers/?format=json
DEBUG:connectionpool.py:Starting new HTTPS connection (1): etip.exodus-privacy.eu.org:443
DEBUG:connectionpool.py:https://etip.exodus-privacy.eu.org:443 "GET /api/trackers/?format=json HTTP/1.1" 200 None
DEBUG:droidproperties.py:Appending imported trackers to /home/axelle/.cache/droidlysis/./kit.conf

초기 kit.conf에 없는 Exodus의 추적기는 ~/.cache/droidlysis/kit.conf에 추가됩니다. 두 파일을 비교하여 추가할 추적기를 확인하십시오.

SQLite 데이터베이스{#sqlite_database}

샘플 디렉터리를 처리하는 경우 DroidLysis가 찾은 속성을 데이터베이스에 저장하여 결과를 쉽게 구문 분석하고 쿼리하는 것이 좋습니다. 이 경우 --enable-sql 옵션을 사용하십시오. 그러면 모든 결과가 droidlysis.db라는 데이터베이스의 samples 테이블에 자동으로 덤프됩니다. 테이블의 각 항목은 특정 샘플과 관련됩니다. 각 열은 DroidLysis가 추적하는 속성입니다.

예를 들어, 데이터베이스에서 모든 파일명, SHA256 합계 및 smali 속성을 검색하려면:

root@kitploit:~
sqlite> select sha256, sanitized_basename, smali_properties from samples;
f3c7d5e38df23925dd0b2fe1f44bfa12bac935a6bc8fe3a485a4436d4487a290|Signalwebsiteuniversalrelease4.52.4.apk|{"send_sms": true, "receive_sms": true, "abort_broadcast": true, "call": false, "email": false, "answer_call": false, "end_call": true, "phone_number": false, "intent_chooser": true, "get_accounts": true, "contacts": false, "get_imei": true, "get_external_storage_stage": false, "get_imsi": false, "get_network_operator": false, "get_active_network_info": false, "get_line_number": true, "get_sim_country_iso": true,
...

속성 패턴

DroidLysis가 감지하는 내용은 ./conf 디렉터리의 파일에서 구성 및 확장할 수 있습니다.

패턴은 다음으로 구성됩니다:

  • 태그 이름: 예: send_sms. 속성 이름을 지정합니다. .conf 파일 내에서 고유해야 합니다.
  • 패턴: 일치시킬 정규식입니다. 예: ;->sendTextMessage|;->sendMultipartTextMessage|SmsManager;->sendDataMessage. smali.conf 파일에서는 이 정규식이 Smali 코드와 일치합니다. 이 특정 경우에는 코드에서 SMS 메시지를 보내는 세 가지 방법(sendTextMessage, sendMultipartTextMessage, sendDataMessage)이 있습니다.
  • 설명 (선택 사항): 속성의 중요성과 의미를 설명합니다.
root@kitploit:~
[send_sms]
pattern=;->sendTextMessage|;->sendMultipartTextMessage|SmsManager;->sendDataMessage
description=SMS 메시지 전송

Exodus Privacy 추적기 가져오기

Exodus Privacy는 분석에서 제외할 다양한 SDK 목록을 conf/kit.conf를 통해 유지 관리합니다. DroidLysis 명령줄에 --import_exodus 옵션을 추가하면 Exodus Privacy가 알고 있는 기존 추적기를 구문 분석하고 kit.conf에 없는 것을 찾습니다. 마지막으로 모든 새 추적기를 ~/.cache/droidlysis/kit.conf에 추가합니다.

이후 kit.conf 파일을 정렬할 수 있습니다:

root@kitploit:~
import configparser
import collections
import os

config = configparser.ConfigParser({}, collections.OrderedDict)
config.read(os.path.expanduser('~/.cache/droidlysis/kit.conf'))
# 모든 섹션을 알파벳순으로 정렬
config._sections = collections.OrderedDict(sorted(config._sections.items(), key=lambda t: t[0] ))
with open('sorted.conf','w') as f:
    config.write(f)

Smali 속성을 위한 JEB 스크립트

이 스크립트는 JEB UI에서 smali 패턴과 일치하는 코드가 포함된 메서드를 검색하고 해당 함수로 쉽게 이동하도록 도와줍니다. 스크립트를 로드하고 DroidLysis 분석 파일 중에서 details.md 파일을 선택하면 검색 상자가 나타납니다. 한 번 이동하면 최근 스크립트 실행 단축키를 사용하여 검색 창을 다시 쉽게 불러올 수 있습니다.

  • JEB > File > Scripts > Script selector > script/DroidlysisSearch.py
  • JEB > File > Scripts > Run last Script

업데이트

  • v3.4.7 - Procyon 제거, PR #24 및 #25 통합, 접근성 남용 감지 세부 추가
  • v3.4.6 - 설치 시 APK를 자동으로 로드하는 매니페스트 기능 감지
  • v3.4.5 - 쓰기 가능한 사용자 kit.conf 파일 생성
  • v3.4.4 - 버그 수정 #14
  • v3.4.3 - 설정 파일 사용
  • v3.4.2 - Exodus Privacy 추적기 가져오기 추가
  • v3.4.1 - Androguard 종속성 제거
  • v3.4.0 - 멀티덱스 지원
  • v3.3.1 - Base64 문자열 감지 개선
  • v3.3.0 - JSON으로 데이터 덤프
  • v3.2.1 - IP 주소 감지
  • v3.2.0 - Dex2jar 선택 사항
  • v3.1.0 - Base64 문자열 감지
도구 다운로드