От пустой машины до команды
Как всё устроено
- 153.0.7978.0
- ARMANOS Browser, движок внутри установщика
- 5
- шаблонов отпечатка, от настольного до планшета
- 20
- площадок названо пятью сценариями
- 16
- видов шага в сборщике сценариев
- 2233
- проверки: 1602 программа, 440 сервер, 191 сайт
Установщик несёт сам браузер, а не ссылку на него
Систем три, файлов четыре. Для macOS 13 и новее их два: под Apple Silicon и под Intel, потому что Rosetta не умеет запускать arm64 на маке с Intel. Для Windows 10 и 11 один установщик, 64-разрядный. Для Ubuntu 22.04 и новее AppImage.
Внутри каждого лежит ARMANOS Browser 153.0.7978.0: наша сборка Chromium, где подмена отпечатка вкомпилирована в движок, а не вставлена в страницу. Окно, в котором вы ходите по сайтам, это отдельный процесс. Программа вокруг него это управляющий: список профилей, библиотека прокси, сценарии, автоматизация.
Встроенный движок Electron остаётся запасным, и это Chromium 130. Экран «Движок» называет действующий и прямо говорит, что запасной старше, вместо того чтобы оставить вас гадать. Переключиться можно, а отдельный профиль можно закрепить за версией ядра, чтобы массовый запуск не сменил браузер под полусотней аккаунтов.
Подписи пока нет ни у одной сборки, и это первое, с чем вы встретитесь. macOS не пускает первый запуск, пока вы не разрешите его в разделе «Конфиденциальность и безопасность». Windows предупреждает о неподписанном установщике. Сертификаты это единственное, что отделяет сборку от спокойной загрузки, и до их появления страница загрузки говорит об этом на карточке, а не в сноске.
| Система | Что нужно | Что скачивается |
|---|---|---|
| macOS | 13 и новее, Apple Silicon или Intel | Два образа, около 248 МБ и 268 МБ |
| Windows | 10 или 11, 64-разрядная | Один установщик, около 228 МБ |
| Linux | Ubuntu 22.04 и новее, 64-разрядная | AppImage, около 300 МБ |
Первый запуск переспросят
Сайт передаёт ваш вход программе
Программу можно открыть и вовсе без учётной записи. Без входа она работает на бесплатном полу: два профиля, без карты, всё местное. За регистрацией не спрятано ничего, кроме количества профилей.
Регистрация идёт на сайте, и страницу открывает сама программа. Закончив, сайт просит у сервера одноразовый код и открывает ссылку вида armanos://login?code=... Система передаёт ссылку установленной программе, и та меняет код на пропуск тем же ходом, каким его получает набранный пароль. Код живёт минуты и годится один раз, поэтому перехваченная ссылка не даёт ничего.
Ссылка приезжает тремя разными дорогами, потому что системы расходятся. Windows и Linux передают её доводом запуска. macOS отдаёт событием открытия ссылки. А когда запускается вторая копия программы, она передаёт ссылку уже работающей, вместо того чтобы открыть второе окно.
Учётная запись нужна затем, чтобы количество профилей, оплата и места для машин были ответом сервера, а не числом в файле, которым вы владеете. Вошедшая программа без сети работает 24 часа, после чего обязана сверить оплату. Действующая подписка живёт ещё три дня после записанной даты продления, поэтому карта, не прошедшая в пятницу, не отнимает выходные. Куки и входы на сервер не уезжают никогда: они лежат в папке профиля на этой машине.
- 1
Вы регистрируетесь на сайте
Страницу открывает сама программа, искать её не нужно.
- 2
Сайт просит у сервера одноразовый код
Выписан этой записи, живёт минуты, годится один раз.
- 3
Открывается ссылка armanos://login?code=...
Система ведёт её в установленную программу: доводом на Windows и Linux, событием на macOS.
- 4
Программа меняет код на пропуск
Той же дорогой, что и набранный пароль, с тем же итогом. Сам код нигде не хранится.
- 5
Машина записывается как устройство
По отпечатку железа, в счёт мест вашего тарифа. Отвязку в кабинете программа видит именно как отвязку, а не как «места нет».
Профиль это отдельная машина, и она не меняется
При создании профиля вы выбираете один из пяти шаблонов: macOS Chrome, Windows Chrome, Linux Chrome, телефон на Android или планшет на Android. Шаблон задаёт то, что у платформы не гуляет: строку платформы, поля подсказок клиента, набор шрифтов, число касаний и то, сколько экрана отнимает у страницы сама система.
Всё остальное берётся из списков того, что настоящие машины этой платформы правда сообщают: размеры экрана, число ядер, память, коэффициент точек, а также пара «производитель и отрисовщик» видеокарты. Списки кончаются там же, где кончается действительность: Chrome обрезает navigator.deviceMemory восьмёркой, сколько бы памяти ни стояло, поэтому шестнадцати там нет, а число ядер остаётся чётным, потому что нечётное само по себе примета.
Что ходит парой, то и меняется парой. Видеокарта решает, какие числа ядер и памяти возможны, поэтому ноутбучный чип не встречается с шестнадцатью ядрами. Экран решает, какие коэффициенты возможны, поэтому 3840 на 2160 не бывает с коэффициентом 1,5: такой панели не делают. Телефон вообще не собирается по частям, он приезжает аппаратом целиком, потому что экран Pixel с видеокартой Samsung и шрифтами Xiaomi это не редкий аппарат, а сигнал.
Отпечаток выводится, а не хранится. Семя это шаблон плюс номер профиля, поэтому один и тот же профиль выдаёт одну и ту же машину при каждом запуске и на любом компьютере, куда вы его перенесёте. Профиль закреплён за поколением, с которым создан, сегодня это четвёртое, и профиль, сделанный более новой сборкой, на старой не запускается. Отказ здесь и есть правильный ответ: выдумать отпечаток по-своему значит привести на аккаунт другой компьютер после месяцев захода с одного.
macOS, Chrome
Платформа MacIntel, отрисовщики Apple Metal, коэффициент 2, полоса меню в 25 точек, набор шрифтов macOS.
Windows, Chrome
Платформа Win32, подсказка архитектуры x86, коэффициенты 1, 1,25 и 1,5, панель задач в 40 точек, набор шрифтов Windows.
Linux, Chrome
Платформа Linux x86_64 и пустая версия системы, потому что Chrome на Linux её не сообщает. Коэффициент 1, верхняя панель в 32 точки.
Android, Chrome (телефон)
Платформа Linux armv8l, пять касаний, ни полосы меню, ни панели задач, подпись мобильного Chrome с моделью, замороженной буквой K. Аппарат берётся целиком.
Android, Chrome (планшет)
Та же платформа, но не мобильный: планшет отдаёт настольную подпись и получает настольную вёрстку, а обратное противоречит себе в первом же заголовке.
Что происходит между кнопкой и окном
Запуск это не один вызов. Это череда, где отказать может почти каждый шаг, и каждый отказ нарочно громче тихого отступления. Правило под всеми ними одно: открыть окно, которое выглядит обычным и таким не является, хуже, чем не открыть его вовсе.
Три отказа стоит назвать. Прокси, настроенный наполовину, останавливает запуск: пойти напрямую значит показать сайту, ради которого профиль и заведён, ваш собственный адрес. Профиль из более нового поколения останавливается по причине выше. И расширение защиты, которое не удалось записать на диск, тоже останавливает запуск: без него в окне нет ни перекрытия слежки, ни чистки ссылок, ни того, что сборка движка не закрывает сама.
Порядок важен в обе стороны. Замок на сервере берётся до всякого окна: взять его после значило бы, что вторая сессия аккаунта уже случилась, а мы про неё просто узнали поздно. Сессия забирается из папки синхронизации до того, как браузер трогает свои базы, потому что подмена файлов под работающим Chromium даёт испорченный профиль, а не свежий.
Место в счёт памяти занимается тем же синхронным ходом, что и проверка, без единого ожидания между ними. Звучит мелочью, а ею не является: восемь рабочих сценария видели одно и то же свободное число в один и тот же миг, и все восемь проходили при пределе пять. Защита, заведённая ради самого тяжёлого случая, отказывала именно в самом тяжёлом случае.
- 1
Занимается место
Предел одновременно открытых считается от памяти этой машины. Проверка и занятие идут одним синхронным ходом, поэтому одновременные запуски не увидят одно и то же свободное число.
- 2
Судится прокси
Настроен наполовину, значит запуска нет. Иначе перед аккаунтом окажется ваш собственный адрес.
- 3
Судится поколение
Профиль из более новой сборки останавливается здесь, а не пересобирается в другую машину.
- 4
Берётся замок на сервере
Профиль помечен занятым в вашей записи ещё до окна. Другая машина получает понятный отказ, а перехват нужно попросить отдельно.
- 5
Забирается сессия
Если папка синхронизации задана, шифрованный файл приезжает первым. Если менялись обе стороны, не затирается ничего, и выбор остаётся за вами.
- 6
Меняется адрес
Если профиль просит свежий IP на каждый заход, смена идёт сейчас. Неудача останавливает запуск: старого адреса и хотели избежать.
- 7
Узнаётся страна выхода
По TLS и у четырёх поставщиков, а не у одного. Ответ задаёт часовой пояс и набор языков.
- 8
Раскладываются расширения
Включённые расширения превращаются в распакованные папки. Отказ по любому из них показывается уведомлением, а не прячется за зелёной меткой.
- 9
Записывается защита
Правила слежки, чистка ссылок, сценарные скрипты и то, что эта сборка движка не закрывает сама. Не записалось, значит профиль не открывается.
- 10
Запускается движок
Стартовая страница первой вкладкой, ваш адрес второй, а за ними вкладки, которые вы попросили вернуть после падения.
Прокси это выход профиля, и он решает больше, чем адрес
Видов принимается четыре: HTTP, HTTPS, SOCKS5 и SSH. Прокси покупают пачками, поэтому пачка вставляется целиком в записи продавца, host:port:user:pass, и одной вставкой становится набором записей библиотеки. Профиль ссылается на запись, а не носит её копию, поэтому смена одного пароля правит одну строку, а не пятьдесят.
Прокси с паролем нужен мост, и причина здесь замерена, а не придумана. На поставляемой сборке тот же запуск через http://127.0.0.1:PORT дал 13 запросов, а через http://user:pass@127.0.0.1:PORT ноль и ни одной загруженной страницы: Chromium отвергает пароль в --proxy-server. Поэтому программа поднимает на петле маленький прокси, который говорит с браузером без пароля, а с настоящим прокси с паролем. В командной строке остаётся только адрес петли, и это важно: командную строку видит любой процесс, работающий от вашего имени, а домашний трафик покупают гигабайтами. Мост к тому же спрашивает разовый пропуск, который отдаёт собственное расширение профиля, поэтому чужая программа на этой машине не потратит ваш канал молча.
SSH это самый дешёвый честный выход, если сервер у вас уже есть. Программа поднимает рядом обычный ssh с динамической переадресацией, он открывает на петле настоящий SOCKS5, и движок видит только socks5://127.0.0.1:порт. Пароль доходит до ssh его собственным ходом опроса из безымянного канала, который на диск не ложится. Ключи узлов пишутся в свой known_hosts внутри данных программы, а не в ваш личный. Живучесть настроена так, чтобы оборванный туннель был виден как оборванный туннель, а не как страницы, которые не грузятся.
Смена адреса и география это два последних решения. Пул можно раздать по кругу на выделенные профили, и следующий раз круг продолжится, а не повторит ту же раскладку. Открытые профили умеют менять адрес по сроку, отсчитанному от открытия профиля, а не от запуска программы. Страна выхода задаёт часовой пояс и набор языков, потому что часы, спорящие с адресом, проверяют первыми где угодно. А если страну узнать не удалось, программа говорит об этом и профиль не трогает: выбрать пояс жребием значит поставить токийские часы за немецким адресом.
HTTP и HTTPS
Обычный случай. С логином пароль несёт мост на петле, а командная строка остаётся чистой.
SOCKS5
Отдаётся движку напрямую. С логином идёт через тот же мост.
SSH
Ваш собственный сервер как выход. Туннель с динамической переадресацией становится обычным SOCKS5 на петле, и ни одна дорога запуска про SSH не знает.
Витрина поставщиков
Восемь продавцов с видом, странами и подсказкой цены, домашние и серверные. Это витрина, и она об этом говорит: купить через нас сегодня нельзя.
Каждый профиль открывается на странице, которая показывает, чем он выглядит
Первая вкладка каждого профиля с окном это наша стартовая страница, и подаёт её сервер на петле внутри программы. Разница здесь намеренная: стартовая страница, взятая с сервера продавца, сообщает этому продавцу о каждом запуске каждого профиля, а для продукта, который продают за изоляцию, это неверная форма.
Страница показывает адрес выхода со страной, городом и сетью, карточку профиля, карточку работающего сейчас движка и карточку с показаниями, которые профиль выдаёт. Единственный запрос наружу это опознание адреса, и он идёт через собственный прокси профиля. В этом весь смысл: вы видите адрес, который увидит сайт, а не адрес вашего компьютера.
Под карточками два ряда ссылок. Пять известных проверялок отпечатка открываются в новой вкладке, чтобы профиль можно было сверить не с нашим кодом. Ряд ярлыков это тот же набор, что кладётся в панель закладок нового профиля, поэтому страница и панель не могут разойтись.
У каждого запуска свой случайный пропуск в адресе, сервер встаёт только на 127.0.0.1, а правила безопасности ограничивают, куда странице вообще позволено ходить, вместо доверия её собственному скрипту. В скрытом режиме стартовая страница не открывается вовсе: замерено на поставляемой сборке, Chromium отвечает «несколько целей в скрытом режиме не поддерживаются» и выходит с кодом 13, а смотреть на страницу там всё равно некому.

