Commit Graph

59 Commits

Author SHA1 Message Date
Vadim Vetrov
6549d0075f Reoder config refcount acquire in kernel module
That's like an impossible occurrence but why not :)
2025-03-29 18:11:44 +03:00
Vadim Vetrov
7ebaccfa19 Merge branch 'aho_corasick' 2025-02-08 11:43:06 +03:00
Vadim Vetrov
705da0f4c6 Merge pull request #229 from metrapoliten/fixes
Различные фиксы
2025-02-07 18:23:48 +03:00
Vadim Vetrov
df70763b4a fix: safety defenders for delay_packet_send 2025-02-06 18:43:31 +03:00
Artyom Gavrilov
49304cc111 fix: добавление проверки malloc 2025-02-06 00:29:27 +03:00
Artyom Gavrilov
b832541766 fix: перемещение проверки на нужное место 2025-02-05 23:55:41 +03:00
Artyom Gavrilov
2884cb72f9 fix: проверка указателя перед разыменованием 2025-02-05 23:50:10 +03:00
Artyom Gavrilov
34271ece2c fix: восстановление проверки fseek
Вероятно в этом месте должна была быть проверка вызова fseek.
2025-02-05 23:50:10 +03:00
Artyom Gavrilov
ad6b84a961 fix: проверка ftell на возвращаемое значение 2025-02-05 23:50:10 +03:00
Artyom Gavrilov
5f20220d4e fix: изменение типа переменной на подходящий
По стандарту ftell возвращает long.
2025-02-05 23:50:10 +03:00
Artyom Gavrilov
6cc23a2991 fix: изменение проверки fseek
По стандарту fseek при неудаче возвращает любое значение кроме нуля.
2025-02-05 23:50:10 +03:00
Artyom Gavrilov
c73885aca3 fix: изменение проверки qversion
qversion >= 0, т.к. тип переменной - uint32_t. Провека должна быть по
переменной ret.
2025-02-05 23:48:46 +03:00
Artyom Gavrilov
78dd12c526 fix: проверка указателя до его использования 2025-02-05 22:52:13 +03:00
Artyom Gavrilov
d7489fc08a fix: проверка указателя до его использования 2025-02-05 22:47:02 +03:00
Vadim Vetrov
6da6f63541 Delete old domains data structures 2025-02-04 18:40:59 +03:00
Vadim Vetrov
a7b689b320 Fix warnings 2025-02-03 15:30:10 +03:00
Vadim Vetrov
f7d0bed7aa Use Aho-Corasick algorithm in tls parsing 2025-02-02 23:36:19 +03:00
Vadim Vetrov
d225e673c7 Implement Aho-Corasick algorithm 2025-02-02 20:00:57 +03:00
Vadim Vetrov
d9c360910b procfs for old kernels 2025-02-01 21:02:05 +03:00
Vadim Vetrov
42917a75fc Add youtubeUnblock statistics
The statistis will be printed on exit in userspace version. In kernel
space version, use `cat /proc/kyoutubeUnblock`.

The feature was proposed by @IceCat74 in #220
2025-02-01 20:38:33 +03:00
Vadim Vetrov
91f8210437 Merge pull request #223 from Waujito/sni_domains_file
Allow to specify sni domains as file
2025-01-27 20:03:43 +03:00
Vadim Vetrov
ef78f5e185 Add --fake-custom-sni-file option
Allows to specify fake as a binary file
2025-01-27 19:51:28 +03:00
Vadim Vetrov
ab3e1b7dd1 Increase connbytes limit
As reported in #220
2025-01-27 16:54:42 +03:00
Vadim Vetrov
49de2cad6a Allow to specify sni domains as file 2025-01-20 22:26:17 +03:00
Vadim Vetrov
2289b4c738 Fix all domains with bruteforce analyzer 2025-01-19 21:26:56 +03:00
Vadim Vetrov
3f11a65a73 Disable conntrack by default
On some devices conntrack may return EPERM
2025-01-19 18:08:09 +03:00
Vadim Vetrov
2809a5cc74 Fix Illegal instruction 2025-01-18 23:20:47 +03:00
Vadim Vetrov
452e640d9f kmod -DNO_IPV6 packet filter 2025-01-12 01:45:31 +03:00
Vadim Vetrov
dfedde9aa8 Deglobalize struct config.
New config structure allows to implement refcounting in the kernel module to
escape borderline cases on module exit or config hot swap.
2025-01-11 03:42:50 +03:00
Vadim Vetrov
1027240062 Fix old kernel versions builders 2025-01-10 14:41:16 +03:00
Vadim Vetrov
351bbfb097 Use register_pernet_subsys for nf hook registration 2025-01-10 13:30:59 +03:00
Vadim Vetrov
2e67c161f8 Fix sni bruteforce when domain is at the end 2025-01-09 21:40:34 +03:00
Vadim Vetrov
d87ab29199 Use mallocs instead of NETBUF_ALLOC
malloc won't hurt when youtubeUnblock is processing the packet. But it
is better for kmod and a way cleaner than NETBUF_ALLOC defines.
2025-01-09 19:44:30 +03:00
Vadim Vetrov
9985fcea49 More verbose payload_split loggers 2025-01-09 18:31:38 +03:00
Vadim Vetrov
6393c11960 Use skb_copy_bits instead of skb_linearize
Encountered noticeable issues in performance caused by skb_linearize
2025-01-09 18:30:23 +03:00
Vadim Vetrov
9b58869864 Add --no-dport-filter flag
This flag allows to reduce amount of network packet to analyze.
2025-01-09 00:53:56 +03:00
Vadim Vetrov
37c8a798fd Disallow to use --no-ipv6 in kernel space 2025-01-09 00:21:12 +03:00
Vadim Vetrov
16ba8801c1 Concurrency defenders in config parse and module destroy
This commit is parr of #213 fix.
In this issue kernel module crashes on high bandwidth usage has been
reported. The part of the problem is concurrency usage: when config gets
freed, callbacks keep to depend on it.
2025-01-09 00:21:12 +03:00
Vadim Vetrov
cadec5a05c Allow to disable conntrack in userspace 2025-01-09 00:20:20 +03:00
Vadim Vetrov
59581e91b2 Allow to disable conntrack in kernel module 2025-01-09 00:09:47 +03:00
Vadim Vetrov
84d47b8a3d Add conntrack parse skeleton 2025-01-08 03:44:20 +03:00
Vadim Vetrov
a3bd918484 Update trace logging 2025-01-07 23:28:01 +03:00
Vadim Vetrov
7b321b5a2d Use size_t instead of uint32_t
Encountered some crossplatform errors with uint_t-like length type
definition.
2025-01-07 13:51:07 +03:00
Vadim Vetrov
1b62bb6cb2 Fix segfault in parse_quic_decrypted 2025-01-07 13:26:29 +03:00
Vadim Vetrov
40e1101d68 Do not hide sni domains with tls disabled 2025-01-04 19:27:12 +03:00
Vadim Vetrov
71c105a900 Disable early approve with all domains 2025-01-04 19:25:05 +03:00
Vadim Vetrov
e852d37edb Differ quic initial salt versions 2025-01-04 19:22:54 +03:00
Vadim Vetrov
e98bb5ecad Implement sni-detection brute for QUIC 2025-01-04 17:47:49 +03:00
Vadim Vetrov
fff2309863 Rename parsed to parse in --udp-filter-quic 2025-01-04 01:25:02 +03:00
Vadim Vetrov
0b9bc8e72a Add quic disassemble
Project all the CRYPTO messages to one buffer according to length/offset
2025-01-04 01:24:54 +03:00