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

StaCoAn — это кроссплатформенный инструмент, помогающий разработчикам, охотникам за багами и этичным хакерам проводить статический анализ кода мобильных приложений*.
Этот инструмент будет искать в коде интересные строки, которые могут содержать:
Этот инструмент был создан с большим акцентом на удобство использования и графическое сопровождение в пользовательском интерфейсе.
Для нетерпеливых: скачайте на странице релизов.
*: обратите внимание, что сейчас поддерживаются только файлы APK, но поддержка IPA появится очень скоро.
Пример отчёта можно найти здесь.
Концепция такова: вы перетаскиваете файл мобильного приложения (.apk или .ipa) на приложение StaCoAn, и оно генерирует для вас визуальный и портативный отчёт. Вы можете настроить параметры и списки слов для индивидуального опыта.
Отчёты содержат удобное дерево для просмотра, позволяющее легко просматривать декомпилированное приложение.

Функция Loot (Изъятие) позволяет вам «изымать» (≈добавлять в закладки) находки, которые представляют для вас ценность, а на странице изъятого вы получите обзор вашего «налёта».
Итоговый отчёт можно экспортировать в zip-файл и поделиться им с другими.
Приложение использует списки слов для поиска интересных строк в коде. Списки слов имеют следующий формат:
API_KEY|||80||| This contains an API key reference
(https|http):\/\/.*api.*|||60||| This regex matches any URL containing 'api'
Обратите внимание, что эти списки слов поддерживают записи в виде регулярных выражений.
В файле exclusion_list.txt вы можете задать исключения (если по какой-то причине у вас слишком много находок):
(https|http):\/\/.*api.*|||"res","layout"||| Like previously, note that "res","layout" resembles the path
(https|http):\/\/.*api.*|||||| To exclude everywhere
Будут обработаны все исходные файлы. Сюда входят файлы '.java', '.js', '.html', '.xml',....
Файлы баз данных также проверяются на наличие ключевых слов. База данных также имеет средство просмотра таблиц.

Отчёты созданы так, чтобы помещаться на любых экранах.


Этот инструмент будет испытывать трудности с обфусцированным кодом. Если вы разработчик, попробуйте скомпилировать без обфускации перед запуском этого инструмента. Если вы с атакующей стороны — удачи, бро.
Если вы хотите начать как можно скорее, перейдите на страницу релизов и скачайте исполняемый файл или архив, соответствующий вашей операционной системе.
Если вы скачали zip-архив релиза, распакуйте его.
В Windows вы можете просто дважды щелкнуть исполняемый файл. Он откроется в режиме сервера, и вы сможете перетащить мобильные приложения в веб-интерфейс.

На Mac и Linux вы можете просто запустить его из терминала без аргументов для режима сервера.
./stacoan
Перетащите этот файл на исполняемый файл.
Или вы можете указать apk-файл, чтобы запустить его без режима сервера:
./stacoan -p test-apk.apk
Отчёт будет помещён в папку с именем, соответствующим apk.
cd docker
docker build . -t stacoan
Убедитесь, что ваше приложение находится в папке /yourappsfolder.
docker run -e JAVA_OPTS="-Xms2048m -Xmx2048m" -p 8888:8888 -p 7777:7777 -i -t stacoan
Перетащите приложение через: http://127.0.0.1:7777.
git clone https://github.com/vincentcox/StaCoAn/
cd StaCoAn/src
Убедитесь, что у вас установлен pip3:
sudo apt-get install python3-pip
Установите необходимые пакеты Python:
pip3 install -r requirements.txt
Запустите StaCoAn через командную строку:
python3 stacoan.py -p yourApp.apk
Или если вы предпочитаете использовать интерфейс перетаскивания:
python3 stacoan.py
Убедитесь, что вы находитесь в папке src.
cd src
Установите PyInstaller:
pip3 install pyinstaller
PyInstaller не может обрабатывать подпапки с кодом, поэтому нам нужно поместить код в одну папку.
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:
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean
PyInstaller не может обрабатывать подпапки с кодом, поэтому нам нужно поместить код в одну папку.
# Обратите внимание на '' — это потому, что синтаксис sed на 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/* ./ || :;
Соберите stacoan:
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean
PyInstaller не может обрабатывать подпапки с кодом, поэтому нам нужно поместить код в одну папку.
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:
python3 -m PyInstaller stacoan.py --onefile --icon icon.ico --name stacoan --clean
Ценность всей этой программы зависит от используемых ею списков слов. В конечном итоге, важен результат. Создать список слов легко (по сравнению с написанием кода), но это оказывает наибольшее влияние на конечный результат. Вы можете больше всего помочь сообществу, составляя списки слов.
Если вы хотите простой способ поделиться своими идеями, перейдите на: http://www.tricider.com/brainstorming/2pdrT7ONVrB. Там вы можете добавить идеи для записей в списке слов.
Улучшения кода также очень ценятся.
Если ваш вклад будет достаточно велик, вы будете упомянуты в разделе авторы.
http в res/layout и в целом http://schemas.android.com/apk/res/androidВ этом проекте использовались следующие проекты:
У всех этих проектов есть соответствующие лицензии. Пожалуйста, соблюдайте их при модификации и распространении этого проекта.
*: бинарный файл включён в этот проект. Если разработчики JADX не согласны с этим, свяжитесь со мной, чтобы найти решение.
Здесь должно быть перечислено намного больше людей, но я не могу перечислить их всех.
| Создатель проекта |
|---|
|
|