Сценарий задаёт темп, и первая неделя идёт медленнее
Сценарий профиль получает при создании: приватность, электронная коммерция, соцсети, рекламные кабинеты или фриланс. Вместе они называют 20 площадок. Сценарий это не подпись: он выбирает, какие скрипты внедряются, какие списки слежки применяются, чистятся ли ссылки от меток и какие стоят дневные потолки.
Потолок у сценария тоже не один. У соцсетей их десять, потому что площадки считают разное по отдельности: 15 приглашений в день, 120 отметок «нравится», 30 комментариев, 25 личных сообщений, 15 записей, 2 смены аккаунта. У рекламных кабинетов правка платёжных данных стоит на одной в день, а это как раз то действие, за которым площадка следит пристальнее всего. У приватности потолков нет нарочно: это не игра с аккаунтами.
Новый аккаунт получает не полное число, а разгон. Профиль считает возраст от создания, и первые семь дней потолок это доля от полного: 20, 35, 50, 65, 80, 90 и дальше 100 процентов. Считается переход на верхнем уровне в окне профиля, о котором сообщает само окно, а счётчики обнуляются с календарным днём.
Всё это подсказка, показанная жёлтой или красной строкой рядом с профилем. Не запрещается ничего и никогда. Средство, которое останавливает человека посреди его собственной работы, выключают за неделю, и после этого оно не бережёт никого. Числа лежат в packages/shared/src/index.js, поэтому программа, сайт и эта страница не могут назвать разные.
| Сценарий | Какие площадки называет | Дневной потолок на полном ходу |
|---|---|---|
| Электронная коммерция | Amazon, eBay, Etsy, Walmart, Shopify, WooCommerce, BigCommerce | 120 |
| Соцсети | LinkedIn, Facebook, Instagram, X, TikTok, Pinterest | 200 |
| Рекламные кабинеты | Google Ads, Meta Ads, TikTok Ads, Microsoft Ads | 40 |
| Фриланс | Upwork, Fiverr, Freelancer | 40 |
| Приватность | Никаких: обычный сёрфинг без слежки | Потолка нет |
Пятьдесят аккаунтов приезжают таблицей, а не пятьюдесятью формами
Ваши аккаунты уже где-то записаны, и названия колонок там ваши, а не наши. Поэтому колонки сходятся по смыслу: «Имя», Name и «имя профиля» это одна и та же колонка, на тех языках, на которых эти люди правда пишут. Что сойтись не удалось, о том говорится, а не догадывается: колонка, молча привязанная не к тому полю, даёт профили, которые выглядят верно и ведут себя неверно, а это хуже ввоза, который отказался начинаться. Прокси приезжают либо одной колонкой в записи продавца, либо отдельными колонками.
Одноразовые коды приезжают вместе с аккаунтами. Профиль умеет держать секрет, и шестизначный код программа считает сама: RFC 6238, шаг 30 секунд, по умолчанию SHA1, принимаются SHA256 и SHA512, а адрес otpauth:// принимается целиком, потому что именно его отдаёт выгрузка из приложения. Двадцать аккаунтов это двадцать записей в подтверждающем приложении, и тянуться за телефоном на каждый вход это самая долгая часть дня.
Группы местные, у каждой имя, цвет и порядок, всего до 200. Выделенные профили можно перенести в группу, раздать им прокси по кругу или запустить разом. Удаление мягкое: профиль уходит из списка, перестаёт занимать место по тарифу и возвращается из корзины. Окончательная чистка это отдельное действие.
Очередь запуска это место, где в рассказ входит память вашей машины. Предел одновременно открытых считается, а не вбит в код, потому что вбитая двенадцать врала в обе стороны: восемь гигабайтов двенадцать браузеров не держат, а шестьдесят четыре держат втрое больше. Ниже предела открывается всё разом. Выше него остальные ждут освободившегося места, а не помечаются провалом, и в этой разнице лежит вся разница между сделанным ночным прогревом и красным прогоном утром.
- Машина на 8 ГБ
- 5 браузеров разом
- Машина на 16 ГБ
- 13
- Машина на 32 ГБ
- 29
- Машина на 64 ГБ
- 32, это верхняя граница
Вся память минус 3 ГБ системе и программе, дальше по 1 ГБ на браузер, с удержанием между 4 и 32. Экран «Движок» принимает и ваше собственное число: расчёт бережёт того, кто ничего не настраивал, а не спорит с тем, кто знает своё железо.

