Skip to content

Fix ip header id field sequence in generated packets - #711

Open
Pavel4e5 wants to merge 3 commits into
ValdikSS:masterfrom
Pavel4e5:ip-header-id-field
Open

Pavel4e5 wants to merge 3 commits into
ValdikSS:masterfrom
Pavel4e5:ip-header-id-field

Conversation

@Pavel4e5

Copy link
Copy Markdown

Если задана последовательность фейковых пакетов, то в текущем виде все они имеют одинаковое поле Identification в заголовке IP пакета, это сказывается на проходимости DPI такими пакетами. Например для доступа к *.googlevideo.com (Ростелеком) у меня достаточно в Zapret задать: winws.exe --wf-tcp=443 --dpi-desync=fake --dpi-desync-fooling=badseq --dpi-desync-fake-tls=0x00 --dpi-desync-repeats=20 .
В GoodbyeDPI, в текущей версии программы, аналогичная последовательность не работает - goodbyedpi.exe --wrong-seq --fake-from-hex 00 --fake-resend 20 из за того, что вышеуказанное поле всегда имеет одно и то же значение.
Предлагаемый PR исправляет этот момент, и значение в этом поле увеличивается на единицу с каждым сгенерированным пакетом.

If a sequence of fake packets is given, in its current form they all have the same Identification field in the IP packet header, which affects the ability of such packets to pass through DPI. For example, to access *.googlevideo.com (Rostelecom), it is enough for me to set in Zapret: winws.exe --wf-tcp=443 --dpi-desync=fake --dpi-desync-fooling=badseq --dpi-desync-fake-tls=0x00 --dpi-desync-repeats=20.
In GoodbyeDPI, a similar sequence in the current version of the program does not work: goodbyedpi.exe --wrong-seq --fake-from-hex 00 --fake-resend 20 because the aforementioned field always has the same value.
The proposed PR fixes this issue by incrementing value in this field by one, with each generated packet.

@MrCryptor

This comment was marked as off-topic.

@Pavel4e5

Copy link
Copy Markdown
Author

Да, тут долго рассматривают) . Если нужны бинарники с фиксом, то можно пока скачать у меня в Actions: https://github.com/Pavel4e5/GoodbyeDPI/actions/runs/11728180799

@ValdikSS

ValdikSS commented Dec 6, 2024

Copy link
Copy Markdown
Owner

Может, имеет смысл не случайно задавать ID, а копировать из пакета, и затем это значение увеличивать?
По какой причине было выбрано случайное значение?

@Pavel4e5

Pavel4e5 commented Dec 7, 2024

Copy link
Copy Markdown
Author

По какой причине было выбрано случайное значение?

  1. Минимальные изменения в коде.
  2. Достигает результата.
  3. По окончании добавленных пакетов последовательность поля id в любом случае ломается.
  4. Если копировать id из пакета и увеличивать, то пакеты серии фейков, и пакеты, следующий сразу за ней, и не обработанные программой, будут иметь одинаковые последовательности полей ip_id, что тоже не соответствует стандарту .

Если необходимо, могу изменить, чтобы копировать из предыдущего пакета (ACK) и увеличивать.

@albamef

albamef commented Mar 28, 2025

Copy link
Copy Markdown

Да, тут долго рассматривают) . Если нужны бинарники с фиксом, то можно пока скачать у меня в Actions: https://github.com/Pavel4e5/GoodbyeDPI/actions/runs/11728180799

А можете перевыложить скомпилированный проект, пожалуйста?

@Pavel4e5

Pavel4e5 commented Apr 1, 2025

Copy link
Copy Markdown
Author

А можете перевыложить скомпилированный проект, пожалуйста?

https://github.com/Pavel4e5/GoodbyeDPI/actions/runs/14195558714

Removed auto-update for man-db to prevent conflicts during MinGW-w64 installation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants