Аписконт
Этот проект направлен на упрощение импортного восстановления Windows API. В качестве ввода можно обработать произвольные дампы памяти для известной среды (обратите внимание: сначала необходимо создать эталонный DB, используя APISCOUT/DB_BUILDER).
Вывод представляет собой упорядоченный список идентифицированных ссылок Windows API с некоторой мета -информацией и отпечатка пальца Apivector.
- Scout.py - должен дать хороший план работы с библиотекой.
- ida_scout.py - это удобная обертка для использования в IDA Pro.
- Ghidrascout.java-плагин Ghidra для Apiscout (внесен в @Mari-Mari).
- Match.py - демонстрирует, как апивикторы могут быть сопоставлены друг с другом и коллекциями отпечатков пальцев.
- Collect.py - создает базу данных отпечатков пальцев Winapi (апивикторы), которые можно использовать для сопоставления.
- export.py - генерирует диаграммы APIQR, которые визуализируют апивикторы.
- Update.py - вытащите самый последний апивектор DB из Malpedia (требует учетной записи Malpedia / API).
Код должен быть полностью совместим с Python 2 и 3.
Есть сообщение в блоге, описывающее Apiscout более подробно: http://byte-atlas.blogspot.com/2017/04/apiscout.html.
Кроме того, еще один пост в блоге, объясняющий, как строится и хранятся апивикторы: https://byte-atlas.blogspot.com/2018/04/apivectors.html.
Мы также представили статью на Botconf 2018, в которой описывается методология Apiscout, включая оценку по сравнению с Malpedia: https://journal.cecyf.fr/ojs/index.php/cybin/article/view/20/23
История версий
- 2023-03-27: v2.0.2-Офикс ошибок для idascout и обработки наборов, предоставленная @7A6570 (спасибо !!)
- 2023-01-02: v2.0.1-Офикс ошибок для анализа импорта на основе LIEF с Python 3.10, внесенный @Malware-Kitten (спасибо !!)
- 2022-08-01: v1.2.0-Добавлен плагин для Ghidra, внесенный @Mari-Mari (спасибо !!)
- 2022-09-20: v2.0.0-(потенциально разбитый) Результаты ползания теперь имеют одно дополнительное поле вывода с набором вызова ссылок для данного Winapi. Это также включено в вывод JSON
scout.py , внесенный @renzhexigua (спасибо !!) - 2022-08-01: v1.2.0-Добавлен плагин для Ghidra, внесенный @Mari-Mari (спасибо !!)
- 2022-01-17: V1.1.9-Исправлен
ida_scout.py для работы с IDA 7.5+, когда Apiscout также установлен в качестве пакета Python. - 2021-10-04: V1.1.8-Расширение контекстов Winapi на основе наблюдений, предоставленных @Blattm (THX!).
- 2021-08-30: v1.1.7-Фиксированное предупреждение о том в APIQR, которое поднято Numpy.
- 2021-07-31: v1.1.6-Больше не обязательно сохранить фиксированную версию LIEF. (Спасибо @cccs-rs!)
- 2021-01-10: v1.1.5-Пакет Lief Python3, зафиксированный к версии 0.10.1 (спасибо @akhribfarouk!)
- 2020-12-09: v1.1.4-Исправления Python3 на базе данных (спасибо to @dilmbe-guy!)
- 2020-07-13: v1.1.3-добавлено «install_requires» в setup.py, чтобы обеспечить установку зависимости.
- 2020-06-30: v1.1.0-теперь используя Lief for Import Table Sanaing. Исправлена ошибка, которая не будет производить апивикторы при использовании анализа импортной таблицы. Apiscout теперь также доступен через PYPI.
- 2020-03-03: добавил сценарий, чтобы вытащить самый последний апиватор DB из Malpedia (требует Malpedia Account / API Token).
- 2020-03-02: Портировано в IDA 7.4 (спасибо @jenfrie).
- 2020-02-18: Строитель DB теперь совместим с Python 3.7 (спасибо @elanfer).
- 2019-10-08: обходной путь для сломанного фильтрации представления API в IDA 7.3 (спасибо @enzok за указание на это).
- 2019-08-22: Исправлена ошибка, в которой информация о отсутствии типа в IDA приведет к сбою (теперь дает сообщение об ошибке).
- 2019-08-20: Добавлена самофильтр, чтобы устранить указатели на собственное изображение памяти, которое можно ошибочно рассматриваться как ссылки на API.
- 2019-06-06: Добавлена поддержка правильной реконструкции типа для аннотированных API в IDA Pro (THX to @flxp0c)
- 2019-05-15: добавлена поддержка Numpy для векторных расчетов (на основе реализации, предоставленной @garanews-thx!)
- 2019-05-15: Исправлена ошибка в PE Mapper, где буфер будет сокращен из-за неправильной интерпретации размеров раздела.
- 2019-01-23: Улучшения QOL: автоматическое развертывание папки данных При использовании в качестве модуля, инициализация логгера (THX to @jdval)
- 2018-08-23: Исправлена ошибка в PE Mapper, где заголовок PE был бы перезаписан (пустые) данные раздела.
- 2018-08-21: добавленная функциональность, которая позволяет использовать информацию о импорте, а не ползает для ссылок.
- 2018-07-31: Фиксированные функции удобства для создания/экспорта векторов из/до списков и дад, добавлены тестовые покрытия.
- 2018-07-23: Предупреждение: изменение формата об Apivector-введенные сортированные апивикторы, которые еще более эффективны в пространстве (20%+).
- 2018-06-25: Фиксированная несовместимость с IDA Pro 7.0+ (спасибо @nazywam!)
- 2018-05-23: Добавлены дальнейшие семантические контекстные группы (thx to quoscient.io)
- 2018-03-27: эвристическая оценка подсчета ссылок Windows API добавлена
- 2018-03-06: APIQR визуализация векторных результатов (C-1024)
- 2017-11-28: добавлен собственный анализатор импорта для обогащения информации о результатах
- 2017-08-24: поддержка с несколькими сегментами в IDA Pro (спасибо @nazywam!)
- 2017-05-31: добавил Windows 7 SP1 64-битный импорт DB (совместим с Malpedia)
Кредиты
Идея ранее прошла через несколько итераций до достижения этого рефактованного выпуска.
Благодаря Торстену Дженке и Штеффну Эндерсу за их предыдущие усилия и оценку подтверждения концепции этого метода.
Больше благодаря Штеффу Эндерсу за его работу по визуализации диаграмм APIQR.
Также благодаря Эро Каррере за Pefile и Elias Bachaalany за шаблон Askusingform Ida Python. :)
Кроме того, большое спасибо Андреа Гараваглии за его контрольные показатели, которые приводят к радикальному ускорению в прикладном соответствии!
Получите запросы! :)