Повторяющуюся работу забирает программа
Сборщик сценариев берёт 16 видов шага и ни строчки кода. Три из них держат внутри другие шаги: повтор, условие и обход списка, с вложенностью до четырёх уровней, 500 шагами в списке и 200 хранимыми сценариями. Прогон берёт выделенные профили и число рабочих, и это число ограничено тем же пределом от памяти, поэтому рабочих не заводят ради того, чтобы они стояли в очереди с первой секунды.
Расписания гоняют сценарии ежедневно, по дням недели или по часам, во времени вашего города, поэтому девять утра остаются девятью утра после перевода часов. Пропущенное не догоняется. Ноутбук, проспавший три дня, иначе проснулся бы в три одновременных прогона по тридцати профилям, а такой всплеск площадки и читают как робота. Расписание к тому же живёт, только пока открыта программа: службу в систему мы не ставим, и об этом сказано в окне, а не спрятано в справке.
Синхронизатор повторяет один профиль во многих в живую. Нажатия, набранные значения, прокрутка, клавиши и переходы снимаются на ведущей странице и повторяются у ведомых. Вкладка берётся та, на которую вы смотрите, а не первая по порядку появления, и эта поправка пришла из живого замера, а не из чтения кода.
Для программ есть четыре двери. Местный интерфейс слушает 127.0.0.1:50325, у него одиннадцать ходов за пропуском, и он отказывает всякому запросу с браузерными заголовками: иначе страница, дотянувшаяся до петли через подменённое имя, связала бы все профили машины с одной установкой. Сервер MCP отдаёт помощнику девять инструментов через стандартный поток, обращаясь к тому же местному интерфейсу. А наборы разработчика для Node и Python оборачивают ходы сервера и своей логики не имеют нарочно, чтобы не разойтись с ним.
goto
Открыть адрес во вкладке профиля.
wait
Подождать заданное время или появления элемента по признаку, со своим сроком.
click
Нажать на элемент, который нашёлся по признаку.
input
Вписать значение в поле и подать событие ввода, которого ждёт страница.
scroll
Прокрутить на величину или до элемента.
extract
Забрать текст элемента в переменную для следующих шагов.
screenshot
Снять страницу как есть, снимок остаётся при прогоне.
key
Послать одну клавишу, для страниц, отвечающих на Enter или Escape.
random
Подождать случайное время между наименьшим и наибольшим.
repeat
Выполнить вложенные шаги заданное число раз.
condition
Две ветки, идёт одна: элемент есть или его нет, текст содержит, адрес содержит, переменная равна.
foreach
Выполнить тело по разу на каждый найденный элемент, до заданного предела.
tab
Открыть, переключить или закрыть вкладку, по номеру или по адресу.
cookie
Прочитать, поставить, удалить или очистить куки в сессии самого профиля.
js
Выполнить JavaScript на странице и при желании положить итог в переменную.
waitRequest
Подождать, пока страница сделает сетевой запрос по образцу.
Команда делит рабочее пространство, а не пароль
У пространства один владелец и три роли: владелец, администратор и участник. Администраторы и владелец распоряжаются людьми, участник работает. Пока этого не было, команды делали очевидное и делили один вход, то есть работали ровно так, как продукт обещает не работать.
Приглашение выписывается на уже заведённую учётную запись. Это осознанное ограничение с честной причиной: письмо пока не доказывает, что адрес принадлежит человеку, поэтому посторонний, узнавший код, просто зарегистрировался бы на этот адрес и вошёл. Требование записи закрывает эту дверь. Места считаются при выписке приглашения, а не только при приёме, поэтому отказ достаётся владельцу, а не коллеге, который ничего исправить не может.
Папки решают, что участник видит. Администратор выбирает, какие группы ему открыты, а пустой список снова означает «видит всё», как осознанное снятие ограничения, а не как случайность. И общий доступ к отдельному профилю, и раздача папок работают из самой программы, а не только с сервера: те, кто живёт в программе, о них не знали вовсе.
Вторая половина это машины и замки. Машина записывается по отпечатку железа в счёт мест тарифа, и сервер сам называет, какая строка списка это вы, вместо того чтобы программа угадывала по имени хоста и отвязала одинаково названный ноутбук коллеги. Профиль, открытый на одной машине, на другой не откроется: вторая получает понятный отказ с именем того, кто его держит, а перехват нужно выбрать руками.
| Тариф | Профилей | Машин | Мест в команде |
|---|---|---|---|
| Free | 2 | 1 | 1 |
| Professional | от 10 до 100 | 2 | 1 |
| Business | от 200 до 1000 | 5 | 3 |
| Enterprise | 5000 и больше | 20 | 20 |
Места и профили докупаются отдельно
Чего это не делает
- Само по себе оно не прячет ваш адрес. Без прокси профиль выходит в сеть с того же IP, что и всё остальное на этом компьютере.
- Оно не ведёт себя за вас как человек. Скорость набора, паузы, на что и как часто вы нажимаете, всё это ваше, и площадки смотрят на все четыре вещи.
- Оно не обещает, что аккаунт уцелеет. Решают ещё возраст, способ оплаты, содержимое и жалобы, а это не в нашей власти.
- Сборки пока не подписаны и не заверены. macOS не пускает первый запуск, пока вы не разрешите, а Windows предупреждает о неподписанном установщике.
- Расписания и сценарии идут, только пока открыта программа. Службы в систему не ставится, поэтому закрытый ноутбук не делает ничего.
- Не все показания подменяются внутри движка. Каждая сборка кладёт рядом опись того, что закрывает сама, а остальное закрывает расширение профиля, и это место слабее.
Как проверить
У каждого утверждения выше есть файл, который его исполняет, и стенд, который краснеет, когда оно перестаёт быть правдой. Вот пути в хранилище кода.
- Вход, начатый на сайте, правда доходит до программы
- apps/desktop/src/lib/handoff.js · apps/desktop/test/передача-входа-из-сайта.js
- Один и тот же профиль выдаёт одну и ту же машину при каждом запуске
- packages/shared/src/index.js (seededPick, FINGERPRINT_TEMPLATES) · apps/desktop/test/fingerprint-consistency.js · apps/desktop/test/fingerprint-version.js
- Прокси с паролем работает, и пароль не попадает в командную строку
- apps/desktop/src/lib/proxyAuthBridge.js · apps/desktop/test/proxy-auth-bridge.js · apps/desktop/test/мост-принадлежит-профилю.js
- За пределом профиль ждёт места, а не пишется в провал
- apps/desktop/src/lib/engine-config.js · apps/desktop/test/предел-открытых.js · apps/desktop/test/очередь-запуска.js · apps/desktop/test/сценарий-ждёт-места.js
- Движок объявляет только то, что правда закрывает, остальное закрывает страница
- apps/desktop/src/lib/дыры-страницы.js · apps/desktop/test/опись-умений-снимается.js · apps/desktop/test/страница-отходит-когда-движок-умеет.js
- Папки и общий доступ к профилю работают из программы, а не только с сервера
- apps/server/src/team/team.service.ts · apps/desktop/test/доступ-команде-из-программы.js · apps/web/test/member-folders.js
Читать дальше
Движок
Что ARMANOS Browser подменяет в C++ и где сегодня проходит граница с внедряемым скриптом.
Отпечаток
Пять шаблонов, списки, из которых берутся значения, и почему величины ходят парами.
Прокси
Библиотека, мост на петле, выход по SSH, смена адреса и пояс, который следует за страной.
Автоматизация
Сборщик, расписания, синхронизатор, местный интерфейс, MCP и наборы разработчика.
Команда
Роли, папки, приглашения, машины и замок «профиль занят».
Реестр обещаний
Каждое утверждение сайта с файлом и стендом, которые его держат.
Поставьте программу и откройте первый профиль
Два профиля бесплатны навсегда, без карты. Движок лежит внутри установщика, докачивать нечего.