ValdikSS / GoodbyeDPI

GoodbyeDPI — Deep Packet Inspection circumvention utility (for Windows)
https://ntc.party/c/community-software/goodbyedpi
Apache License 2.0
25.09k stars 1.83k forks source link

Вылет 0.1.2rc1 при запуске на win8.1 x64 #45

Closed r4sas closed 6 years ago

r4sas commented 6 years ago

Транк, собраный в MSYS2 без оптимизации (-O0) и отрезания дебаг символов (-s)

Reading symbols from ./goodbyedpi.exe...done.
(gdb) r
Starting program: /c/devel/project/goodbyedpi-0.1.2rc1/x86_64/goodbyedpi.exe -1 -a -m --dns-addr 77.88.8.8 --dns-port 125
[New Thread 4228.0x197c]
warning: Critical error detected c0000374

Program received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffb34441bd0 in ntdll!RtlpNtMakeTemporaryKey () from /c/Windows/SYSTEM32/ntdll.dll
(gdb) where
#0  0x00007ffb34441bd0 in ntdll!RtlpNtMakeTemporaryKey () from /c/Windows/SYSTEM32/ntdll.dll
#1  0x00007ffb34444e52 in ntdll!RtlpNtMakeTemporaryKey () from /c/Windows/SYSTEM32/ntdll.dll
#2  0x00007ffb34445a50 in ntdll!RtlpNtMakeTemporaryKey () from /c/Windows/SYSTEM32/ntdll.dll
#3  0x00007ffb343fa56f in ntdll!memset () from /c/Windows/SYSTEM32/ntdll.dll
#4  0x00007ffb31e81cb3 in msvcrt!_setjmp () from /c/Windows/system32/msvcrt.dll
#5  0x000000000040167b in add_filter_str ()
#6  0x0000000000402071 in main ()
ValdikSS commented 6 years ago

Попробуйте commit 1e8835cfe5dacc80f8cd6a21ca75a3d234f7e5b9

r4sas commented 6 years ago

Теперь без проблем запускается. Следующий вопрос в том, как оно работает? Запускаю с правами администратора, открываю браузер и пытаюсь открыть тот же rutracker - не работает (заглушка провайдера). Беру вашу софтину BlockCheck из соседнего репозитория - говорит что все открывается (при включеном GoodbyeDPI), и наоборот (при отключеном).

ValdikSS commented 6 years ago

Приведите полный вывод Blockcheck. Вероятнее всего, ваш провайдер подменяет ответы DNS, и у вас закешировались старые (подмененные) записи. Закройте браузер, запустите GoodbyeDPI с перенаправлением DNS (строка запуска из вашего первого сообщения подойдет), и потом уже запустите браузер.

ValdikSS commented 6 years ago

Только там порт 1253, а не 125.

r4sas commented 6 years ago

Сейчас поправлю и попытаюсь еще раз.

r4sas commented 6 years ago

Вывод вместе с GoodbyeDPI

BlockCheck v0.0.9.6
Для получения корректных результатов используйте DNS-сервер провайдера и отключите средства обхода блокировок.

Проверка работоспособности IPv6: IPv6 доступен!
IP: xxx, IPv6: xxxx, провайдер: XXX

[O] Тестируем IPv4 DNS
    Через системный DNS:     ['104.20.134.45', '104.20.135.45', '104.24.10.70', '104.24.11.70', '184.173.136.161', '195.8.215.136', '195.82.146.214', '5.178.68.100']
    Через Google DNS:    ['104.20.134.45', '104.20.135.45', '104.24.10.70', '104.24.11.70', '184.173.136.161', '195.8.215.136', '195.82.146.214', '5.178.68.100']
    Через Google API:    ['104.20.134.45', '104.20.135.45', '104.24.10.70', '104.24.11.70', '184.173.136.161', '195.8.215.136', '195.82.146.214', '5.178.68.100']
    Через недоступный DNS:   ['195.82.146.214']
[✓] DNS-записи не подменяются
[☠] DNS перенаправляется

[O] Тестируем IPv6 DNS
    Через системный DNS:     ['2400:cb00:2048:1::6814:862d', '2400:cb00:2048:1::6814:872d', '2400:cb00:2048:1::6818:a46', '2400:cb00:2048:1::6818:b46', '2607:f0d0:3003:2::b8ad:88a1', '2a00:1ca8:ae::d', '2a02:4680:22::214']
    Через Google DNS:    ['2400:cb00:2048:1::6814:862d', '2400:cb00:2048:1::6814:872d', '2400:cb00:2048:1::6818:a46', '2400:cb00:2048:1::6818:b46', '2607:f0d0:3003:2::b8ad:88a1', '2a00:1ca8:ae::d', '2a02:4680:22::214']
    Через Google API:    ['2400:cb00:2048:1::6814:862d', '2400:cb00:2048:1::6814:872d', '2400:cb00:2048:1::6818:a46', '2400:cb00:2048:1::6818:b46', '2607:f0d0:3003:2::b8ad:88a1', '2a00:1ca8:ae::d', '2a02:4680:22::214']
    Несуществующий DNS не вернул адресов (это не ошибка)
