Commit Graph

194 Commits

Author SHA1 Message Date
ValdikSS
d031ae65bf New option: -q - block QUIC/HTTP3
Only Initial packet in Long Header Packets are blocked.
The packet should be at least 1200 bytes in size.
2024-07-31 14:49:10 +03:00
ValdikSS
905d3c98a6 Revert "Add Unicorn HTTPS for iOS": doesn't do anything
This reverts commit 95c5ca81b2.
2024-07-26 03:44:16 +03:00
ValdikSS
b08836de50 Use WinDivert 2.2.0-D for Windows 7 compatibility 2024-07-25 00:51:47 +03:00
ValdikSS
cf1f2a8674 Actions: use $GITHUB_OUTPUT instead of ::set-output 2024-07-23 07:14:35 +03:00
ValdikSS
16464646a9 Use WinDivert 2.2.2 2024-07-23 07:11:47 +03:00
ValdikSS
ba015cf44e Update Github Actions "actions" to newest versions 2024-07-23 07:11:18 +03:00
ValdikSS
3837635f2c Use non-prefixed windres for msys2. #372 2024-07-23 07:04:08 +03:00
ValdikSS
95c5ca81b2 Add Unicorn HTTPS for iOS 2024-05-31 03:18:56 +03:00
ValdikSS
bbb7e4cea8 Add ByeDPI 2024-05-30 22:41:46 +03:00
ValdikSS
15eb10ac68 Fragment packet by the beginning of SNI value. #357
It has been reported that the DPI systems in Saudi Arabia and
United Arab Emirates are started to search for the beginning of
SNI extension header and its value, without parsing the TLS ClientHello
packet, in any part of TCP session.

Workaround the issue by splitting the packet right after the end
of extension headers and before its value.

https://ntc.party/t/goodbyedpi-in-saudi-arabia/7884
https://ntc.party/t/goodbyedpi-in-uae/7914
2024-05-30 22:16:14 +03:00
ValdikSS
4c846c712d Handle TLSv1.2 record version handshakes (16 03 03). #353 2024-05-30 21:02:16 +03:00
ValdikSS
4a82fd442d Add manual Github Action trigger 2023-03-29 13:38:48 +03:00
ValdikSS
b3c9ff8419
Merge pull request #270 from mohadangKim/master
fix memcpy usage
2022-08-06 15:06:14 +03:00
ValdikSS
fc6fd98a62 Merge branch 'VladWinner-master' 2022-08-06 14:52:15 +03:00
ValdikSS
6304328548 Merge branch 'master' of https://github.com/VladWinner/GoodbyeDPI into VladWinner-master 2022-08-06 14:52:02 +03:00
ValdikSS
86867fe678 Add GhosTCP by macronut to the list of alternative projects 2022-08-06 14:46:00 +03:00
mohadangKim
54349a1c31 fix memcpy usage 2022-07-01 22:12:55 +09:00
ValdikSS
4f18a73239 Print correct set-ttl/auto-ttl mode in the status 2022-03-31 12:15:40 +03:00
ValdikSS
67629fb6ef Disable auto-ttl if set-ttl has been used after auto-ttl 2022-03-31 12:14:03 +03:00
ValdikSS
27a6d256f0 Handle HTTP GET and POST in packets larger than --max-payload
If --max-payload 1200 is used and there's HTTP request with lots of cookies
which exceed 1200 bytes in size, this packet would have been skipped as
'too large', and the circumvention won't be applied.
Fix this by checking for "GET " or "POST" in the beginning of the packet
regardless of its size.
2022-03-21 15:17:27 +03:00
ValdikSS
938dce7333 Merge branch 'windivert2' 2022-03-21 15:06:15 +03:00
ValdikSS
99c403ca62 GoodbyeDPI v0.2.2 2022-03-21 14:12:36 +03:00
ValdikSS
6ee4101f58 Fix --set-ttl when used with --min-ttl 2022-03-21 14:08:02 +03:00
ValdikSS
f94a20d221 Update bug template 2022-03-16 17:07:45 +03:00
Vlad
54f810b6b0
Update README.md 2022-03-14 20:26:29 +03:00
ValdikSS
55a3a94065 Handle "0" in domain names 2022-03-06 00:22:22 +03:00
ValdikSS
8383ecaadf Change argument order for calloc() 2022-02-18 11:05:44 +07:00
ValdikSS
8deacbc438 Allocate (argc + 1) for the service arguments, with calloc
It was assumed that getopt checks argc count and does not require
null-terminated argv pointer to determine argv end for optional
parameter.
That is wrong.
Add null-terminated latest argv.

