Документация протокола мессенджера MAX (oneme.ru), полученная методом reverse engineering.
Этот репозиторий содержит техническое описание закрытого протокола MAX Messenger — мессенджера, встроенного в экосистему MAX. Официальной публичной документации API не существует; всё, что здесь написано, получено анализом трафика и исходного кода веб-клиента.
max-api-docs/
├── README.md # Этот файл
├── protocol/
│ ├── opcodes.md # Полная таблица опкодов
│ ├── auth.md # Аутентификация (INIT, LOGIN)
│ ├── messaging.md # Сообщения (send, delete, history, search)
│ ├── chats.md # Чаты (список, управление, upload)
│ ├── contacts.md # Контакты и профиль
│ ├── files.md # Загрузка и отправка файлов
│ ├── calls.md # Звонки (история, старт, управление)
│ ├── presets.md # Пресеты (аватары, стикеры, эмодзи)
│ ├── push.md # Push-уведомления
│ ├── connection.md # Управление сессией (MaxConnection vs probe)
│ ├── tcp-protocol.md # TCP протокол (MessagePack, ver=10)
│ └── websocket.md # WebSocket протокол (JSON, ver=11)
└── scripts/
├── mcp-max-user-server.py # MCP сервер для AI-ассистентов
└── tests/
├── tcp_delete.py # DELETE-запрос через TCP (opcode 66)
├── delete_variants.py # Сканирование опкодов
└── tcp_raw_test.py # Дампы INIT/LOGIN
MAX использует два параллельных протокола:
| Транспорт | Endpoint | Формат | Версия |
|---|---|---|---|
| WebSocket | wss://ws-api.oneme.ru/websocket |
JSON | 11 |
| TCP (SSL) | api.oneme.ru:443 |
MessagePack | 10 |
Оба используют одинаковую систему опкодов и payload. Подключение: INIT (6) → LOGIN (19) → рабочие запросы.
pip install websocket-client msgpack certifi
export ACCESS_TOKEN="токен из web.max.ru"
export DEVICE_ID="device_id из INIT запроса"
python3 scripts/tests/tcp_delete.pyКак получить токены:
- Авторизуйся на web.max.ru в Chrome/Firefox
- F12 → Network
- Перезагрузи страницу (F5) — чтобы захватить WebSocket-соединение с самого начала
- В фильтре выбери
WS(WebSocket) - Кликни на единственное соединение
wss://ws-api.oneme.ru/websocket - Во вкладке Messages найди первое сообщение — это INIT (opcode=6). В payload будет
deviceId - Второе сообщение — LOGIN (opcode=19). В payload будет
token
| Опкод | Команда | Назначение |
|---|---|---|
| 6 | INIT | Инициализация сессии |
| 19 | LOGIN | Авторизация |
| 25 | GET_PRESET_AVATARS | Пресеты аватаров |
| 26 | GET_PRESETS | Стикеры, эмодзи, реакции |
| 53 | GET_CHATS | Список чатов |
| 61 | GET_CHAT_INFO | Информация о чате |
| 64 | MSG_SEND | Отправка сообщения |
| 65 | MSG_TYPING | Индикатор печатания |
| 66 | MSG_DELETE | Удаление сообщения |
| 67 | MSG_EDIT | Редактирование |
| 69 | CALL_EDIT | Управление звонком |
| 70 | FORWARD_MESSAGE | Пересылка сообщения |
| 73 | SEARCH_MESSAGES | Поиск по сообщениям |
| 77 | CHAT_OPERATION | Операции с чатами |
| 78 | CALL_START | Инициализация звонка |
| 79 | CALL_HISTORY | История звонков |
| 80 | IMAGE_UPLOAD_URL | URL загрузки изображений |
| 81 | IMAGE_UPLOAD_IUSMILE | URL загрузки (iusmile) |
| 86 | CHAT_SHOW | Управление отображением чата |
| 87 | FILE_UPLOAD | Загрузка файла |
| 92 | CHAT_ACTIVITY | Информация о чате за период |
| 272 | GET_FOLDERS | Папки чатов |
Полная таблица → protocol/opcodes.md
Примечание: Сервер отвечает cmd=1 (ACK) на любой корректный
запрос, даже если операция не поддерживается. Проверять реальный
эффект нужно через запрос данных (GET_HISTORY).
Документация составлена на основе:
- Исходный код веб-клиента — JavaScript-бандлы
web.max.ru, содержат полную карту опкодов и структуры payload - WebSocket-трафик — анализ запросов/ответов через DevTools
- Прямое тестирование — отправка запросов напрямую через TCP сокеты и WebSocket с различными опкодами и payload
- Экспериментальная верификация — проверка эффекта операций через запросы состояния (GET_HISTORY, GET_CHATS)
- MaxProtoExplanation — объяснение бинарного протокола oneme TCP: структура фрейма, msgpack, LZ4-сжатие
- maxcalls — документация WebSocket API, описание аутентификации и опкодов звонков
- max-api — неофициальная Python библиотека с таблицей 100+ опкодов
- PyMax — Python-клиент MAX, коммуникационные протоколы (DeepWiki)
- openmax-server — открытая реализация сервера MAX, oneme TCP wire protocol (DeepWiki)
- vk-max — декомпилированный Android-клиент MAX (VK)
- Клиент MAX на Rust — статья на DTF о reverse engineering MAX
- python-max-client — ещё одна Python-реализация клиента
- OSINT Anatomy: слежка за VPN — исследование телеметрии MAX
- madmax — Python-пакет для работы с MAX API
MIT