[✓] DNS-записи не подменяются
[✓] DNS не перенаправляется

[O] Тестируем HTTP (по настоящим IP-адресам сайтов)
    Открываем  http://rutracker.org/forum/index.php
[✓] Сайт открывается
    Открываем  http://a.putinhuylo.com/
[✓] Сайт открывается
    Открываем  http://pbooru.com/
[✓] Сайт открывается
    Открываем  http://furry.booru.org/index.php?page=post&s=view&id=111173
[✓] Сайт открывается
    Открываем  http://furry.booru.org/
[✓] Сайт открывается
    Открываем  http://pbooru.com/index.php?page=post&s=view&id=303026
[✓] Сайт открывается

[O] Тестируем HTTPS
    Открываем  https://www.dailymotion.com/
[✓] Сайт открывается
    Открываем  https://e621.net/
[✓] Сайт открывается
    Открываем  https://rutracker.org/forum/index.php
[✓] Сайт открывается
    Открываем  https://lolibooru.moe/
[✓] Сайт открывается

[O] Тестируем обход DPI (только IPv4)
    Пробуем способ «отсутствие пробела между двоеточием и значением заголовка Host» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «необычный порядок заголовков» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «табуляция в конце домена» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «перенос строки перед GET» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «заголовок hoSt вместо Host» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «перенос строки в заголовках в UNIX-стиле» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «дополнительный пробел после GET» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «заголовок hOSt вместо Host» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «фрагментирование заголовка, hoSt и отсутствие пробела одновременно» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «значение Host БОЛЬШИМИ БУКВАМИ» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «точка в конце домена» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «фрагментирование заголовка» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «отсутствие пробела между двоеточием и значением заголовка Host» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «необычный порядок заголовков» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «табуляция в конце домена» на pbooru.com
[☠] Сайт не открывается
    Пробуем способ «перенос строки перед GET» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «заголовок hoSt вместо Host» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «перенос строки в заголовках в UNIX-стиле» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «дополнительный пробел после GET» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «заголовок hOSt вместо Host» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «фрагментирование заголовка, hoSt и отсутствие пробела одновременно» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «значение Host БОЛЬШИМИ БУКВАМИ» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «точка в конце домена» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «фрагментирование заголовка» на pbooru.com
[✓] Сайт открывается

[!] Результат:
[⚠] Ваш провайдер перенаправляет сторонние IPv4 DNS-серверы на свой, но не подменяет DNS-записи.
 Это несколько странно и часто встречается в мобильных сетях.
 Если вы хотите использовать сторонний DNS, вам следует использовать шифрованный канал до DNS-серверов, например, через VPN, Tor, HTTPS/Socks прокси или DNSCrypt, но обходу блокировок это не поможет.
[☺] Ваш провайдер не блокирует сайты.

Вывод без GoodbyeDPI:

BlockCheck v0.0.9.6
Для получения корректных результатов используйте DNS-сервер провайдера и отключите средства обхода блокировок.

Проверка работоспособности IPv6: IPv6 доступен!
IP: xxx, IPv6: xxxx, провайдер: XXX

[O] Тестируем IPv4 DNS
    Через системный DNS:     ['5.178.68.100', '92.255.241.100', '92.255.241.100', '92.255.241.100', '92.255.241.100', '92.255.241.100']
    Через Google DNS:    ['5.178.68.100', '92.255.241.100', '92.255.241.100', '92.255.241.100', '92.255.241.100', '92.255.241.100']
    Через Google API:    ['104.20.134.45', '104.20.135.45', '104.24.10.70', '104.24.11.70', '184.173.136.161', '195.8.215.136', '195.82.146.214', '5.178.68.100']
    Через недоступный DNS:   ['92.255.241.100']
[☠] DNS-записи подменяются
[☠] DNS перенаправляется

[O] Тестируем IPv6 DNS
    Через системный DNS:     ['2a00:1ca8:ae::d', '2a02:2698:a000::64', '2a02:2698:a000::64', '2a02:2698:a000::64', '2a02:2698:a000::64', '2a02:2698:a000::64']
    Через Google DNS:    ['2400:cb00:2048:1::6814:862d', '2400:cb00:2048:1::6814:872d', '2400:cb00:2048:1::6818:a46', '2400:cb00:2048:1::6818:b46', '2607:f0d0:3003:2::b8ad:88a1', '2a00:1ca8:ae::d', '2a02:4680:22::214']
    Через Google API:    ['2400:cb00:2048:1::6814:862d', '2400:cb00:2048:1::6814:872d', '2400:cb00:2048:1::6818:a46', '2400:cb00:2048:1::6818:b46', '2607:f0d0:3003:2::b8ad:88a1', '2a00:1ca8:ae::d', '2a02:4680:22::214']
    Несуществующий DNS не вернул адресов (это не ошибка)
[☠] DNS-записи подменяются
[✓] DNS не перенаправляется

