Skip to content
/ Rac-Rust Public
forked from alkoleft/Rac-Rust

v8_protocols Эксперимент по реверс‑инжинирингу протоколов 1С с помощью AI.

Notifications You must be signed in to change notification settings

BDDSM/Rac-Rust

 
 

Repository files navigation

v8_protocols

Эксперимент по реверс‑инжинирингу протоколов 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:1545

REST сервис для RAC (read‑only):

  1. Настроить rac_rest.toml (пример в корне репозитория).
  2. Запуск:
cargo run -p rac_protocol --bin rac_rest -- --config rac_rest.toml

Эндпоинты (GET, «чистый» JSON):

  1. /agent/version
  2. /clusters
  3. /clusters/{cluster}
  4. /clusters/{cluster}/managers
  5. /clusters/{cluster}/managers/{manager}
  6. /clusters/{cluster}/servers
  7. /clusters/{cluster}/servers/{server}
  8. /clusters/{cluster}/processes
  9. /clusters/{cluster}/processes/{process}
  10. /clusters/{cluster}/infobases/summary
  11. /clusters/{cluster}/infobases/summary/{infobase}
  12. /clusters/{cluster}/infobases/{infobase}
  13. /clusters/{cluster}/connections
  14. /clusters/{cluster}/connections/{connection}
  15. /clusters/{cluster}/sessions
  16. /clusters/{cluster}/sessions/{session}
  17. /clusters/{cluster}/locks
  18. /clusters/{cluster}/profiles
  19. /clusters/{cluster}/counters
  20. /clusters/{cluster}/counters/{counter}
  21. /clusters/{cluster}/limits
  22. /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. Прокси ставится между клиентом 1С и сервером.
  2. Трафик сохраняется в logs/, раскладывается на пары request/response.
  3. Дальше — анализ фрейминга, соответствия методов, построение карты команд в docs/.

Статус

Проект экспериментальный, многое WIP. Форматы и утилиты будут меняться по мере накопления наблюдений.

Полезные файлы

  • docs/documentation/rac_protocol_notes.md
  • docs/documentation/rac_method_map.md

About

v8_protocols Эксперимент по реверс‑инжинирингу протоколов 1С с помощью AI.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 84.9%
  • Python 9.4%
  • Shell 5.7%