Кропива rust
telegra.ph
основных цели две:
1. Реверс-инжиниринг и анализ программ, которые использует ВСУ, а также приложений артиллерийских калькуляторов и тактических карт.
2. С учетом анализа из предыдущего пункта, разработка кроссплатформенных модулей на rust с открытым исходным кодом, на базе которых можно будет делать различные приложения для русской армии, добровольцев и ЧВК.
Реверс-инжиниринг
На данный момент здесь есть автоматически декомпилированный код следующих приложений, требующий доработок:
Система Кропива:
Мапа (ua.milarmysos.android_2.7.3)
Тенета (ua.mil.armysos.network.networkbridge_2.2.8)
Тенета Группы (ua.mil.tenetagroups_1.2.23)
Обновление ресурсов (ua.kmd.resourceclient-1.2.0)
Метео (com.idepositbox.btspp-1.2.5)
Быстрое удаление (ua.logika.fastdelete_1.5)
FireFly (video.zhuker.sancho_1.5.1)
Код доступен по любому из этих адресов, но в любой момент эти сервисы могут его удалить:
0xacab.org
codeberg.org
notabug.org
gitlab.com
bitbucket.org
Разработка
Примеры модулей, разработка которых имеет смысл:
— Геопространственный модуль — системы координат, конверсии между ними, решение геодезических задач. К примеру, вот названия классов с различными способами ввода координат в "Кропиве" — WSGInput, UTMInput, SK42Input, PolarInput, PairedCalcInput, NotchCalcInput, MgrsInput, InverseNotchOrientedInput, InverseNotchNotOrientedInput, InputByTimer, InputByTarget, InputByLandmark, InputByImpact, InputByEntity, InputByEmplacement, InputByCop, InputByBaseEntity, InputByAverage, Graphical, FromBOObjectInput, CoddedInput.
— Модуль шифрования. Здесь могут быть реализованы алгоритмы ГОСТ, AES, ECC и протоколы обмена ключами. Такой модуль должен пройти аудит, и его использование должно быть максимально простым и не требовать глубоких знаний по криптографии для достижения криптобезопасности.
— Артиллерийский модуль. Здесь содержатся все расчеты и данные по орудиям и боеприпасам в определенном формате, чтобы было легко добавлять новые.
— Общий модуль передачи данных. Этот модуль подключают потребители, и им не нужно вникать в работу протоколов и методы передачи данных. Здесь должны быть определены структуры данных "Группа контактов" и "Контакт". Внутри контакта указан один или несколько его адресов в доступных системах и протоколах свзяи. Адрес — текстовая строка типа URI, которая включает в себя протокол и идентификатор абонента (к примеру, IP-адрес или его открытый ключ), к примеру, "ax25:afsk1200@400mhz/44.136.8.5" или "dmr@800mhz/Gost3410/6202c2b5ce9a7a35515e".
— Отдельные модули по протоколам и методам передачи данных, сюда относится взаимодействие с конктретными радиостанциями по Bluetooth, аудиомодемы, протоколы типа AX.25.
— Общий модуль кодирования данных. Здесь определены типы данных — голос, текст, изображение, структурированное сообщение в различных форматах.
— Отдельные модули по форматам структуры сообщений. Как, к примеру J-Series или протокол "карма" из кропивы. В них могут определяться такие типы данных, как координаты, виды целей, типовые приказы, тактические символы для карты, и так далее.
Как поучаствовать
— Присылайте сслыки на программы (или сами программы), которые имеет смысл подвергнуть реверс-инжинирингу.
— Если вы умеете читать Java, либо имеете опыт разработки под андроид, либо имеете опыт реверс-ижиниринга — помогайте приводить код в порядок и описывать логику алгоритмов, которые могут пригодиться.