[O] Тестируем HTTP (по настоящим IP-адресам сайтов)
    Открываем  http://furry.booru.org/index.php?page=post&s=view&id=111173
[!] Сайт открывается только по IPv6
[☠] Получен неожиданный ответ, скорее всего, страница-заглушка провайдера. Пробуем через прокси.
[✓] Сайт открывается через прокси
    Открываем  http://furry.booru.org/
[✓] Сайт открывается
    Открываем  http://a.putinhuylo.com/
[!] Сайт открывается только по IPv6
[☠] Получен неожиданный ответ, скорее всего, страница-заглушка провайдера. Пробуем через прокси.
[☠] Сайт не открывается через прокси
    Проверяем доступность через isup.me
[☠] Сайт доступен, проблемы только у нас
    Открываем  http://rutracker.org/forum/index.php
[!] Сайт открывается только по IPv6
[☠] Получен неожиданный ответ, скорее всего, страница-заглушка провайдера. Пробуем через прокси.
[✓] Сайт открывается через прокси
    Открываем  http://pbooru.com/index.php?page=post&s=view&id=303026
[!] Сайт открывается только по IPv6
[☠] Получен неожиданный ответ, скорее всего, страница-заглушка провайдера. Пробуем через прокси.
[✓] Сайт открывается через прокси
    Открываем  http://pbooru.com/
[✓] Сайт открывается

[O] Тестируем HTTPS
    Открываем  https://e621.net/
[☠] Сайт не открывается
    Открываем  https://rutracker.org/forum/index.php
[☠] Сайт не открывается
    Открываем  https://www.dailymotion.com/
[☠] Сайт не открывается
    Открываем  https://lolibooru.moe/
[☠] Сайт не открывается

[O] Тестируем обход DPI (только IPv4)
    Пробуем способ «фрагментирование заголовка, hoSt и отсутствие пробела одновременно» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «заголовок hOSt вместо Host» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «перенос строки в заголовках в UNIX-стиле» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «перенос строки перед GET» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «табуляция в конце домена» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «заголовок hoSt вместо Host» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «необычный порядок заголовков» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «фрагментирование заголовка» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «дополнительный пробел после GET» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «точка в конце домена» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «отсутствие пробела между двоеточием и значением заголовка Host» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «значение Host БОЛЬШИМИ БУКВАМИ» на rutracker.org
[✓] Сайт открывается
    Пробуем способ «фрагментирование заголовка, hoSt и отсутствие пробела одновременно» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «заголовок hOSt вместо Host» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «перенос строки в заголовках в UNIX-стиле» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «перенос строки перед GET» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «табуляция в конце домена» на pbooru.com
[☠] Сайт не открывается
    Пробуем способ «заголовок hoSt вместо Host» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «необычный порядок заголовков» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «фрагментирование заголовка» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «дополнительный пробел после GET» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «точка в конце домена» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «отсутствие пробела между двоеточием и значением заголовка Host» на pbooru.com
[✓] Сайт открывается
    Пробуем способ «значение Host БОЛЬШИМИ БУКВАМИ» на pbooru.com
[✓] Сайт открывается

[!] Результат:
[⚠] Ваш провайдер подменяет DNS-записи и перенаправляет сторонние IPv4 DNS-серверы на свой.
 Вам следует использовать шифрованный канал до DNS-серверов, например, через VPN, Tor, HTTPS/Socks прокси или DNSCrypt.
[⚠] Ваш провайдер подменяет DNS-записи, но не перенаправляет сторонние IPv6 DNS-серверы на свой.
 Вам поможет смена DNS, например, на Яндекс.DNS 2a02:6b8::feed:0ff или Google DNS 2001:4860:4860::8888.
[⚠] Ваш провайдер полностью блокирует доступ к HTTPS-сайтам из реестра.
[⚠] Ваш провайдер блокирует поддомены у заблокированного домена.
[⚠] У вашего провайдера "обычный" DPI для IPv4. Вам поможет HTTPS/Socks прокси, VPN или Tor.

Браузер (Opera) после очистки кэша и DNS кеша так и не хочет открывать.

ValdikSS commented 6 years ago

GoodbyeDPI пока поддерживает только IPv4, попробуйте отключить IPv6.

r4sas commented 6 years ago

При выключенном IPv6 получилось открыть сайт. Тогда в этом случае могу сказать только одно: ждем имплементации на IPv6 =). Спасибо.

ValdikSS commented 6 years ago

Будет здорово, если вы сможете помочь кодом. Список дел есть в #42.

r4sas commented 6 years ago

В коде я не очень силен, но хочу попробовать портануть, для начала, на линь (взбудораженые юзеры на #ru@Irc2P просят)

ValdikSS commented 6 years ago

Для Linux есть https://github.com/bol-van/zapret, про него написано в readme.

r4sas commented 6 years ago

Принцип полностью аналогичный?

ValdikSS commented 6 years ago

С точки зрения пользования — да. С точки зрения архитектуры — нет.