Fixes #246
2022-02-18 02:41:03 +07:00
ValdikSS
1cfd2b1b9f Allow to set --max-payload to zero 2022-01-10 08:32:10 +03:00
ValdikSS
766a8ab4ed Add forgotten default max-payload value in the README 2022-01-07 01:39:57 +03:00
ValdikSS
b7190f0e1f Add DANGEROUS notices for ttl modes in readme 2022-01-06 23:43:10 +03:00
ValdikSS
857aeb2366 Add SpoofDPI to similar projects 2022-01-04 22:48:22 +03:00
ValdikSS
871670845f Document forgotten --max-payload in -5 and -6 modes (v0.2.0+) 2022-01-04 15:40:21 +03:00
ValdikSS
68a68aede9 Use WinDivert 2.2.0 for Github Actions building 2022-01-04 15:13:57 +03:00
ValdikSS
4a8f7ac4fb Call WinDivertShutdown on shutdown 2022-01-04 03:14:47 +03:00
ValdikSS
ee4ce8893c Initial support for WinDivert 2.0+
This patch adds WinDivert 2.0+ support in a backward-incompatible way.
WinDivert 1.4 won't work after this commit anymore.
2022-01-03 21:23:40 +03:00
ValdikSS
406cf2ca68 GoodbyeDPI v0.2.1 2021-12-30 21:14:23 +03:00
ValdikSS
277b1fb4ef SNI extraction bugfix: add forgotten hyphen as an allowed domain character
This fixes --allow-no-sni option for domains with hyphen.
2021-12-30 19:16:43 +03:00
ValdikSS
5494be72ba GoodbyeDPI v0.2.0 2021-12-30 03:46:51 +03:00
ValdikSS
09089e0364 Update readme 2021-12-30 03:45:50 +03:00
ValdikSS
c92cd77c51 Ensure the resource file to be compiled before linking 2021-12-30 03:45:20 +03:00
ValdikSS
f97a2d04f0 Use --max-payload-size=1200 for -5 and -6 modes. 2021-12-30 03:44:37 +03:00
ValdikSS
d7c681d1a2 Add Max Payload Size limit option (--max-payload-size)
This option excludes TCP packets with the data payload larger than
defined value from being copied by WinDivert driver to GoodbyeDPI.

As most of HTTP and TLS ClientHello packets are repatively small,
and file transfers are usually big and are sent/received using
the whole available MTU/MSS, we can just exclude them from
being processed by our userspace program to reduce unnecessary
CPU load.
2021-12-30 03:41:12 +03:00
ValdikSS
ab74ddc425 Update readme 2021-12-29 16:22:43 +03:00
ValdikSS
cc1676ad92 --allow-no-sni option. Useful with --blacklist and undetectable SNI.
This option is added specially for protonmail.com, as it sends
low Window Size in SYN-ACK for requests from Russia, to force
the client to fragment the packet. GoodbyeDPI doesn't do reassembling
and can't extract SNI in this case, thus won't circumvent the
censorship if --blacklist option is used.
2021-12-29 16:18:56 +03:00
ValdikSS
7f59593a28 Check TLS Handshake ClientHello byte if packet length is enough 2021-12-29 16:14:12 +03:00
ValdikSS
372cc6a45d Properly handle Native Fragmentation packet of bigger or equal size than the fragment size 2021-12-29 16:10:18 +03:00
ValdikSS
46c4f36de8 Add Fake Packet maximum TTL limit to Auto TTL mode
This patchset adds maximum TTL size of the fake packet to be sent,
to further  improve compatibility with asymmertic routing and
non-standard TTL value set on servers.
2021-12-29 02:05:39 +03:00
ValdikSS
8911e459d8 Exit when native fragmentation is enabled but http/https values are not set 2021-12-28 23:48:57 +03:00
ValdikSS
f4edcf7b4f Small text output enhancements 2021-12-28 23:48:57 +03:00