diff --git a/docs/quick_start.md b/docs/quick_start.md new file mode 100644 index 0000000..e6afe87 --- /dev/null +++ b/docs/quick_start.md @@ -0,0 +1,250 @@ +> [!CAUTION] +> Не пишите в issue вопросы типа "как скопировать файл", "как скачать", "как +> запустить", ... То есть все , что касается базовых навыков обращения с ОС +> linux. Эти вопросы будут закрывать сразу. Если у вас подобные вопросы +> возникают, рекомендую не использовать данный софт или искать помощь где-то в +> другом месте. То же самое могу сказать тем, кто хочет нажать 1 кнопку, чтобы +> все заработало, и совсем не хочет читать и изучать. Увы, такое не подвезли и +> не подвезут. Ищите другие более простые методы обхода. Этот метод **не для +> рядового пользователя**. + + +## Вступление +Специально для тех, кто хочет побыстрее начать, но не хочет слишком углубляться +в простыню [readme.md](readme.md). + +Обход DPI является хакерской методикой. Под этим словом понимается метод, +которому сопротивляется окружающая среда, которому автоматически не +гарантирована работоспособность в любых условиях и на любых ресурсах, требуется +настройка под специфические условия у вашего провайдера. Условия могут меняться +со временем, и методика может начинать или переставать работать, может +потребоваться повторный анализ ситуации. Могут обнаруживаться отдельные +ресурсы, которые заблокированы иначе, и которые не работают или перестали +работать. Могут и сломаться отдельные не заблокированные ресурсы. Поэтому очень +желательно иметь знания в области сетей, чтобы иметь возможность +проанализировать техническую ситуацию. Не будет лишним иметь обходные каналы +проксирования трафика на случай, если обход DPI не помогает. + +Будем считать, что у вас есть система на базе традиционного **linux** или +**openwrt**. Если у вас традиционный linux - задача обойти блокировки только на +этой системе, если openwrt - обойти блокировки для подключенных устройств. Это +наиболее распространенный случай. + +## Настройка +1. Чтобы процедура установки сработала в штатном режиме на openwrt, нужно + рассчитывать на свободное место около 1-2 Mb для установки самого zapret и + необходимых дополнительных пакетов. Если места мало и нет возможности его + увеличить за счет `extroot`, возможно придется отказаться от варианта + простой установки и прикручивать в ручном режиме без имеющихся скриптов + запуска. Можно использовать + [облегченный `tpws` вариант](../init.d/openwrt-minimal), либо попробовать + засунуть требуемые zapret дополнительные пакеты в сжатый образ `squashfs` с + помощью `image builder` и перешить этим вариантом роутер. + +2. Скачайте zip архив проекта с github в `/tmp`, распакуйте его там, либо + клонируйте проект через: + ```sh + $ git clone --depth 1 https://github.com/bol-van/zapret + ``` + +3. Убедитесь, что у вас отключены все средства обхода блокировок, в том числе и + сам zapret. Гарантированно уберет zapret скрипт `uninstall_easy.sh`. + +4. Если вы работаете в виртуальной машине, необходимо использовать соединение с + сетью в режиме bridge. NAT **не** подходит. + +5. Выполните однократные действия по установке требуемых пакетов в ОС и + настройке исполняемых файлов правильной архитектуры: + ```sh + $ install_bin.sh + $ install_prereq.sh + ``` + + > Вас могут спросить о типе фаервола (iptables/nftables) и использовании + > ipv6. Это нужно для установки правильных пакетов в ОС, чтобы не + > устанавливать лишнее. + +6. Запустите `blockcheck.sh`. Скрипт вначале проверяет DNS. Если выводятся + сообщения о подмене адресов, то нужно будет решить проблему с DNS. + `blockcheck.sh` перейдет в этом случае на DoH и будет пытаться получить и + использовать реальные IP адреса. Но если вы не настроите решение этой + проблемы, обход будет работать только для тех программ или ОС, которые сами + реализуют механизмы SecureDNS. Для других программ обход работать не будет. + + Решение проблемы DNS выходит за рамки проекта. Обычно она решается либо + заменой DNS серверов от провайдера на публичные (`1.1.1.1`, `8.8.8.8`), либо + в случае перехвата провайдером обращений к сторонним серверам - через + специальные средства шифрования DNS запросов, такие как `dnscrypt`, `DoT`, + `DoH`. + + Еще один эффективный вариант - использовать ресолвер от yandex + (`77.88.8.88`) на нестандартном порту `1253`. Многие провайдеры не + анализируют обращения к DNS на нестандартных портах. + + Проверить работает ли этот вариант можно так: + ```sh + $ dig -p 53 @77.88.8.88 rutracker.org dig -p 1253 @77.88.8.88 rutracker.org + ``` + + Если DNS действительно подменяется, и ответ на эти 2 команды разный, значит + метод вероятно работает. + + В openwrt DNS на нестандартном порту можно прописать в `/etc/config/dhcp` + таким способом : + + ``` + config dnsmasq + <...> + list server '77.88.8.88#1253' + ``` + + Если настройки IP и DNS получаются автоматически от провайдера, в + `/etc/config/network` найдите секцию интерфейса `wan` и сделайте так: + + ``` + config interface 'wan' + <...> + option peerdns '0' + ``` + + ```sh + $ /etc/init.d/network restart + $ /etc/init.d/dnsmasq restart + ``` + + Если это не подходит, можно перенаправлять обращения на UDP и TCP порты `53` + вашего DNS сервера на `77.88.8.88:1253` средствами `iptables`/`nftables`. В + `/etc/resolv.conf` нельзя прописать DNS на нестандартном порту. + +7. `blockcheck.sh` позволяет выявить рабочую стратегию обхода блокировок По + результатам скрипта нужно понять какой вариант будете использовать : `nfqws` + или `tpws` И запомнить найденные стратегии. + + Следует понимать, что скрипт проверяет доступность только конкретного + домена, который вы вводите в начале. Вероятно, все остальные домены + блокированы подобным образом, **но не факт**. В большинстве случаев можно + объединить несколько стратегий в одну универсальную, и это крайне + желательно. Необходимо понимать как работают стратегии. zapret не может + пробить блокировку по IP адресу. Для проверки нескольких доменов вводите их + через пробел. + + Сейчас блокираторы ставят на магистральных каналах. В сложных случаях у вас + может быть несколько маршрутов с различной длиной по ХОПам, с DPI на разных + хопах. Приходится преодолевать целый зоопарк DPI, которые еще и включаются в + работу хаотичным образом или образом, зависящим от направления (IP сервера). + скрипт не всегда может выдать вам в итогах оптимальную стратегию, которую + надо просто переписать в настройки. В некоторых случаях надо реально думать + что происходит, анализируя результат на разных стратегиях. Если вы + применяете большой **TTL**, чтобы достать до магистрала, то не лишним будет + добавить дополнительный ограничитель `--dpi-desync-fooling`, чтобы не + сломать сайты на более коротких дистанциях. `md5sig` наиболее совместим, но + работает **только** на linux серверах. `badseq` может работать только на + **https** и не работать на **http**. Чтобы выяснить какие дополнительные + ограничители работают, смотрите результат теста аналогичных стратегий без + **TTL** с каждым из этих ограничителей. + + При использовании `autottl` следует протестировать как можно больше разных + доменов. Эта техника может на одних провайдерах работать стабильно, на + других потребуется выяснить при каких параметрах она стабильна, на третьих + полный хаос, и проще отказаться. + + Далее, имея понимание что работает на **http**, **https**, **quic**, нужно + сконструировать параметры запуска `tpws` и/или `nfqws` с использованием + мультистратегии. Как работают мультистратегии описано в readme.txt. + + Если кратко, то обычно параметры конструируются так: + ```sh + "--filter-udp=443 'параметры для quic' --new + --filter-tcp=80,443 'обьединенные параметры для http и https' " + ``` + + Или так: + ```sh + "--filter-udp=443 'параметры для quic' --new + --filter-tcp=80 'параметры для http' --new + --filter-tcp=443 'параметры для https' " + ``` + + `` и `` так и пишутся. Их не надо на что-то + заменять. Это сделают скрипты запуска, если вы выбрали режим фильтрации по + хостлистам, и уберут в противном случае. Если для какого-то протокола надо + дурить все без стандартного хостлиста - просто уберите оттуда `` и + ``. Можно писать свои параметры `--hostlist` и + `--hostlist-exclude` для дополнительных хостлистов или в профилях + специализаций под конкретный ресурс. В последнем случае стандартный хостлист + там не нужен. Следует избегать указания собственных параметров `--hostlist` + на листы из директории ipset. Эта логика включена в `` и + ``. Отличие `` в том, что стандартный + автолист по этому профилю используется как обычный, то есть без + автоматического добавления доменов. Однако, добавления в других профилях + автоматически отражаются во всех остальных. + + Если стратегии отличаются по версии ip протокола, и вы не можете их + обьединить, фильтр пишется так: + ```sh + "--filter-l3=ipv4 --filter-udp=443 lпараметры для quic ipv4' --new + --filter-l3=ipv4 --filter-tcp=80 'параметры для http ipv4' --new + --filter-l3=ipv4 --filter-tcp=443 'параметры для https ipv4' --new + --filter-l3=ipv6 --filter-udp=443 "параметры для quic ipv6" --new + --filter-l3=ipv6 --filter-tcp=80 'параметры для http ipv6' --new + --filter-l3=ipv6 --filter-tcp=443 'параметры для https ipv6' " + ``` + + Но здесь совсем "копи-пастный" вариант. Чем больше вы объедините стратегий и + сократите их общее количество, тем будет лучше. + + Если вам не нужно дурение отдельных протоколов, лучше всего будет их убрать + из системы перехвата трафика через параметры `TPWS_PORTS`, + `NFQWS_PORTS_TCP`, `NFQWS_PORTS_UDP` и убрать соответствующие им профили + мультистратегии. + + | Протокол | Порт | Примечание | + |---|---|---| + | `tcp` | `80` | `http` соединение | + | `tcp` | `443` | `https` соединение | + | `udp` | `443` | `quic` соединение | + + Если используются методы нулевой фазы десинхронизации (`--mss`, `--wssize`, + `--dpi-desync=syndata`) и режим фильтрации `hostlist`, то все параметры, + относящиеся к этим методам, следует помещать в отдельные профили + мульистратегии, которые получат управление до определения имени хоста. + Необходимо понимать алгоритм работы мультистратегий. Самым надежным + вариантом будет дублирование этих параметров на 2 профиля. Какой-нибудь + сработает в зависимости от параметра `MODE_FILTER`. + + ```sh + "--filter-tcp=80 'параметры для http' --new + --filter-tcp=443 'параметры для https' --wssize 1:6 --new + --filter-tcp=443 --wssize 1:6" + ``` + + В этом примере `wssize` будет применяться всегда к порту **tcp** `443` вне + зависимости от параметра `MODE_FILTER`. Хостлист будет игнорироваться, если + таковой имеется. К **http** применять **wssize** вредно и бессмысленно. + + Никто не мешает использовать `tpws` для **http**, `nfqws` для **https**, + либо комбинировать действие `nfqws` и `tpws` для одного протокола. В текущем + варианте скриптов запуска это делается максимально гибко и независимо друг + от друга. + +8. Запустите скрипт облегченной установки - `install_easy.sh` Выберите `nfqws` + и/или `tpws`, затем согласитесь на редактирование параметров. Откроется + редактор, куда впишите созданную на предыдущем этапе стратегию. + +9. На все остальные вопросы `install_easy.sh` отвечайте согласно выводимой + аннотации. + + +## Итог +Это минимальная инструкция, чтобы быстро сориентироваться с чего начать. +Однако, это не гарантированное решение и в некоторых случаях вы не обойдетесь +без знаний и основного "талмуда". Подробности и полное техническое описание +расписаны в [README](readme.md). + +Если ломаются отдельные **не заблокированные** ресурсы, следует вносить их в +исключения, либо пользоваться ограничивающим `ipset` или хост листом. Лучше +подбирать такие стратегии, которые вызывают минимальные поломки. Есть стратегии +довольно безобидные, а есть сильно ломающие, которые подходят только для +точечного пробития отдельных ресурсов, когда ничего лучше нет. Хорошая +стратегия может большие проблемы из-за плохо подобранных ограничителей для +фейков (**ttl**, **fooling**). diff --git a/docs/quick_start.txt b/docs/quick_start.txt deleted file mode 100644 index cc08378..0000000 --- a/docs/quick_start.txt +++ /dev/null @@ -1,179 +0,0 @@ -Специально для тех, кто хочет побыстрее начать, но не хочет слишком углубляться в простыню readme.txt. - -Предупреждение : не пишите в issue вопросы типа "как скопировать файл", "как скачать", "как запустить", ... -То есть все , что касается базовых навыков обращения с ОС linux. Эти вопросы буду закрывать сразу. -Если у вас подобные вопросы возникают, рекомендую не использовать данный софт или искать помощь где-то в другом месте. -То же самое могу сказать тем, кто хочет нажать 1 кнопку, чтобы все заработало, и совсем не хочет читать и изучать. -Увы, такое не подвезли и не подвезут. Ищите другие более простые методы обхода. Этот метод не для рядового пользователя. - -Обход DPI является хакерской методикой. Под этим словом понимается метод, которому сопротивляется окружающая среда, -которому автоматически не гарантирована работоспособность в любых условиях и на любых ресурсах, -требуется настройка под специфические условия у вашего провайдера. Условия могут меняться со временем, -и методика может начинать или переставать работать, может потребоваться повторный анализ ситуации. -Могут обнаруживаться отдельные ресурсы, которые заблокированы иначе, и которые не работают или перестали работать. -Могут и сломаться отдельные незаблокированные ресурсы. -Поэтому очень желательно иметь знания в области сетей, чтобы иметь возможность проанализировать техническую ситуацию. -Не будет лишним иметь обходные каналы проксирования трафика на случай, если обход DPI не помогает. - -Будем считать, что у вас есть система на базе традиционного linux или openwrt. -Если у вас традиционный linux - задача обойти блокировки только на этой системе, если openwrt - обойти блокировки -для подключенных устройств. Это наиболее распространенный случай. - -1) Чтобы процедура установки сработала в штатном режиме на openwrt, нужно раcсчитывать на свободное место около 1-2 Mb -для установки самого zapret и необходимых дополнительных пакетов. -Если места мало и нет возможности его увеличить за счет extroot, возможно придется отказаться от варианта -простой установки и прикручивать в ручном режиме без имеющихся скриптов запуска. -Можно использовать облегченный tpws вариант из init.d/openwrt-minimal, либо попробовать засунуть требуемые zapret -дополнительные пакеты в сжатый образ squashfs с помощью image builder и перешить этим вариантом роутер. - -2) Скачайте zip архив проекта с github в /tmp, распакуйте его там, -либо клонируйте проект через : git clone --depth 1 https://github.com/bol-van/zapret - -3) Убедитесь, что у вас отключены все средства обхода блокировок, в том числе и сам zapret. -Гарантированно уберет zapret скрипт uninstall_easy.sh. - -4) Если вы работаете в виртуальной машине, необходимо использовать соединение с сетью в режиме bridge. nat не подходит - -5) Выполните однократные действия по установке требуемых пакетов в ОС и настройке бинариков правильной архитектуры - -install_bin.sh -install_prereq.sh - -Вас могут спросить о типе фаервола (iptables/nftables) и использовании ipv6. Это нужно для установки -правильных пакетов в ОС, чтобы не устанавливать лишнее. - -6) Запустите blockcheck.sh. blockcheck.sh в начале проверяет DNS. -Если выводятся сообщения о подмене адресов, то нужно будет решить проблему с DNS. -blockcheck перейдет в этом случае на DoH и будет пытаться получить и использовать реальные IP адреса. -Но если вы не настроите решение этой проблемы, обход будет работать только для тех программ -или ОС, которые сами реализуют механизмы SecureDNS. Для других программ обход работать не будет. - -Решение проблемы DNS выходит за рамки проекта. Обычно она решается либо заменой DNS серверов -от провайдера на публичные (1.1.1.1, 8.8.8.8), либо в случае перехвата провайдером обращений -к сторонним серверам - через специальные средства шифрования DNS запросов, такие как dnscrypt, DoT, DoH. - -Еще один эффективный вариант - использовать ресолвер от yandex 77.88.8.88 на нестандартном порту 1253. -Многие провайдеры не анализируют обращения к DNS на нестандартных портах. - -Проверить работает ли этот вариант можно так : - -dig -p 53 @77.88.8.88 rutracker.org -dig -p 1253 @77.88.8.88 rutracker.org - -Если DNS действительно подменяется, и ответ на эти 2 команды разный, значит метод вероятно работает. - -В openwrt DNS на нестандартном порту можно прописать в /etc/config/dhcp таким способом : - -config dnsmasq - ............. - list server '77.88.8.88#1253' - -Если настройки IP и DNS получаются автоматически от провайдера, в /etc/config/network -найдите секцию интерфейса 'wan' и сделайте так : - -config interface 'wan' - ............. - option peerdns '0' - -/etc/init.d/network restart -/etc/init.d/dnsmasq restart - -Если это не подходит, можно перенаправлять обращения на udp и tcp порты 53 вашего DNS сервера на 77.88.8.88:1253 средствами -iptables/nftables. В /etc/resolv.conf нельзя прописать DNS на нестандартном порту. - -7) blockcheck позволяет выявить рабочую стратегию обхода блокировок -По результатам blockcheck нужно понять какой вариант будете использовать : nfqws или tpws -И запомнить найденные стратегии. - -Следует понимать, что blockcheck проверяет доступность только конкретного домена, который вы вводите в начале. -Вероятно, все остальные домены блокированы подобным образом, но не факт. -В большинстве случаев можно обьединить несколько стратегий в одну универсальную, и это крайне желательно. -Необходимо понимать как работают стратегии. -zapret не может пробить блокировку по IP адресу. Для проверки нескольких доменов вводите их через пробел. - -Сейчас блокираторы ставят на магистральных каналах. В сложных случаях у вас может быть несколько маршрутов -с различной длиной по ХОПам, с DPI на разных хопах. Приходится преодолевать целый зоопарк DPI, -которые еще и включаются в работу хаотичным образом или образом, зависящим от направления (IP сервера). -blockcheck не всегда может выдать вам в итогах оптимальную стратегию, которую надо просто переписать в настройки. -В некоторых случаях надо реально думать что происходит, анализируя результат на разных стратегиях. -Если вы применяете большой TTL, чтобы достать до магистрала, то не лишним будет добавить дополнительный ограничитель ---dpi-desync-fooling, чтобы не сломать сайты на более коротких дистанциях. -md5sig наиболее совместим, но работает только на linux серверах. -badseq может работать только на https и не работать на http. -Чтобы выяснить какие дополнительные ограничители работают, смотрите результат теста аналогичных стратегий без TTL -с каждым из этих ограничителей. - -При использовании autottl следует протестировать как можно больше разных доменов. Эта техника -может на одних провайдерах работать стабильно, на других потребуется выяснить при каких параметрах -она стабильна, на третьих полный хаос, и проще отказаться. - -Далее, имея понимание что работает на http, https, quic, нужно сконструировать параметры запуска tpws и/или nfqws -с использованием мультистратегии. Как работают мультистратегии описано в readme.txt. - -Если кратко, то обычно параметры конструируются так : -"--filter-udp=443 'параметры для quic' --new ---filter-tcp=80,443 'обьединенные параметры для http и https' " - -Или так : -"--filter-udp=443 "параметры для quic" --new ---filter-tcp=80 'параметры для http' --new ---filter-tcp=443 'параметры для https' " - -"" и "" так и пишутся. Их не надо на что-то заменять. Это сделают скрипты запуска, -если вы выбрали режим фильтрации по хостлистам, и уберут в противном случае. -Если для какого-то протокола надо дурить все без стандартного хостлиста - просто уберите оттуда "" -и "". -Можно писать свои параметры --hostlist и --hostlist-exclude для дополнительных хостлистов -или в профилях специализаций под конкретный ресурс. В последнем случае стандартный хостлист там не нужен. -Следует избегать указания собственных параметров --hostlist на листы из директории ipset. -Эта логика включена в "" и "". -Отличие "" в том, что стандартный автолист по этому профилю используется как обычный, -то есть без автоматического добавления доменов. Однако, добавления в других профилях автоматически -отражаются во всех остальных. - -Если стратегии отличаются по версии ip протокола, и вы не можете их обьединить, фильтр пишется так : -"--filter-l3=ipv4 --filter-udp=443 "параметры для quic ipv4" --new ---filter-l3=ipv4 --filter-tcp=80 'параметры для http ipv4' --new ---filter-l3=ipv4 --filter-tcp=443 'параметры для https ipv4' --new ---filter-l3=ipv6 --filter-udp=443 "параметры для quic ipv6" --new ---filter-l3=ipv6 --filter-tcp=80 'параметры для http ipv6' --new ---filter-l3=ipv6 --filter-tcp=443 'параметры для https ipv6' " - -Но здесь совсем "копи-пастный" вариант. -Чем больше вы обьедините стратегий и сократите их общее количество, тем будет лучше. - -Если вам не нужно дурение отдельных протоколов, лучше всего будет их убрать из системы перехвата трафика через -параметры TPWS_PORTS, NFQWS_PORTS_TCP, NFQWS_PORTS_UDP и убрать соответствующие им профили мультистратегии. -tcp 80 - http, tcp 443 - https, udp 443 - quic. - -Если используются методы нулевой фазы десинхронизации (--mss, --wssize, --dpi-desync=syndata) и режим фильтрации hostlist, -то все параметры, относящиеся к этим методам, следует помещать в отдельные профили мульистратегии, которые получат -управление до определения имени хоста. Необходимо понимать алгоритм работы мультистратегий. -Самым надежным вариантом будет дублирование этих параметров на 2 профиля. Какой-нибудь сработает в зависимости -от параметра MODE_FILTER. - -"--filter-tcp=80 'параметры для http' --new ---filter-tcp=443 'параметры для https' --wssize 1:6 --new ---filter-tcp=443 --wssize 1:6" - -В этом примере wssize будет применяться всегда к порту tcp 443 вне зависимости от параметра MODE_FILTER. -Хостлист будет игнорироваться, если таковой имеется. К http применять wssize вредно и бессмысленно. - -Никто не мешает использовать tpws для http, nfqws для https, либо комбинировать действие nfqws и tpws для одного протокола. -В текущем варианте скриптов запуска это делается максимально гибко и независимо друг от друга. - -8) Запустите install_easy.sh. -Выберите nfqws и/или tpws, затем согласитесь на редактирование параметров. -Откроется редактор, куда впишите созданную на предыдущем этапе стратегию. - -9) На все остальные вопросы install_easy.sh отвечайте согласно выводимой аннонтации. - -10) Если ломаются отдельные незаблокированные ресурсы, следует вносить их в исключения, либо пользоваться ограничивающим -ipset или хост листом. Читайте основной талмуд readme.txt ради подробностей. -Но еще лучше будет подбирать такие стратегии, которые ломают минимум. -Есть стратегии довольно безобидные, а есть сильно ломающие, которые подходят только для точечного пробития отдельных ресурсов, -когда ничего лучше нет. Хорошая стратегия может сильно ломать из-за плохо подобранных ограничителей для фейков - ttl, fooling. - -Это минимальная инструкция, чтобы соориентироваться с чего начать. Однако, это - не панацея. -В некоторых случаях вы не обойдетесь без знаний и основного "талмуда". -Подробности и полное техническое описание расписаны в readme.txt diff --git a/docs/readme.en.md b/docs/readme.en.md index 488b76d..46a11ed 100644 --- a/docs/readme.en.md +++ b/docs/readme.en.md @@ -1351,6 +1351,12 @@ If this is the case then run another script in background and add some delay the Are welcome here : -USDT USDT 0x3d52Ce15B7Be734c53fc9526ECbAB8267b63d66E +USDT USDT +``` +0x3d52Ce15B7Be734c53fc9526ECbAB8267b63d66E +``` -USDT BTC bc1qhqew3mrvp47uk2vevt5sctp7p2x9m7m5kkchve +USDT BTC +``` +bc1qhqew3mrvp47uk2vevt5sctp7p2x9m7m5kkchve +``` diff --git a/docs/readme.md b/docs/readme.md index 57a038d..241376f 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -64,9 +64,8 @@ VPN. ## Быстрый старт -> *Linux/openwrt:* [docs/quick_start.txt](./quick_start.txt) -> ->*Windows:* [docs/quick_start_windows.md](./quick_start_windows.md) +- Linux/openWrt: [Документация](./quick_start.md) +- Windows: [Документация](./quick_start_windows.md) ## Как это работает @@ -2172,5 +2171,12 @@ VPS можно прибрести в множестве мест. Существ [Реквизиты](https://github.com/bol-van/zapret/issues/590): -USDT USDT 0x3d52Ce15B7Be734c53fc9526ECbAB8267b63d66E -USDT BTC bc1qhqew3mrvp47uk2vevt5sctp7p2x9m7m5kkchve +USDT USDT +``` +0x3d52Ce15B7Be734c53fc9526ECbAB8267b63d66E +``` + +USDT BTC +``` +bc1qhqew3mrvp47uk2vevt5sctp7p2x9m7m5kkchve +```