
Collare - это инструмент для совместной обратной инженерии, который направлен на то, чтобы позволить командам, которым нужно использовать больше, чем один инструмент во время проекта для сотрудничества без необходимости обмена файлами в отдельном месте. Он также содержит очень простое управление пользователями и, как таковое, может использоваться для многопроектного сервера, где разные команды работают над разными проектами. Защитой инструмента является простое Flask app с nginx перед ним, работающим в Docker, которое работает с файлами и манифестами на основе JSON, которые содержат соответствующие данные. Фронт-энд-это инструмент GUI на основе PYQT с простым интерфейсом, который позволяет управлять проектами и работать с двоичными файлами и соответствующими базами данных обратной инженерии. На данный момент инструмент поддерживает Binary Ninja , Cutter (Rizin) , Ghidra , Hopper Dissassembler , IDA , JEB и Android Studio (Decompiled by JADX) . Реализация абстрагирована из внутренней работы этих инструментов как можно больше, чтобы избежать проблем с любыми изменениями API и, следовательно, не интегрируется в эти инструменты в форме плагина (за исключением плагинов Migration Migration, описанных ниже). Работа основана исключительно на управлении файлами check-in check-out
Возьмите последний бинарный выпуск из этого репозитория или клонируйте репо и запустите sudo python3 setup.py install на Linux или используйте командную строку в Windows и запустите python3 setup.py install . На Linux это установит инструмент на PATH , и вы сможете запустить его просто с помощью команды collare . В Windows это поместит файл в C:Users<USERNAME>AppDataLocalProgramsPython<PYTHON_VERSION>Scriptscollare.exe (в зависимости от того, как вы установили Python).
Для рабочих интерфейсов на рабочем столе на основе GNOM
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=CollaRE
Exec=/usr/local/bin/collare
Icon=/usr/local/lib/python3.8/dist-packages/collare-1.2-py3.8.egg/collare/icons/collare.png
Terminal=false
Чтобы включить поддержку для Cutter, добавьте Cutter файла в свой путь (при открытии cmd / terminal Writing Cutter должен запустить приложение). При сохранении проектов Cutter (Rizin) вы должны вручную добавить .rzdb . Не удаляйте удлинение, которое уже есть в файле (например, exe или so ).
Чтобы включить поддержку двоичного ниндзя добавить файл binaryninja в свой путь (когда вы открываете cmd / terminal , написание binaryninja должно запустить приложение). Бинарный ниндзя по умолчанию удаляет расширения файлов, однако инструмент учитывает это, поэтому нет необходимости вручную возвращать исходное расширение файла. Сохранение проектов, как это находится в пути по умолчанию, достаточно, чтобы иметь возможность успешно продвигать локальную базу данных bndb .
Чтобы включить поддержку Hopper Disassassembler, добавьте к вашему пути файл Hopper (когда вы открываете cmd / terminal Writing Hopper , должен запустить приложение). По умолчанию Hopper удаляет расширения файлов, однако инструменты учитывают это, поэтому нет необходимости возвращать исходное расширение файла вручную. Сохранить проекты просто с помощью Ctrl+S достаточно, чтобы успешно продвигать локальную базу данных hop .
Чтобы включить поддержку JEB, добавьте файл jeb в свой путь (когда вы открываете cmd / terminal Writing jeb должен запустить приложение). Это может быть сделано, переименовав файл скрипта бегуна по умолчанию для вашей ОС в jeb (для Windows это на самом деле будет jeb.bat ).
Чтобы включить поддержку инструмента IDA, добавьте файлы ida64 и ida на ваш путь (при открытии cmd / terminal Writing ida64 / ida должны запустить приложение).
Чтобы включить поддержку этого инструмента, добавьте файл ghidraRun и analyzeHeadless ( .bat для Windows) на ваш путь (когда вы открываете cmd / terminal Writing ghidraRun должен запустить приложение). Обратите внимание, что analyzeHeadless находится в папке support в каталоге Ghidra Root, поэтому обязательно настройте PATH для размещения обоих файлов. Процесс инициализации базы данных с Ghidra немного сложнее, поскольку нет никакого способа, чтобы Ghidra обрабатывает файл без создания проекта. Таким образом, чтобы иметь возможность раздвигать базу данных Ghidra (называемую ghdb ), вам будет предложено создать проект вручную, когда автоматическая обработка не сбои (в основном, когда файл, который вы не являетесь ELF/PE), а затем укажите путь к файлу gpr (извините за это).
Поскольку файлы APK и JAR часто встречаются во время усилий по обратной инженерии, инструмент Collare также поддерживает работу с этими типами файлов. Чтобы включить поддержку этих инструментов, необходимо убедиться, что файлы android-studio и jadx находятся в пути (когда вы открываете cmd / terminal , написание android-studio / jadx должны запустить приложение). Инструмент JADX используется для выполнения декомпиляции файла JAR/APK, а Android Studio используется для открытия полученных файлов. Обратите внимание, что использование Android Studio является необязательным, так как вы можете псевдощать любой другой инструмент, который обрабатывает проекты Gradle под командой android-studio (например, IntelliJ Idea).
После развертывания стороны сервера, как упомянуто в его собственном файле Readme, необходимо распределить используемый файл сертификата всем пользователям приложения, а также использовать учетную запись admin по умолчанию с паролем admin для создания других учетных записей пользователей (не забудьте изменить пароль пользователя admin ) через вкладку Admin . Когда пользователи настроены, каждый может создавать свои собственные проекты и начать работать с самим инструментом.
Для создания пользователя проекта должен сначала аутентифицировать на удаленный сервер, введя URL -адрес, учетные данные и предоставить сертификат для проверки идентификации сервера. После этого статус изменится на Connected , и можно выбрать или удалить существующие проекты или создать новый проект, просто введя имя (буквенно -цифровые символы и _ только _) и выбрав пользователей, которые будут участвовать в проекте (могут быть изменены позже на вкладке Admin ). Обратите внимание, что пользователь, который создает проект, автоматически добавляется в список пользователей, поэтому вам не нужно выбирать себя.

