Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
appshark — Платформа статического анализа потоков для Android-приложений, которая обнаруживает уязвимости и проблемы соответствия требованиям с помощью настраиваемого сканирования на основе правил и детального отчета о результатах. | Kitploit
Инструменты/GitHubGitHub/bytedance/appshark
Безопасность AndroidСтатический анализАнализ уязвимостейАнализ Кода
GitHubbytedance/appshark

appshark

Платформа статического анализа потоков для Android-приложений, которая обнаруживает уязвимости и проблемы соответствия требованиям с помощью настраиваемого сканирования на основе правил и детального отчета о результатах.

Репозиторий
1.8k1795 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Указатель документов

  • 1.overview
  • 2.startup
  • 3.how to write rules
  • 4.how to find compliance problems use appshark
  • 5.a path traversal game
  • 6.argument
  • 7.engine config
  • 8.result
  • 9.faq

AppShark

Appshark — это платформа статического анализа потоков данных для поиска уязвимостей в Android-приложениях.

Предварительные требования

Appshark требует определенной версии JDK — JDK 11. В ходе тестирования выяснилось, что он не работает на других LTS-версиях — JDK 8 и JDK 16 — из-за проблем с совместимостью зависимостей.

Сборка/компиляция AppShark

Предполагается, что вы работаете в корневом каталоге репозитория проекта. Вы можете собрать весь проект с помощью инструмента gradle.

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

После выполнения указанной выше команды вы увидите артефакт AppShark-0.1.2-all.jar в каталоге build/libs.

Запуск 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: задает правила, разделенные запятыми. По умолчанию — все файлы *.json в каталоге $rulePath
  • rulePath: задает родительский каталог правил, по умолчанию — ./config/rules
  • maxPointerAnalyzeTime: время ожидания в секундах для анализа, запущенного от точки входа
  • debugRule: имя правила, для которого включается журналирование отладки

Дополнительные поля конфигурации см. в net.bytedance.security.app.ArgumentConfig.

Если вы предоставите конфигурационный JSON-файл, в котором выходной путь задан как out в корневом каталоге проекта, после завершения анализа вы найдете файл результата 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

Уведомление о безопасности

Пользовательский интерфейс/сервер — это вспомогательный инструмент для тестирования, который не следует использовать в рабочих средах и который может быть развернут только для локального тестирования.

Свяжитесь с нами

Lark

Скачать инструмент