← retour aux outils back to tools

# quark-engine

Framework d'analyse de malware Android. Détecte les comportements malveillants dans les APK grâce à un système de notation basé sur des indicateurs comportementaux, sans décompilation du code source. Android malware analysis framework. Detects malicious behavior in APKs using a scoring system based on behavioral indicators — no source code decompilation required.

↗ https://github.com/quark-engine/quark-engine

## Overview

quark-engine analyzes Android APKs for malicious behavior using a scoring system. Rather than decompiling to source code, it inspects DEX bytecode for behavioral patterns (API call sequences, permissions misuse, data exfiltration) and provides a risk score. Integrates with MobSF and other mobile analysis platforms.

## Installation

    pip3 install quark-engine

Update rules

    quark --update

## Basic Analysis

Analyze an APK with all built-in rules

    quark -a app.apk -s

Analyze with specific rule file

    quark -a app.apk -r /usr/lib/quark-engine/quark/rules/sendLocation.json

Get summary report

    quark -a app.apk -s

Full JSON report

    quark -a app.apk -s -o report.json

Generate HTML report

    quark -a app.apk --generate-html report.html

## Rules

List all available rules

    quark --list-rules

    # Rules cover behaviors like:
    # - Sending SMS (common in premium dialers/trojans)
    # - Accessing contacts and location
    # - Network exfiltration
    # - Dynamic code loading
    # - Root detection evasion
    # - Crypto-ransomware patterns

Run single rule

    quark -a app.apk -r /path/to/rule.json

Run rules from directory

    quark -a app.apk -d /path/to/rules/

## Rule Structure

    {
        "crime": "Get SMS messages",
        "permission": ["android.permission.READ_SMS"],
        "api": [
            {
                "class": "Landroid/provider/Telephony$Sms;",
                "method": "getDefaultSmsPackage",
                "descriptor": "(Landroid/content/Context;)Ljava/lang/String;"
            }
        ],
        "score": 4,
        "label": []
    }

## Behavior Analysis

Check what permissions the app requests

    quark -a app.apk --permission

Find hardcoded strings (URLs, keys)

    quark -a app.apk --strings

Analyze specific behavior with verbose output

    quark -a app.apk -r rule.json -v

    # Risk scoring:
    # 0-39%  — Low risk
    # 40-69% — Moderate risk
    # 70-100% — High risk

## Integration

    # With MobSF (Mobile Security Framework)
    # quark-engine integrates as MobSF plugin

    # JSON output for pipeline integration
    quark -a app.apk -s -o report.json
    cat report.json | python3 -c "
    import json,sys
    d=json.load(sys.stdin)
    print('Risk score:', d['crimes']['crime_count'])
    "

    # Batch analysis
    for apk in *.apk; do
        echo "=== $apk ===" >> results.txt
        quark -a "$apk" -s 2>&1 >> results.txt
    done

## Tips

- Quark works at the bytecode level — no decompilation needed, works on obfuscated apps
- Run alongside JADX for a complete picture: quark for behavior, JADX for code review
- The risk score is a starting point — always verify findings manually
- Useful for quickly triaging large sets of apps (e.g., from a threat intel feed)

Help / Man page

    quark [options]

    -a FILE         APK file to analyze
    -r FILE         Single rule file
    -d DIR          Directory of rule files
    -s              Summary report
    -o FILE         JSON output file
    --generate-html FILE  HTML report
    --permission    Show permissions
    --strings       Show hardcoded strings
    --list-rules    List all available rules
    --update        Update rules database
    -v              Verbose output

## Vue d’ensemble

quark-engine analyse les APK Android à la recherche de comportements malveillants grâce à un système de notation. Plutôt que de décompiler vers le code source, il inspecte le bytecode DEX pour repérer des schémas comportementaux (séquences d’appels API, mauvais usage de permissions, exfiltration de données) et fournit un score de risque. S’intègre avec MobSF et d’autres plateformes d’analyse mobile.

## Installation

    pip3 install quark-engine

Mettre à jour les règles

    quark --update

## Analyse basique

    # Analyser un APK avec toutes les règles intégrées
    quark -a app.apk -s

    # Analyser avec un fichier de règles spécifique
    quark -a app.apk -r /usr/lib/quark-engine/quark/rules/sendLocation.json

    # Obtenir un rapport de synthèse
    quark -a app.apk -s

    # Rapport JSON complet
    quark -a app.apk -s -o report.json

    # Générer un rapport HTML
    quark -a app.apk --generate-html report.html

## Règles

Lister toutes les règles disponibles

    quark --list-rules

    # Les règles couvrent des comportements comme :
    # - Envoi de SMS (courant dans les composeurs premium/trojans)
    # - Accès aux contacts et à la localisation
    # - Exfiltration réseau
    # - Chargement de code dynamique
    # - Évasion de détection de root
    # - Schémas de crypto-ransomware

    # Exécuter une seule règle
    quark -a app.apk -r /path/to/rule.json

    # Exécuter les règles d'un répertoire
    quark -a app.apk -d /path/to/rules/

## Structure d’une règle

    {
        "crime": "Get SMS messages",
        "permission": ["android.permission.READ_SMS"],
        "api": [
            {
                "class": "Landroid/provider/Telephony$Sms;",
                "method": "getDefaultSmsPackage",
                "descriptor": "(Landroid/content/Context;)Ljava/lang/String;"
            }
        ],
        "score": 4,
        "label": []
    }

## Analyse comportementale

    # Vérifier les permissions demandées par l'app
    quark -a app.apk --permission

    # Trouver les chaînes en dur (URLs, clés)
    quark -a app.apk --strings

    # Analyser un comportement spécifique avec sortie verbeuse
    quark -a app.apk -r rule.json -v

    # Notation de risque :
    # 0-39%  : risque faible
    # 40-69% : risque modéré
    # 70-100% : risque élevé

## Intégration

    # Avec MobSF (Mobile Security Framework)
    # quark-engine s'intègre en tant que plugin MobSF

    # Sortie JSON pour intégration dans un pipeline
    quark -a app.apk -s -o report.json
    cat report.json | python3 -c "
    import json,sys
    d=json.load(sys.stdin)
    print('Risk score:', d['crimes']['crime_count'])
    "

    # Analyse en lot
    for apk in *.apk; do
        echo "=== $apk ===" >> results.txt
        quark -a "$apk" -s 2>&1 >> results.txt
    done

## Conseils

- Quark fonctionne au niveau du bytecode : pas besoin de décompilation, fonctionne sur des apps obfusquées
- À lancer en parallèle de JADX pour une vue complète : quark pour le comportement, JADX pour la revue de code
- Le score de risque est un point de départ : toujours vérifier les résultats manuellement
- Utile pour trier rapidement de grands ensembles d’apps (par exemple issus d’un flux de threat intel)

Aide / Page de manuel

    quark [options]

    -a FILE         APK file to analyze
    -r FILE         Single rule file
    -d DIR          Directory of rule files
    -s              Summary report
    -o FILE         JSON output file
    --generate-html FILE  HTML report
    --permission    Show permissions
    --strings       Show hardcoded strings
    --list-rules    List all available rules
    --update        Update rules database
    -v              Verbose output