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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
appshark — 静的テイント分析プラットフォームで、Androidアプリ向けに、カスタマイズ可能なルールベースのスキャンと詳細な結果レポートを用いて脆弱性やコンプライアンス問題を検出します。 | Kitploit
ツール/GitHubGitHub/bytedance/appshark
Androidセキュリティ静的分析脆弱性分析コード分析
GitHubbytedance/appshark

appshark

静的テイント分析プラットフォームで、Androidアプリ向けに、カスタマイズ可能なルールベースのスキャンと詳細な結果レポートを用いて脆弱性やコンプライアンス問題を検出します。

リポジトリを見る
1.8k1795ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

ドキュメントインデックス

  • 1.概要
  • 2.起動
  • 3.ルールの書き方
  • 4.AppSharkを使ったコンプライアンス問題の発見方法
  • 5.パストラバーサルゲーム
  • 6.引数
  • 7.エンジン設定
  • 8.結果
  • 9.よくある質問

AppShark

AppSharkは、Androidアプリの脆弱性をスキャンする静的テイント解析プラットフォームです。

前提条件

AppSharkには特定のバージョンのJDKが必要です。 -- JDK 11。テストの結果、依存関係の互換性の問題により、他のLTSバージョン(JDK 8およびJDK 16)では動作しません。

AppSharkのビルド/コンパイル

プロジェクトリポジトリのルートディレクトリで作業しているものとします。gradleツールを使用してプロジェクト全体をビルドできます。

root@kitploit:~
$ ./gradlew build  -x test 

上記のコマンドを実行すると、build/libsディレクトリにAppShark-0.1.2-all.jarアーティファクトファイルが生成されます。

AppSharkの実行

前の手順と同様に、プロジェクトのルートフォルダにいるものとします。以下のコマンドでツールを実行できます。

root@kitploit:~
$ java -jar build/libs/AppShark-0.1.2-all.jar  config/config.json5

config.json5には以下の設定内容が含まれています。

root@kitploit:~
{
  "apkPath": "/Users/apks/app1.apk"
} 

各JSONには以下の基本フィールドがあります。

  • apkPath: 解析するAPKファイルのパス
  • out: 出力ディレクトリのパス
  • rules: ルールを指定します。,で区切ります。デフォルトは$rulePathディレクトリ内のすべての*.jsonファイルです。
  • rulePath: ルールの親ディレクトリを指定します。デフォルトは./config/rulesです。
  • maxPointerAnalyzeTime: エントリポイントから開始される解析に設定されるタイムアウト時間(秒単位)
  • debugRule: デバッグ用のログ出力を有効にするルール名を指定します。

詳細な設定フィールドについては、net.bytedance.security.app.ArgumentConfigを参照してください。

出力パスをプロジェクトルートディレクトリのoutに設定した設定JSONファイルを指定すると、解析実行後に結果ファイルout/results.jsonが見つかります。

結果の解釈

以下はresults.jsonの例です。

root@kitploit:~
{
  "AppInfo": {
    "AppName": "test",
    "PackageName": "net.bytedance.security.app",
    "min_sdk": 17,
    "target_sdk": 28,
    "versionCode": 1000,
    "versionName": "1.0.0"
  },
  "SecurityInfo": {
    "FileRisk": {
      "unZipSlip": {
        "category": "FileRisk",
        "detail": "",
        "model": "2",
        "name": "unZipSlip",
        "possibility": "4",
        "vulners": [
          {
            "details": {
              "position": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>",
              "Sink": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r31",
              "entryMethod": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void f()>",
              "Source": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r3",
              "url": "/Volumes/dev/zijie/appshark-opensource/out/vuln/1-unZipSlip.html",
              "target": [
                "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r3",
                "pf{obj{<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>:35=>java.lang.StringBuilder}(unknown)->@data}",
                "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r11",
                "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolderFix1(java.lang.String,java.lang.String)>->$r31"
              ]
            },
            "hash": "ec57a2a3190677ffe78a0c8aaf58ba5aee4d2247",
            "possibility": "4"
          },
          {
            "details": {
              "position": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>",
              "Sink": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r34",
              "entryMethod": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void f()>",
              "Source": "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r3",
              "url": "/Volumes/dev/zijie/appshark-opensource/out/vuln/2-unZipSlip.html",
              "target": [
                "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r3",
                "pf{obj{<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>:33=>java.lang.StringBuilder}(unknown)->@data}",
                "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r14",
                "<net.bytedance.security.app.pathfinder.testdata.ZipSlip: void UnZipFolder(java.lang.String,java.lang.String)>->$r34"
              ]
            },
            "hash": "26c6d6ee704c59949cfef78350a1d9aef04c29ad",
            "possibility": "4"
          }
        ],
        "wiki": "",
        "deobfApk": "/Volumes/dev/zijie/appshark-opensource/app.apk"
      }
    }
  },
  "DeepLinkInfo": {
  },
  "HTTP_API": [
  ],
  "JsBridgeInfo": [
  ],
  "BasicInfo": {
    "ComponentsInfo": {
    },
    "JSNativeInterface": [
    ]
  },
  "UsePermissions": [
  ],
  "DefinePermissions": {
  },
  "Profile": "/Volumes/dev/zijie/appshark-opensource/out/vuln/3-profiler.json"
}

ライセンス

AppSharkはAPACHE LICENSE, VERSION 2.0の下でライセンスされています。

セキュリティに関する注意

UI/Serverは補助的なテストツールであり、本番環境で使用すべきではありません。ローカルテストの目的にのみデプロイ可能です。

お問い合わせ

Lark

ツールをダウンロード