
StaCoAn ist ein plattformübergreifendes Tool, das Entwickler, Bug-Bounty-Jäger und ethische Hacker bei der statischen Codeanalyse von mobilen Anwendungen unterstützt.

StaCoAn ist ein plattformübergreifendes Tool, das Entwickler, Bug-Bounty-Jäger und ethische Hacker bei der statischen Codeanalyse von mobilen Anwendungen* unterstützt.
Dieses Tool sucht nach interessanten Zeilen im Code, die Folgendes enthalten können:
Dieses Tool wurde mit großem Fokus auf Benutzerfreundlichkeit und grafische Führung in der Benutzeroberfläche entwickelt.
Für die Ungeduldigen gibt es den Download auf der Releases-Seite.
*: Beachten Sie, dass derzeit nur APK-Dateien unterstützt werden, IPA-Dateien werden jedoch in Kürze folgen.
Ein Beispielbericht ist hier zu finden.
Das Konzept ist, dass Sie Ihre mobile Anwendungsdatei (eine .apk- oder .ipa-Datei) auf die StaCoAn-Anwendung ziehen und ablegen, und sie generiert einen visuellen und portablen Bericht für Sie. Sie können die Einstellungen und Wortlisten anpassen, um eine personalisierte Erfahrung zu erhalten.
Die Berichte enthalten einen praktischen Baumansicht, mit dem Sie problemlos durch Ihre dekompilierte Anwendung navigieren können.

Die Loot-Funktion ermöglicht es Ihnen, die Funde zu 'plündern' (~Lesezeichen setzen), die für Sie von Wert sind, und auf der Loot-Seite erhalten Sie eine Übersicht über Ihren 'Beutezug'.
Der endgültige Bericht kann in eine ZIP-Datei exportiert und mit anderen Personen geteilt werden.
Die Anwendung verwendet Wortlisten, um interessante Zeilen im Code zu finden. Wortlisten haben das folgende Format:
API_KEY|||80||| This contains an API key reference
(https|http):\/\/.*api.*|||60||| This regex matches any URL containing 'api'
Beachten Sie, dass diese Wortlisten Regex-Einträge unterstützen.
In der exclusion_list.txt können Sie Ausschlüsse definieren (falls Sie aus irgendeinem Grund zu viele Funde haben):
(https|http):\/\/.*api.*|||"res","layout"||| Wie zuvor, beachten Sie, dass "res","layout" dem Pfad entspricht
(https|http):\/\/.*api.*|||||| Um überall auszuschließen
Jede Quelldatei wird verarbeitet. Dies umfasst '.java', '.js', '.html', '.xml',... Dateien.
Datenbankdateien werden ebenfalls nach Schlüsselwörtern durchsucht. Die Datenbank verfügt auch über eine Tabellenansicht.

Die Berichte sind so gestaltet, dass sie auf allen Bildschirmen passen.


Dieses Tool wird mit verschlüsseltem Code Probleme haben. Wenn Sie ein Entwickler sind, versuchen Sie, ohne aktivierte Verschleierung zu kompilieren, bevor Sie dieses Tool ausführen. Wenn Sie auf der offensiven Seite sind, viel Glück, Bruder.
Wenn Sie so schnell wie möglich loslegen möchten, gehen Sie zur Releases-Seite und laden Sie die ausführbare Datei oder das Archiv herunter, das Ihrem Betriebssystem entspricht.
Wenn Sie die Release-ZIP-Datei heruntergeladen haben, entpacken Sie diese.
Unter Windows können Sie einfach auf die ausführbare Datei doppelklicken. Sie wird im Server-Modus geöffnet und Sie können Ihre mobilen Anwendungen einfach per Drag-and-Drop in die Weboberfläche ziehen.

