2026-08-13 09:44:44 +03:00
2025-06-17 01:48:43 +07:00
2024-03-28 14:31:28 +07:00
2025-09-05 19:48:10 +07:00
2023-03-30 23:01:42 +07:00
2023-08-30 15:33:56 +07:00

PronBox

Форк box_for_magisk - прозрачный прокси для Android (root).
Собрано в стенах НИИ «ТехноПрон». Отображаемое имя в Magisk: PronBox; module id: box_for_root (апгрейд совместим).

Работает через Magisk, KernelSU и APatch. Ядро по умолчанию: sing-box. Anti-detection без LSPosed + sidecar: olcrtc / TrustTunnel / wg-obfuscator.


Зачем этот форк

Stock Box for Root хорошо проксирует трафик через TPROXY, но:

  1. Не поддерживает новые протоколы вроде olcrtc, TrustTunnel и WG-obfuscation «из коробки».
  2. Легко детектится проверщиками вроде RKNHardering: REST API на 9090, скан localhost, TUN-интерфейсы.

PronBox решает это без LSPosed - iptables port-hide, hardening конфигов и sidecar-цепочка. Разработано командой НИИ «ТехноПрон».


Отличия от stock BFR

Функция Stock BFR PronBox
Ядро по умолчанию clash sing-box
Режим сети tproxy tproxy (TUN блокируется)
REST API (9090) 0.0.0.0 отключён или только 127.0.0.1
TUN mode доступен запрещён (stealth_forbid_tun)
Localhost scan не защищён iptables port-hide для observer apps
olcrtc / TrustTunnel нет sidecar → SOCKS → sing-box
WG obfuscator нет wg-obfuscator → WireGuard
Быстрый профиль - Manage Profiles / sbfr p …
LSPosed / VPN Hide - не требуется
Автор - команда НИИ «ТехноПрон»

Возможности

  • Прозрачный прокси через iptables TPROXY - без VpnService, без VPN-иконки, без TRANSPORT_VPN.
  • Stealth-слой (box.stealth): скрытие localhost-портов от банков и anti-tamper SDK.
  • Sidecar (box.sidecar): olcrtc и TrustTunnel как локальный SOCKS5 upstream для sing-box.
  • Авто-hardening sing-box/clash: удаление REST API, запрет TUN, блок QUIC (опционально).
  • Split tunneling через blacklist/whitelist приложений и GID (как в stock BFR).
  • Совместимость с Magisk / KernelSU / APatch.

Архитектура

Обычный режим (VLESS / Hysteria / и т.д.)

Приложение
  → iptables mangle / TPROXY (порт 9898)
  → sing-box (tproxy inbound)
  → outbound (VLESS, Trojan, …)
  → сервер

Sidecar-режим (olcrtc / TrustTunnel)

Приложение
  → iptables TPROXY
  → sing-box
  → SOCKS 127.0.0.1:10800
  → olcrtc | trusttunnel_client
  → сервер (WebRTC / HTTPS-туннель)

Stealth-слой (параллельно)

Observer app (банк, RKNHardering)
  → connect(127.0.0.1:9090)
  → iptables REJECT (UID из stealth.list.cfg)
  → ECONNREFUSED (порт «закрыт»)

Ядро прокси (root) → loopback доступен, прокси работает

Установка

Из релиза

  1. Скачайте pronbox-v*.zip из Releases.
  2. Magisk / KernelSU / APatch → Modules → Install from storage.
  3. При установке выберите загрузку sing-box (Vol+).
  4. Перезагрузите устройство.

Сборка из исходников

Windows / любая ОС (рекомендуется):

python tools/build_zip.py
# → pronbox-v1.13.0.zip

Linux / Git Bash:

sh build.sh

Быстрый старт

Перед правкой конфигов остановите сервис PronBox.

1. Профили TrustTunnel / olcrtc (быстрое переключение)

В модуле лежат два готовых шаблона:

Профиль Файл SOCKS route.final
TrustTunnel config.trusttunnel.json :10800 sidecar-proxy
olcrtc config.olcrtc.json :10801 olcrtc-proxy

Подставьте свои пароли/ключи (шаблоны в репозитории scrubbed) или на устройстве:

# клонировать текущий рабочий конфиг в оба профиля
su -c '/data/adb/box/scripts/box.profile seed'

# переключение (меняет name_sing_config + sidecar_* и рестартит сервис)
sbfr p use trusttunnel
sbfr p use olcrtc
sbfr p status

В Magisk/терминале то же самое: su -c '/data/adb/box/scripts/box.profile use olcrtc'.

2. Конфиг sing-box (с нуля)

Скопируйте минимальный шаблон и настройте outbound:

cp /data/adb/box/sing-box/config.stealth.example.json /data/adb/box/sing-box/config.json
# добавьте свой VLESS / другой outbound

3. Observer-приложения (stealth)

