Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
droidlysis — Androidアプリの自動事前分析ツール。サンプルを逆アセンブルし、設定可能なパターンマッチングでプロパティを抽出し、出力を整理することで、リバースエンジニアリングやマルウェア解析を加速します。 | Kitploit
ツール/GitHubGitHub/cryptax/droidlysis
Androidセキュリティ静的分析リバースエンジニアリング情報収集マルウェア分析モバイルセキュリティ
GitHubcryptax/droidlysis

droidlysis

Androidアプリの自動事前分析ツール。サンプルを逆アセンブルし、設定可能なパターンマッチングでプロパティを抽出し、出力を整理することで、リバースエンジニアリングやマルウェア解析を加速します。

リポジトリを見る
31149213日前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を処理できます。DroidLysisは他の種類のファイルでも失敗しません(バグがない限り...)が、その内容を理解することはできません。

  • ファイルのディレクトリを処理する場合、処理済みサンプルを別の場所に移動して何が処理されたかを把握すると非常に便利です。これは--moveinオプションで処理されます。また、統計情報だけに関心がある場合は、各サンプルの詳細情報を含む出力ディレクトリをクリアする必要があります:これは--clearoutputオプションです。すべての統計情報をSQLデータベースに保存したい場合は、--enable-sqlを使用します(こちらを参照)。

  • DroidLysisの分析は、デフォルトでは既知のサードパーティ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に追加されます。2つのファイルを比較して、どのトラッカーを追加するかを確認してください。

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メッセージを送信する3つの異なる方法があります:sendTextMessage、sendMultipartTextMessage、sendDataMessage。
  • 説明(オプション):プロパティの重要性とその意味を説明します。
root@kitploit:~
[send_sms]
pattern=;->sendTextMessage|;->sendMultipartTextMessage|SmsManager;->sendDataMessage
description=Sending SMS messages

Exodus Privacyトラッカーのインポート

Exodus Privacyは、conf/kit.confを介して分析から除外するのに興味深いさまざまなSDKのリストを管理しています。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'))
# Order all sections alphabetically
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 > ファイル > スクリプト > スクリプトセレクタ > script/DroidlysisSearch.py
  • JEB > ファイル > スクリプト > 最後のスクリプトを実行

更新履歴

  • 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 - Multidexサポート
  • v3.3.1 - Base64文字列の検出を改善
  • v3.3.0 - データをJSONにダンプ
  • v3.2.1 - IPアドレス検出
  • v3.2.0 - Dex2jarはオプションに
  • v3.1.0 - Base64文字列の検出
ツールをダウンロード