Auf Mac und Linux können Sie es einfach vom Terminal aus ohne Argumente für den Server-Modus ausführen.
./stacoan
Ziehen Sie diese Datei auf die ausführbare Datei.
Oder Sie können eine APK-Datei angeben, um es ohne Server-Modus auszuführen:
./stacoan -p test-apk.apk
Der Bericht wird in einem Ordner mit einem Namen abgelegt, der der APK entspricht.
cd docker
docker build . -t stacoan
Stellen Sie sicher, dass sich Ihre Anwendung im Ordner /yourappsfolder befindet.
docker run -e JAVA_OPTS="-Xms2048m -Xmx2048m" -p 8888:8888 -p 7777:7777 -i -t stacoan
Ziehen Sie Ihre Anwendung per Drag-and-Drop über: http://127.0.0.1:7777.
git clone https://github.com/vincentcox/StaCoAn/
cd StaCoAn/src
Stellen Sie sicher, dass pip3 installiert ist:
sudo apt-get install python3-pip
Installieren Sie die erforderlichen Python-Pakete:
pip3 install -r requirements.txt
StaCoAn über die Befehlszeile ausführen:
python3 stacoan.py -p yourApp.apk
Oder wenn Sie lieber die Drag-and-Drop-Oberfläche verwenden möchten:
python3 stacoan.py
Stellen Sie sicher, dass Sie sich im src-Ordner befinden.
cd src
Installieren Sie PyInstaller:
pip3 install pyinstaller
PyInstaller kann keine Unterordner mit Code verarbeiten, daher müssen wir den Code in einem Ordner ablegen.
sed -i 's/from helpers./from /g' helpers/*
sed -i 's/from helpers./from /g' stacoan.py
sed -i 's/os.path.join(parentdir, "config.ini")/"config.ini"/g' helpers/logger.py
cp helpers/* ./ || :;
StaCoAn erstellen:
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean
PyInstaller kann keine Unterordner mit Code verarbeiten, daher müssen wir den Code in einem Ordner ablegen.
# Hinweis: Die '' sind notwendig, da die sed-Syntax auf dem Mac anders ist.
sed -i '' 's/from helpers./from /g' helpers/*
sed -i '' 's/from helpers./from /g' stacoan.py
sed -i '' 's/os.path.join(parentdir, "config.ini")/"config.ini"/g' helpers/logger.py
cp helpers/* ./ || :;
StaCoAn erstellen:
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean
PyInstaller kann keine Unterordner mit Code verarbeiten, daher müssen wir den Code in einem Ordner ablegen.
sed -i 's/from helpers./from /g' helpers/*
sed -i 's/from helpers./from /g' stacoan.py
sed -i 's/os.path.join(parentdir, "config.ini")/"config.ini"/g' helpers/logger.py
cp helpers/* ./ || :;
StaCoAn erstellen:
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean
Der gesamte Wert dieses Programms hängt von den Wortlisten ab, die es verwendet. Letztendlich zählt das Endergebnis. Eine Wortliste zu erstellen ist einfach (im Vergleich zum Schreiben von tatsächlichem Code), hat aber die größte Auswirkung auf das Endergebnis. Sie können der Community am meisten helfen, indem Sie Wortlisten erstellen.
Wenn Sie eine einfache Möglichkeit haben möchten, Ihre Ideen zu posten, gehen Sie zu: http://www.tricider.com/brainstorming/2pdrT7ONVrB. Dort können Sie Ideen für Einträge in der Wortliste hinzufügen.
Die Verbesserung des Codes wird ebenfalls sehr geschätzt.
Wenn der Beitrag hoch genug ist, werden Sie im Abschnitt authors erwähnt.
http in res/layout und allgemein http://schemas.android.com/apk/res/androidDie folgenden Projekte wurden in diesem Projekt verwendet:
Alle diese Projekte haben ihre entsprechenden Lizenzen. Bitte respektieren Sie diese, während Sie dieses Projekt modifizieren und weiterverbreiten.
*: die Binärdatei ist in diesem Projekt enthalten. Falls die Entwickler von JADX damit nicht einverstanden sind, können Sie mich gerne kontaktieren, damit wir eine Lösung finden können.
Viele weitere sollten hier aufgeführt werden, aber ich kann sie nicht alle nennen.
| Projektersteller |
|---|
|
|