Файл /data/adb/box/stealth.list.cfg - приложения, которым скрываем localhost-прокси:

# один package на строку
ru.sberbankmobile
com.idamob.tinkoff.android
ru.rostel
com.notcvnt.rknhardering

4. Blacklist для checker'а

Чтобы RKNHardering не шёл через прокси, добавьте в /data/adb/box/package.list.cfg:

mode:blacklist
com.notcvnt.rknhardering

5. Запуск

su -c /data/adb/box/scripts/box.service start
su -c /data/adb/box/scripts/box.iptables enable

Stealth включается автоматически при stealth_mode="true" (по умолчанию). Вручную:

su -c /data/adb/box/scripts/box.stealth enable
su -c /data/adb/box/scripts/box.stealth status

Stealth (без LSPosed)

Скрипт /data/adb/box/scripts/box.stealth реализует port-hide по модели vpnhide/portshide:

Механизм Описание
Loopback block Для UID из stealth.list.cfg блокируется 127.0.0.0/8 и ::1
INPUT drop TCP на proxy/API-порты с LAN (не с loopback)
API lockdown REST API sing-box/clash удаляется или bind только на 127.0.0.1
TUN forbid network_mode=tun принудительно заменяется на tproxy
QUIC block Опционально REJECT UDP 443/80

Настройки в settings.ini

stealth_mode="true"
stealth_hide_loopback="true"
stealth_block_external_api="true"
stealth_disable_api="true"
stealth_api_bind="127.0.0.1"
stealth_api_port="19090"
stealth_block_quic="false"
stealth_forbid_tun="true"
stealth_extra_ports=("7890" "7891" "1080" "10808" "2080")

Что закрывает / что нет

Закрывает Не закрывает
Clash/sing-box API scan (127.0.0.1:9090) GeoIP «IP не РФ / hosting»
Localhost SOCKS/proxy probe от observer apps Root / Magisk detection
TUN-интерфейсы (tun0, MTU) Policy routing fwmark (нативно)
REST API на LAN Установленные VPN-приложения (needsReview)

Полный NOT DETECTED против RKNHardering + VPS + root недостижим. Цель форка - убрать hard detect от localhost, API и TUN.


Sidecar: olcrtc и TrustTunnel

Sidecar поднимает локальный SOCKS5; sing-box направляет трафик на него.

TrustTunnel

# Скачать клиент (linux-aarch64/armv7 для Android)
su -c /data/adb/box/scripts/box.tool upsidercar trusttunnel

# Конфиг с endpoint → trusttunnel.toml
cp /data/adb/box/sidecar/trusttunnel.example.toml /data/adb/box/sidecar/trusttunnel.toml
# отредактируйте (экспорт: trusttunnel_endpoint ... --format toml)

settings.ini:

sidecar_enable="true"
sidecar_protocol="trusttunnel"
sidecar_listen_port="10800"
sidecar_outbound_tag="sidecar-proxy"
sidecar_set_final="true"

olcrtc

Официального Android-релиза нет - бинарник собирается вручную:

# https://github.com/openlibrecommunity/olcrtc - mage mobile
# положите бинарник:
# /data/adb/box/bin/olcrtc
chmod 755 /data/adb/box/bin/olcrtc

cp /data/adb/box/sidecar/olcrtc.example.yaml /data/adb/box/sidecar/olcrtc.yaml
# room id + crypto.key (64 hex) - одинаковые на клиенте и сервере

settings.ini:

sidecar_enable="true"
sidecar_protocol="olcrtc"
sidecar_listen_port="10801"
sidecar_outbound_tag="olcrtc-proxy"

Важно: порт в sidecar-конфиге (socks.port) должен совпадать с sidecar_listen_port (TT :10800, olcrtc :10801). Для olcrtc в olcrtc.yaml задайте LAN DNS: net.dns: "192.168.0.1:53" (публичные DNS через PreferGo от root часто виснут).


WireGuard Obfuscator (ClusterM/wg-obfuscator)

Это не VPN, а UDP-обфускатор WireGuard (маскировка под STUN и т.п.). Нужен на обоих концах - телефон + VPS с тем же key. Со сторонним WG-сервером без своего obfuscator не заработает.

sing-box WireGuard peer
  → 127.0.0.1:41320
  → wg-obfuscator (client)
  → VPS:public_udp
  → wg-obfuscator (server)
  → WireGuard на VPS

Клиент (Android / PronBox)

su -c /data/adb/box/scripts/box.tool upwgobfs
cp /data/adb/box/sidecar/wg-obfuscator.example.conf /data/adb/box/sidecar/wg-obfuscator.conf
# key=...  target=VPS_IP:PORT  (порт публичного obfuscator на сервере)

В settings.ini:

wgobfs_enable="true"
wgobfs_listen_port="41320"
wgobfs_patch_config="true"

Или профиль в Manage Profiles: config-wg-obfs.json (авто-старт wgobfs).

