Commit Graph

77 Commits

Author SHA1 Message Date
SashaXser a6aa77133e
Experimental 2023-10-29 01:01:54 +04:00
SashaXser 43b64278e0
Update goodbyedpi.c 2023-10-03 14:55:24 +04:00
SashaXser 0f2973e723
Update goodbyedpi.c 2023-10-03 14:54:12 +04:00
SashaXser 2d84f9b38d
Update goodbyedpi.c 2023-10-01 15:14:25 +04:00
SashaXser 06500c3fca
Add files via upload 2023-09-30 22:26:36 +04:00
SashaXser d7cc055037
Add files via upload 2023-09-30 22:24:38 +04:00
SashaXser 5e5d25d887
Add files via upload 2023-09-30 22:21:56 +04:00
SashaXser e8f00c7c70
Update goodbyedpi.c 2023-09-10 14:55:04 +04:00
SashaXser 1d00c56872
Update goodbyedpi.c 2023-09-10 14:53:00 +04:00
SashaXser af3710abeb
Update goodbyedpi.c 2023-09-10 14:50:10 +04:00
SashaXser 8f9e677eba
Update goodbyedpi.c 2023-09-10 14:46:14 +04:00
SashaXser f6c1c69543
Update goodbyedpi.c 2023-09-10 14:43:52 +04:00
SashaXser c517b7342e
Add files via upload 2023-09-10 14:41:58 +04:00
SashaXser 943c1ef005
Add files via upload 2023-09-08 19:10:11 +04:00
SashaXser 5777405bab
Update goodbyedpi.c 2023-08-04 21:03:29 +04:00
SashaXser 808d050a11
Update goodbyedpi.c 2023-08-04 20:55:43 +04:00
SashaXser b5ec348d7b
Add files via upload 2023-08-04 20:48:07 +04:00
SashaXser cda71e0c61
Update goodbyedpi.c 2023-08-04 09:15:35 +04:00
SashaXser 110ba354d8
Update goodbyedpi.c 2023-08-03 11:58:26 +04:00
SashaXser 00e246a372
Update goodbyedpi.c 2023-08-03 11:43:18 +04:00
SashaXser 80650937e3
Update goodbyedpi.c 2023-08-03 11:26:15 +04:00
SashaXser eda1d53bec
Update goodbyedpi.c 2023-08-03 11:09:24 +04: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 55a3a94065 Handle "0" in domain names 2022-03-06 00:22:22 +03:00
ValdikSS 1cfd2b1b9f Allow to set --max-payload to zero 2022-01-10 08:32:10 +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 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 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 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
ValdikSS bb8bafb663 Add Auto TTL range adjustment, introduce min-ttl and use it for --set-ttl as well. 2021-12-28 23:48:57 +03:00
ValdikSS e25d7432de Better Auto TTL adjusting algorithm which honors short distance
Say you set --auto-ttl to 4.
If the TTL distance to the destination host is too short, say 6, auto-ttl
would decrease it by 4 and send a fake packet with TTL 2, which is too low
for the packet to travel via DPI system.
But if you set --auto-ttl to a lower value such as 2, that may introduce
issues over long lines where outgoing-path TTL and incoming-path TTL may have
difference more than 2 hops due to higher chance of assymetric routing along
the path.

To solve this issue, this commit introduce auto-ttl range of two values.
If the incoming TTL distance is more than autottl2, it is subtracted by
autottl2 value.
If the distance is less than autottl2, the distance value is used as a
normalized weigth of [autottl1; autottl2] scale.

The simplified formula is as follows:

    128 > extracted_ttl > 98: // Server is running Windows
      nhops = 128 - extracted_ttl
    64 > extracted_ttl > 34: // Server is running Linux/FreeBSD/other
      nhops = 64 - extracted_ttl

    if (nhops - autottl2 < autottl2)
        ttl_of_fake_packet = nhops - autottl1 - trunc((autottl2 - autottl1) * ((float)nhops/10));
    else
        ttl_of_fake_packet = nhops - autottl2
2021-12-28 22:28:55 +03:00
ValdikSS 67c226dc7c Fix all types and warnings 2021-12-28 00:31:47 +03:00
ValdikSS 6eec99e874 GoodbyeDPI v0.1.8 2021-12-26 20:29:24 +03:00
ValdikSS fc15088c33 Fix spelling 2021-12-26 18:42:26 +03:00