После того, как вы появитесь на вкладке Project View вы можете создавать новые папки (буквенно -цифровые символы и _ только, извините) и использовать перетаскивание для загрузки файлов (или папок).

Поскольку в настоящее время в инструменте нет никаких плагинов или собственных крючков, которые позволят автоматические загрузки при сохранении проекта, необходимо, чтобы локальный толкатель файла DB запускается вручную после создания желаемых баз данных. Это может быть сделано rzdb щелкнув правой кнопкой мыши по загруженному двоичному файлу и выбрав инструмент, который вы хотите обработать в бинарном. Не меняйте путь и имя файла . После того, как вы делаете это и закрыв разборщик, вы можете просто щелкнуть правой кнопкой мыши на двоичном имени и выберите опцию Push Local DBs . Это загрузит локальную базу данных и с этого момента, когда вы хотите работать с файлом DB, вам необходимо выполнить Check-out . Обратите внимание, что каждый двоичный файл может быть обработана во всех инструментах отдельно, но может существовать только один файл DB на двоичный файл и инструмент.

Если вы просто захотите проверить файл, вы можете щелкнуть правой кнопкой мыши по нужному файлу DB и выбрать опцию Open File (или просто дважды щелкните). Если файл проверен вам, это откроет локальный файл, и вы можете свободно выполнить любые изменения в файле DB. Когда вы закончите (или когда вы просто хотите нажать изменения), вы можете выбрать опцию Check-in . Это загрузит изменения на сервер и подсказывает вам, хотите ли вы, чтобы файл проверил для дальнейших изменений. Если вы хотите отказаться от локальных изменений, выберите опцию Undo Check-out из контекстного меню. Это отбросит ваши изменения и позволит вам продолжить с файлом с сервера. Открытие файла без выполнения операции Check-out сначала откроет его в поддельном режиме только для чтения (вы можете внести изменения в файл DB, но они будут потеряны в следующий раз, когда вы выходите на выезд или откроете файл).

Инструмент также поддерживает управление версиями файлов DB таким образом, что каждое действие Check-in считается новой версией файла DB. Вам будет предложено вставить комментарий для версии, которая используется для предоставления большего контекста для изменений, которые применяются в этой версии. Затем можно открыть или выпустить предыдущие версии файлов и работать над ними.

Папка Plugins в этом репозитории содержит плагины для поддерживаемых инструментов, которые позволяют вам обмениваться комментариями и именами функций между инструментами, если вы работаете над одним бинарником с несколькими инструментами. Следуйте стандартным инструкциям по установке плагина для интересующего вас инструмента. Каждый плагин предлагает Import и Export функцию. Когда вы планируете поделиться данными между инструментами, всегда убедитесь, что вы Import данные сначала, чтобы избежать переименования функций, которые уже были переименованы кем -то другим. Если плагин поставляется с некоторыми уловами, они упоминаются в файле readme данного плагина. Обратите внимание, что плагины предназначены для переноса данных в другой инструмент, а не для одновременного сотрудничества нескольких людей.