Сервер (VPS)

См. box/sidecar/wg-obfuscator.server.example.conf:

  1. Сдвинуть WireGuard ListenPort (например на 51820).
  2. Поставить wg-obfuscator на старый публичный порт (13232).
  3. target = 127.0.0.1:51820, тот же key, masking = AUTO.

Структура модуля

Путь Назначение
/data/adb/box/settings.ini Главный конфиг
/data/adb/box/stealth.list.cfg Observer apps для port-hide
/data/adb/box/package.list.cfg Blacklist/whitelist приложений
/data/adb/box/sing-box/config.trusttunnel.json Профиль TrustTunnel
/data/adb/box/sing-box/config.olcrtc.json Профиль olcrtc
/data/adb/box/sing-box/config.json Активный конфиг (или через name_sing_config)
/data/adb/box/sidecar/ Конфиги olcrtc / TrustTunnel
/data/adb/box/bin/ Бинарники (sing-box, sidecar)
/data/adb/box/run/ Логи, PID, UID-списки
/data/adb/box/scripts/box.stealth Stealth iptables
/data/adb/box/scripts/box.sidecar Sidecar lifecycle
/data/adb/box/scripts/box.profile Переключение TT / olcrtc
/data/adb/box/scripts/box.service Старт/стоп ядра
/data/adb/box/scripts/box.iptables TPROXY правила

Управление сервисом

Старт / стоп

# Запуск
su -c /data/adb/box/scripts/box.service start
su -c /data/adb/box/scripts/box.iptables enable

# Остановка
su -c /data/adb/box/scripts/box.iptables disable
su -c /data/adb/box/scripts/box.service stop

# Перезапуск
su -c /data/adb/box/scripts/box.service restart

Полезные команды

su -c /data/adb/box/scripts/box.service status
su -c /data/adb/box/scripts/box.stealth status
su -c /data/adb/box/scripts/box.sidecar status

su -c /data/adb/box/scripts/box.tool upkernel      # обновить sing-box
su -c /data/adb/box/scripts/box.tool upsidercar    # olcrtc + trusttunnel
su -c /data/adb/box/scripts/box.tool check          # проверить конфиг
su -c /data/adb/box/scripts/box.tool reload        # reload (если API включён)

su -c /data/adb/box/scripts/box.tool
# check | geosub | geox | subs | upkernel | upsidercar | upyq | upcurl | reload | all

su -c /data/adb/box/scripts/box.iptables
# enable | disable | renew

CLI-шорткат

sbfr start    # start + iptables
sbfr stop     # disable + stop
sbfr s status # статус сервиса
sbfr i enable # iptables
sbfr p use trusttunnel  # профиль TT
sbfr p use olcrtc       # профиль olcrtc
sbfr t check  # box.tool

Тест против RKNHardering

  1. com.notcvnt.rknharderingstealth.list.cfg
  2. Тот же package → package.list.cfg blacklist (checker вне прокси)
  3. stealth_disable_api="true", network_mode="tproxy"
  4. Запустить PronBox → запустить RKNHardering

Ожидаемый результат: модули Bypass Check (Clash API, localhost proxy) и Indirect Signs (TUN) не должны давать hard detect. GeoIP/hosting и root-следы могут остаться.


Рекомендуемый стек

Magisk / KernelSU / APatch
└── PronBox (НИИ «ТехноПрон»)
    ├── network_mode=tproxy, bin_name=sing-box
    ├── stealth.list.cfg → банки, маркетплейсы
    ├── package.list.cfg → whitelist нужных app ИЛИ blacklist checker'ов
    └── sidecar → TrustTunnel / olcrtc / wg-obfuscator

Обновление модуля

Установите новый ZIP поверх старого через Magisk Manager. При запросе restore settings.ini - Vol+ сохранит ваши настройки stealth/sidecar.


Удаление

  1. Отключите модуль в Magisk / KernelSU / APatch Manager.
  2. Очистите данные:
su -c rm -rf /data/adb/box
su -c rm -rf /data/adb/service.d/box_service.sh
su -c rm -rf /data/adb/modules/box_for_root

Ограничения и disclaimer

  • Модуль требует root. Это само по себе детектируется native-проверками.
  • Stealth не маскирует Java API (NetworkCapabilities) - для этого нужен kernel hook (VPN Hide kmod), мы сознательно обходимся без LSPosed.
  • olcrtc на Android требует ручной сборки бинарника.
  • TrustTunnel в sing-box upstream пока через sidecar SOCKS, не нативный outbound.
  • Автор не несёт ответственности за блокировки аккаунтов, некорректные конфиги и петли маршрутизации.

Credits

License

GPL-3.0 - см. LICENSE.

Description
Форк Box For Root
Readme GPL-3.0 18 MiB
2026-08-13 11:54:13 +03:00
Languages
Shell 90.2%
Python 9.2%
PowerShell 0.6%