
StaCoAn es una herramienta multiplataforma que ayuda a desarrolladores, cazadores de recompensas por bugs y hackers éticos a realizar análisis estático de código en aplicaciones móviles.

StaCoAn es una herramienta multiplataforma que ayuda a desarrolladores, cazadores de bugs y hackers éticos a realizar análisis estático de código en aplicaciones móviles*.
Esta herramienta busca líneas interesantes en el código que pueden contener:
Esta herramienta fue creada con un gran enfoque en la usabilidad y la guía gráfica en la interfaz de usuario.
Para los impacientes, descarguen el archivo en la página de versiones.
*: nota que actualmente solo se admiten archivos apk, pero los archivos ipa llegarán muy pronto.
Puedes encontrar un informe de ejemplo aquí.
El concepto es que arrastres y sueltes tu archivo de aplicación móvil (un archivo .apk o .ipa) en la aplicación StaCoAn y generará un informe visual y portátil para ti. Puedes ajustar la configuración y las listas de palabras para obtener una experiencia personalizada.
Los informes contienen un práctico visor de árbol para que puedas navegar fácilmente por tu aplicación descompilada.

La Función de Saqueo te permite 'saquear' (~marcar) los hallazgos que son valiosos para ti y en la página de saqueo obtendrás una visión general de tu incursión de 'saqueo'.
El informe final se puede exportar a un archivo zip y compartir con otras personas.
La aplicación utiliza listas de palabras para encontrar líneas interesantes en el código. Las listas de palabras tienen el siguiente formato:
API_KEY|||80||| Esto contiene una referencia a una clave API
(https|http):\/\/.*api.*|||60||| Esta expresión regular coincide con cualquier URL que contenga 'api'
Ten en cuenta que estas listas de palabras admiten entradas de regex.
En el archivo exclusion_list.txt puedes definir exclusiones (si por alguna razón tienes demasiados hallazgos):
(https|http):\/\/.*api.*|||"res","layout"||| Como antes, nota que "res","layout" se asemeja a la ruta
(https|http):\/\/.*api.*|||||| Para excluir en todas partes
Se procesará cualquier archivo fuente. Esto incluye archivos '.java', '.js', '.html', '.xml',....
Los archivos de base de datos también se buscan por palabras clave. La base de datos también tiene un visor de tablas.

Los informes están diseñados para adaptarse a todas las pantallas.


Esta herramienta tendrá problemas con el código ofuscado. Si eres desarrollador, intenta compilar sin la ofuscación activada antes de ejecutar esta herramienta. Si estás en el lado ofensivo, buena suerte, colega.
Si quieres empezar lo antes posible, dirígete a la página de versiones y descarga el ejecutable o el archivo comprimido que corresponda a tu sistema operativo.
Si has descargado el archivo zip de la versión, extráelo.
En Windows, simplemente haz doble clic en el ejecutable. Se abrirá en modo servidor y podrás arrastrar y soltar tus aplicaciones móviles en la interfaz web.

En Mac y Linux puedes ejecutarlo desde la terminal sin argumentos para el modo servidor.
./stacoan
Arrastra y suelta este archivo sobre el ejecutable.
O puedes especificar un archivo apk para ejecutarlo sin el modo servidor:
./stacoan -p test-apk.apk
El informe se colocará dentro de una carpeta con un nombre que corresponde al apk.
cd docker
docker build . -t stacoan
Asegúrate de que tu aplicación esté en la ubicación /tucarpetadeapps.
docker run -e JAVA_OPTS="-Xms2048m -Xmx2048m" -p 8888:8888 -p 7777:7777 -i -t stacoan
Arrastra y suelta tu aplicación a través de: http://127.0.0.1:7777.
git clone https://github.com/vincentcox/StaCoAn/
cd StaCoAn/src
Asegúrate de tener pip3 instalado:
sudo apt-get install python3-pip
Instala los paquetes de Python requeridos:
pip3 install -r requirements.txt
Ejecuta StaCoAn desde la línea de comandos:
python3 stacoan.py -p tuApp.apk
O si prefieres usar la interfaz de arrastrar y soltar:
python3 stacoan.py
Asegúrate de estar en la carpeta src.
cd src
Instala PyInstaller:
pip3 install pyinstaller
PyInstaller no puede manejar subcarpetas con código, por lo tanto necesitamos poner el código en una sola carpeta.
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/* ./ || :;
Compila stacoan:
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean
PyInstaller no puede manejar subcarpetas con código, por lo tanto necesitamos poner el código en una sola carpeta.
# Nota: '' -> esto se debe a que la sintaxis de sed es diferente en 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/* ./ || :;
Compila stacoan:
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean