Правила переписывания и точки останова
Захват позволяет «смотреть», правила и точки останова позволяют «менять». Trace Eagle делает вас хозяином своего трафика: меняйте запросы без написания кода с помощью простых и наглядных правил, задаваемых мышью, чтобы автоматически переписывать тысячи потоков; либо используйте точки останова, чтобы приостанавливать и редактировать потоки по одному; и только для сложной логики, которую правила действительно не могут выразить, приходится прибегать к скриптам / плагинам.
1. Правила переписывания (простые, задаются мышью, меняют автоматически)
Заголовок раздела «1. Правила переписывания (простые, задаются мышью, меняют автоматически)»Худший способ начать менять запросы — писать скрипт. Здесь этого не требуется: выберите действие из шпаргалки и заполните значение, и вот у вас правило: просто, интуитивно и применяется в тот же момент, когда вы его создали.
Правила задаются по одному в строке в виде <совпадение> <действие>://<значение> (например *.example.com resHeaders://X-Debug: 1). Пустые строки и комментарии # игнорируются, каждая строка проверяется отдельно, а изменения применяются на лету при сохранении; правила можно объединять в именованные группы и включать / выключать группами. Интерфейс снабжён кликабельной шпаргалкой: один клик вставляет подходящий пример, дальше остаётся лишь отредактировать значение, синтаксис запоминать не нужно.

Гибкие условия совпадения
Заголовок раздела «Гибкие условия совпадения»- Точный домен:
traceeagle.com(можно с префиксом путиtraceeagle.com/path) - Поддомен с подстановочным знаком:
*.traceeagle.com(совпадает с основным доменом и всеми поддоменами) - Регулярное выражение по всему URL:
regex://… - Точный полный URL:
$https://host/path - Порт:
:8080 - Отрицание: поставьте перед любым совпадением
!
Поддерживаемые действия переписывания
Заголовок раздела «Поддерживаемые действия переписывания»Направление запроса
- Перенаправление / переадресация: сменить целевой IP подключения (
host), сопоставить с другим полным URL (map-remote, можно указать локальный сервер разработки), направить через вышестоящий прокси http/socks5 или привести сетевые характеристики запроса клиента к характеристикам стандартного клиента (точное воспроизведение). - Заглушка с поддельными данными:
mock://200илиmock://200|<body>возвращает заранее заданный ответ, не обращаясь к серверу, спасение, когда фронтенд ждёт бэкенд-API. - Редактирование строки запроса / заголовков: метод, User-Agent, Referer, Basic-авторизация, X-Forwarded-For, Content-Type / кодировка, Cookie, объединение параметров запроса, поиск и замена в URL.
- Редактирование тела запроса: полная замена / поиск и замена / добавление в конец / добавление в начало / выгрузка в локальный файл.
Направление ответа
- Редактирование статуса / заголовков: сменить код состояния, добавить или удалить любой заголовок ответа, Set-Cookie, открыть CORS в один клик, принудительно скачать как вложение, управление кэшем (отключить кэширование или задать max-age), отключить Cookie / сжатие / keep-alive, поиск и замена в значениях заголовков.
- Редактирование тела ответа: полная замена / поиск и замена / добавление в конец / добавление в начало / поверхностное слияние JSON.
- Внедрение по типу: только когда совпадает Content-Type, внедрить или заменить скрипты, стили или фрагменты в HTML / JS / CSS.
Сеть и протокол
- Выгрузка в файл: помимо тела запроса / ответа, в один клик в локальный файл можно выгрузить и весь сырой запрос / ответ целиком, для архивирования или офлайн-анализа.
- Имитация плохой сети: задержка запроса / ответа (в миллисекундах), ограничение полосы пропускания (с пресетами 2G / 3G / 4G).
- Переписывание кадров WebSocket: замена
old=>newпо направлению (в обе стороны / от клиента к серверу / от сервера к клиенту). - Переписывание сырого TCP / UDP: замена по направлению в не-HTTP байтовых потоках / датаграммах SOCKS5 UDP.
Динамические значения в правилах
Заголовок раздела «Динамические значения в правилах»В значениях правил можно использовать динамические переменные, такие как ${url} ${host} ${port} ${method} ${status} ${now} ${random} ${randomUUID} ${req.headers.X} ${res.headers.X}, а также пользовательские именованные значения {name} (задайте общее значение один раз, ссылайтесь на него везде). Именованные значения {name} используются в основном в переписывании запросов / ответов; значения замены в переписывании кадров WebSocket поддерживают ${...}.
2. Точки останова (ручное редактирование)
Заголовок раздела «2. Точки останова (ручное редактирование)»Для потоков, требующих точного контроля в каждом отдельном случае, используйте точку останова, чтобы приостановить и открыть редактор перед отправкой запроса или перед возвратом ответа.
Два способа срабатывания
Заголовок раздела «Два способа срабатывания»- По правилу: используйте правило
breakpoint://req|res|both, чтобы точно отметить, какие потоки перехватывать. - Глобальный переключатель перехвата: включите перехват для всей сессии, а затем при желании сузьте область с помощью правил фильтрации перехвата (фильтр по домену / методу / стадии); без правил перехватывается всё.
Что можно изменить после перехвата
Заголовок раздела «Что можно изменить после перехвата»- Стадия запроса: метод, URL (хост следует за URL), заголовки, тело.
- Стадия ответа: код состояния, заголовки ответа, тело ответа.
- Прямой сброс: Abort отбрасывает данный запрос / ответ (клиент получает ошибку шлюза).
- Потоки, попавшие под несколько срабатываний, выстраиваются в очередь на обработку: каждый можно продолжить (Resume), отбросить (Abort) или продолжить все сразу. Потоки, надолго оставленные без обработки, автоматически продолжаются без изменений, поэтому трафик никогда не застревает навсегда.
3. Скрипты и плагины (продвинутая автоматизация)
Заголовок раздела «3. Скрипты и плагины (продвинутая автоматизация)»Логику, которую правила выразить не могут, передайте скрипту или плагину:
- JavaScript-скрипты: определите
onRequest(req)/onResponse(resp)и редактируйте поля напрямую, чтобы изменения вступили в силу. Встроенные помощники включают логирование, синхронные исходящие вызовы к другим сервисам, сохранение данных между запросами (для счётчиков / кэшированных токенов), кодирование/декодирование Base64 и многое другое. - Исходящие HTTP-плагины: используйте правило
plugin://name, чтобы передать запрос / ответ на обработку в собственный сервис-плагин (вызывается по HTTP), а плагин возвращает переписанное содержимое (или сразу заглушку). Независим от языка, подходит командам для реализации собственной обработки на любом языке.
4. Порядок обработки
Заголовок раздела «4. Порядок обработки»Поток проходит по порядку через: правила запроса, скрипты запроса, плагины запроса, точку останова запроса, переадресацию / заглушку, правила ответа, скрипты ответа, плагины ответа, точку останова ответа. Схема проста: сначала автоматические правила, затем скрипты, затем плагины, и только в самом конце вручную вступает точка останова, каждый делает своё дело, не мешая другим.
Назад к Захвату через прокси · Смотрите также: Конструирование и повтор