Эксперимент по реверс‑инжинирингу протоколов 1С с помощью AI.
Цель: собирать трафик, раскладывать его на обмены, строить карты методов и постепенно заменять официальный rac на собственные утилиты.
v8_protocols— TCP‑прокси для перехвата и логирования сессий.apps/rac_protocol— инструменты для RAC: декодер фрейминга и минимальный клиент.docs/— заметки по протоколу и карта методов.
Сборка:
cargo build --release -p v8_protocols
cargo build --release -p rac_protocolЗапуск прокси:
cargo run --release -p v8_protocols -- \
--listen 127.0.0.1:15410 \
--target 127.0.0.1:1541 \
--log-dir ./logs \
--try-inflate=trueДекодирование потока RAC:
cargo run -p rac_protocol --bin rac_decode -- logs/<session>/client_to_server.stream.bin
cargo run -p rac_protocol --bin rac_decode -- logs/<session>/server_to_client.stream.binМини‑клиент без rac (WIP):
cargo run -p rac_protocol --bin rac_lite -- agent-version 127.0.0.1:1545
cargo run -p rac_protocol --bin rac_lite -- cluster-list 127.0.0.1:1545REST сервис для RAC (read‑only):
- Настроить
rac_rest.toml(пример в корне репозитория). - Запуск:
cargo run -p rac_protocol --bin rac_rest -- --config rac_rest.tomlЭндпоинты (GET, «чистый» JSON):
/agent/version/clusters/clusters/{cluster}/clusters/{cluster}/managers/clusters/{cluster}/managers/{manager}/clusters/{cluster}/servers/clusters/{cluster}/servers/{server}/clusters/{cluster}/processes/clusters/{cluster}/processes/{process}/clusters/{cluster}/infobases/summary/clusters/{cluster}/infobases/summary/{infobase}/clusters/{cluster}/infobases/{infobase}/clusters/{cluster}/connections/clusters/{cluster}/connections/{connection}/clusters/{cluster}/sessions/clusters/{cluster}/sessions/{session}/clusters/{cluster}/locks/clusters/{cluster}/profiles/clusters/{cluster}/counters/clusters/{cluster}/counters/{counter}/clusters/{cluster}/limits/clusters/{cluster}/limits/{limit}
Примеры:
curl http://127.0.0.1:8081/agent/version
curl http://127.0.0.1:8081/clusters
curl http://127.0.0.1:8081/clusters/550e8400-e29b-41d4-a716-446655440000
curl http://127.0.0.1:8081/clusters/550e8400-e29b-41d4-a716-446655440000/sessions- Прокси ставится между клиентом 1С и сервером.
- Трафик сохраняется в
logs/, раскладывается на пары request/response. - Дальше — анализ фрейминга, соответствия методов, построение карты команд в
docs/.
Проект экспериментальный, многое WIP. Форматы и утилиты будут меняться по мере накопления наблюдений.
docs/documentation/rac_protocol_notes.mddocs/documentation/rac_method_map.md