From b1fbf5c81ab3fc437fb1ecc241995b40d5a83205 Mon Sep 17 00:00:00 2001 From: bol-van Date: Sat, 31 Jan 2026 13:17:33 +0300 Subject: [PATCH] update docs --- docs/manual.en.md | 20 ++++++++++++++++++++ docs/manual.md | 19 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/docs/manual.en.md b/docs/manual.en.md index 38cbdfe..9f35fa1 100644 --- a/docs/manual.en.md +++ b/docs/manual.en.md @@ -82,6 +82,7 @@ - [reconstruct\_dissect](#reconstruct_dissect) - [reconstruct\_hdr](#reconstruct_hdr) - [csum\_fix](#csum_fix) + - [conntrack](#conntrack) - [Obtaining IP addresses](#obtaining-ip-addresses) - [Receiving and sending Packets](#receiving-and-sending-packets) - [rawsend](#rawsend) @@ -2084,6 +2085,25 @@ Functions for fixing checksums. Since strings in Lua are immutable, these functi Direct reconstruction of individual headers is rarely necessary. Typically, all tasks are handled by functions working with dissects. +### conntrack + +``` +function conntrack_feed(dissect, reconstruct_opts) +``` + +"Feed" dissect to conntrack the way as if it was received from the network. +aaa +2 values are returned : [track](#the-track-table-structure) and bool value "outgoing". +outgoing is true if a new conntrack record was created and it was a SYN packet in case of tcp or any packet in case of udp. +If conntrack record already exists outgoing is true if the record was found by direct tuple - src_ip, src_port, dst_ip, dst_port. +If the record was found by reverse tuple - dst_ip, dst_port, src_ip, src_port - outgoing is false. + +The function can come in handy if you are obfuscating and transmitting data in a distorted form. For example, tcp is converted to icmp or the SYN flag is corrupted. +The receiving end will issue the first corrupted packet without track, because it is either not tcp and not udp, or there was no valid tcp handshake. +After deobfuscation, you can correct the situation by executing conntrack_feed and assigning desync.track its result. + +If conntrack is disabled or the packet is not valid tcp or udp, nil is returned. + ### Obtaining IP addresses ``` diff --git a/docs/manual.md b/docs/manual.md index 6feb078..cf108d7 100644 --- a/docs/manual.md +++ b/docs/manual.md @@ -80,6 +80,7 @@ - [reconstruct\_dissect](#reconstruct_dissect) - [reconstruct\_hdr](#reconstruct_hdr) - [csum\_fix](#csum_fix) + - [conntrack](#conntrack) - [Получение ip адресов](#получение-ip-адресов) - [Прием и отсылка пакетов](#прием-и-отсылка-пакетов) - [rawsend](#rawsend) @@ -2242,6 +2243,24 @@ function csum_icmp_fix(raw_ip_header, raw_icmp_header, payload) Прямая реконструкция отдельных заголовков нужна редко. Обычно все задачи выполняют функции по работе с диссектами. +### conntrack + +``` +function conntrack_feed(dissect, reconstruct_opts) +``` + +"Скормить" conntrack пакет таким образом, как если бы он пришел из сети и был проанализирован. +Возвращается 2 значения - [track](#структура-track) и bool признак "outgoing". +outgoing принимает значение true, если создается новая запись conntrack и она удовлетворяет признакам клиента - SYN в случае tcp, любой пакет в случае udp. +Если запись уже существует, outgoing = true, если запись была найдена по прямой паре - src_ip, src_port, dst_ip, dst_port. +Если запись была найдена по обратной паре - dst_ip, dst_port, src_ip, src_port, outgoing = false. + +Функция может пригодиться, если выполняется обфускация и передача данных в искаженном виде. Например, tcp преобразуется в icmp или портится флаг SYN. +Принимающий конец выдаст первый искаженный пакет без track, потому что это либо не tcp и не udp, либо не было валидного tcp handshake. +После деобфускации вы можете исправить ситуацию, выполнив conntrack_feed и присвоив desync.track его результат. + +Если conntrack выключен или пакет не является валидным tcp или udp, возвращается nil. + ### Получение ip адресов ```