
StaCoAn est un outil multiplateforme qui aide les développeurs, les chasseurs de bogues et les hackers éthiques à effectuer une analyse statique de code sur les applications mobiles.

StaCoAn est un outil multiplateforme qui aide les développeurs, les chasseurs de bugs et les hackers éthiques à effectuer de l'analyse statique de code sur les applications mobiles*.
Cet outil recherchera les lignes intéressantes dans le code qui peuvent contenir :
Cet outil a été créé avec un fort accent sur la convivialité et le guidage graphique dans l'interface utilisateur.
Pour les impatients, téléchargez sur la page des versions.
* : notez que seuls les fichiers apk sont actuellement supportés, mais les fichiers ipa suivront très bientôt.
Un exemple de rapport peut être trouvé ici.
Le concept est que vous glissiez-déposiez votre fichier d'application mobile (un fichier .apk ou .ipa) sur l'application StaCoAn et qu'elle génère pour vous un rapport visuel et portable. Vous pouvez ajuster les paramètres et les listes de mots pour une expérience personnalisée.
Les rapports contiennent un visualiseur arborescent pratique pour parcourir facilement votre application décompilée.

La Fonction de pillage vous permet de 'piller' (~marquer) les résultats qui ont de la valeur pour vous et sur la page de pillage vous aurez un aperçu de votre raid de 'butin'.
Le rapport final peut être exporté dans un fichier zip et partagé avec d'autres personnes.
L'application utilise des listes de mots pour trouver des lignes intéressantes dans le code. Les listes de mots sont au format suivant :
API_KEY|||80||| This contains an API key reference
(https|http):\/\/.*api.*|||60||| This regex matches any URL containing 'api'
Notez que ces listes de mots prennent en charge les entrées regex.
Dans le fichier exclusion_list.txt, vous pouvez définir des exclusions (si vous avez pour une raison quelconque trop de résultats) :
(https|http):\/\/.*api.*|||"res","layout"||| Like previously, note that "res","layout" resembles the path
(https|http):\/\/.*api.*|||||| To exclude everywhere
Tout fichier source sera traité. Cela inclut les fichiers '.java', '.js', '.html', '.xml',....
Les fichiers de base de données sont également recherchés pour des mots-clés. La base de données dispose également d'un visualiseur de table.

Les rapports sont conçus pour s'adapter à tous les écrans.


Cet outil aura des difficultés avec le code obfusqué. Si vous êtes développeur, essayez de compiler sans obfuscation avant d'exécuter cet outil. Si vous êtes du côté offensif, bonne chance mec.
Si vous voulez commencer le plus rapidement possible, rendez-vous sur la page des versions et téléchargez l'exécutable ou l'archive correspondant à votre système d'exploitation.
Si vous avez téléchargé le fichier zip de la version, extrayez-le.
Sur Windows, vous pouvez simplement double-cliquer sur l'exécutable. Il s'ouvrira en mode serveur et vous pourrez glisser-déposer vos applications mobiles dans l'interface web.

Sur Mac et Linux, vous pouvez simplement l'exécuter depuis le terminal sans arguments pour le mode serveur.
./stacoan
Glissez-déposez ce fichier sur l'exécutable.
Ou vous pouvez spécifier un fichier apk pour l'exécuter sans le mode serveur :
./stacoan -p test-apk.apk
Le rapport sera placé dans un dossier dont le nom correspond à l'apk.
cd docker
docker build . -t stacoan
Assurez-vous que votre application se trouve à l'emplacement /yourappsfolder.
docker run -e JAVA_OPTS="-Xms2048m -Xmx2048m" -p 8888:8888 -p 7777:7777 -i -t stacoan
Glissez-déposez votre application via : http://127.0.0.1:7777.
git clone https://github.com/vincentcox/StaCoAn/
cd StaCoAn/src
Assurez-vous que pip3 est installé :
sudo apt-get install python3-pip
Installez les paquets python requis :
pip3 install -r requirements.txt
Exécutez StaCoAn en ligne de commande :
python3 stacoan.py -p yourApp.apk
Ou si vous préférez utiliser l'interface glisser-déposer :
python3 stacoan.py
Assurez-vous d'être dans le dossier src.
cd src
Installez PyInstaller :
pip3 install pyinstaller
PyInstaller ne peut pas gérer les sous-dossiers avec du code, nous devons donc mettre le code dans un seul dossier.
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/* ./ || :;
Construisez stacoan :
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean
PyInstaller ne peut pas gérer les sous-dossiers avec du code, nous devons donc mettre le code dans un seul dossier.
# Note the ''-> this is because sed syntax is different on mac.
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/* ./ || :;
Construisez stacoan :
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean
PyInstaller ne peut pas gérer les sous-dossiers avec du code, nous devons donc mettre le code dans un seul dossier.
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/* ./ || :;
Construisez stacoan :
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean
La valeur de ce programme entier dépend des listes de mots qu'il utilise. En fin de compte, le résultat final est ce qui compte. Il est facile de construire une liste de mots (par rapport à l'écriture de code réel), mais cela a le plus grand impact sur le résultat final. Vous pouvez aider la communauté au maximum en faisant des listes de mots.
Si vous voulez un moyen facile de poster vos idées, rendez-vous sur : http://www.tricider.com/brainstorming/2pdrT7ONVrB. Vous pouvez y ajouter des idées d'entrées dans la liste de mots.
Améliorer le code est également très apprécié.
Si la contribution est suffisamment importante, vous serez mentionné dans la section authors.
Les projets suivants ont été utilisés dans ce projet :
Tous ces projets ont leurs licences correspondantes. Veuillez les respecter lorsque vous modifiez et redistribuez ce projet.
* : le binaire est inclus dans ce projet. Si les développeurs de JADX ne sont pas à l'aise avec cela, n'hésitez pas à me contacter pour que nous puissions trouver une solution.
Beaucoup d'autres devraient être listés ici, mais je ne peux pas tous les lister.
| Créateur du projet |
|---|
|
|