Update version, minor fixes

This commit is contained in:
ruti 2024-03-06 20:37:59 +03:00
parent eb3f28b25f
commit 4e28fbeaae
3 changed files with 25 additions and 26 deletions

View File

@ -25,8 +25,8 @@
#define memfd_create(name, flags) fileno(tmpfile()) #define memfd_create(name, flags) fileno(tmpfile())
#endif #endif
#else #else
#include <windows.h>
#include <winsock2.h> #include <winsock2.h>
#include <windows.h>
#include <ws2tcpip.h> #include <ws2tcpip.h>
#endif #endif
@ -131,24 +131,20 @@ int send_fake(int sfd, char *buffer,
int send_oob(int sfd, char *buffer, int send_oob(int sfd, char *buffer,
ssize_t n, long pos) ssize_t n, long pos)
{ {
ssize_t size = oob_data.size; ssize_t size = oob_data.size - 1;
char *data = oob_data.data; char *data = oob_data.data + 1;
if (pos + 1 < n) { char rchar = buffer[pos];
char rchar = buffer[pos]; buffer[pos] = oob_data.data[0];
buffer[pos] = data[0];
if (send(sfd, buffer, pos + 1, MSG_OOB) < 0) {
if (send(sfd, buffer, pos + 1, MSG_OOB) < 0) { uniperror("send");
uniperror("send");
buffer[pos] = rchar;
return -1;
}
buffer[pos] = rchar; buffer[pos] = rchar;
size--; return -1;
data++; }
if (size) { buffer[pos] = rchar;
delay(params.sfdelay); if (size) {
} delay(params.sfdelay);
} }
for (long i = 0; i < size; i++) { for (long i = 0; i < size; i++) {
if (send(sfd, data + i, 1, MSG_OOB) < 0) { if (send(sfd, data + i, 1, MSG_OOB) < 0) {
@ -195,7 +191,8 @@ int desync(int sfd, char *buffer, size_t bfsize,
type = IS_HTTP; type = IS_HTTP;
} }
if (len && host) { if (len && host) {
LOG(LOG_S, "host: %.*s\n", len, host); LOG(LOG_S, "host: %.*s (%ld)\n",
len, host, host - buffer);
} }
if (type == IS_HTTP && params.mod_http) { if (type == IS_HTTP && params.mod_http) {
@ -239,7 +236,7 @@ int desync(int sfd, char *buffer, size_t bfsize,
} }
long lp = 0; long lp = 0;
if ((!type && params.de_known)) { if (!type && params.de_known) {
} }
else for (int i = 0; i < params.parts_n; i++) { else for (int i = 0; i < params.parts_n; i++) {
struct part part = params.parts[i]; struct part part = params.parts[i];
@ -247,13 +244,13 @@ int desync(int sfd, char *buffer, size_t bfsize,
long pos = part.pos; long pos = part.pos;
if (part.flag == OFFSET_SNI) { if (part.flag == OFFSET_SNI) {
if (type != IS_HTTPS) if (type != IS_HTTPS)
break; continue;
else else
pos += (host - buffer); pos += (host - buffer);
} }
else if (part.flag == OFFSET_HOST) { else if (part.flag == OFFSET_HOST) {
if (type != IS_HTTP) if (type != IS_HTTP)
break; continue;
else else
pos += (host - buffer); pos += (host - buffer);
} }

10
main.c
View File

@ -23,7 +23,7 @@
#define close(fd) closesocket(fd) #define close(fd) closesocket(fd)
#endif #endif
#define VERSION 4 #define VERSION 5
struct packet fake_tls = { struct packet fake_tls = {
@ -72,7 +72,9 @@ const char help_text[] = {
" -g, --def-ttl <num> TTL for all outgoing connections\n" " -g, --def-ttl <num> TTL for all outgoing connections\n"
// desync options // desync options
" -K, --desync-known Desync only HTTP and TLS with SNI\n" " -K, --desync-known Desync only HTTP and TLS with SNI\n"
" -s, --split <n[+s]> Split packet at n, +s to add SNI offset\n" " -s, --split <n[+s]> Split packet at n\n"
" +s - add SNI offset\n"
" +h - add HTTP Host offset\n"
" -s, --disorder <n[+s]> Split and send reverse order\n" " -s, --disorder <n[+s]> Split and send reverse order\n"
" -o, --oob <n[+s]> Split and send as OOB data\n" " -o, --oob <n[+s]> Split and send as OOB data\n"
#ifdef FAKE_SUPPORT #ifdef FAKE_SUPPORT
@ -80,10 +82,10 @@ const char help_text[] = {
" -t, --ttl <num> TTL of fake packets, default 8\n" " -t, --ttl <num> TTL of fake packets, default 8\n"
" -l, --fake-tls <file>\n" " -l, --fake-tls <file>\n"
" -j, --fake-http <file> Set custom fake packet\n" " -j, --fake-http <file> Set custom fake packet\n"
" -n, --tls-sni <str> Change SNI in fake CH\n" " -n, --tls-sni <str> Change SNI in fake ClientHello\n"
#endif #endif
" -e, --oob-data <file> Set custom OOB data\n" " -e, --oob-data <file> Set custom OOB data\n"
" -M, --mod-http <h,d,r> Modify http: hcsmix,dcsmix,rmspace\n" " -M, --mod-http <h,d,r> Modify HTTP: hcsmix,dcsmix,rmspace\n"
" -r, --tlsrec <n[+s]> Make TLS record at offset\n" " -r, --tlsrec <n[+s]> Make TLS record at offset\n"
}; };

View File

@ -48,7 +48,7 @@ $ ./ciadpi --disorder 3+sni
! Поведение в Windows отлично: сначала отправляется лишь часть, но затем целый запрос ! Поведение в Windows отлично: сначала отправляется лишь часть, но затем целый запрос
-o, --oob <n[+s]> -o, --oob <n[+s]>
Подобен --split, но после offset отсылается один или несколько байт OOB данных Подобен --split, но после части отсылается один или несколько байт OOB данных
-f, --fake <n[+s]> -f, --fake <n[+s]>
Подобен --disorder, только перед отправкой первого куска отправляется часть поддельного Подобен --disorder, только перед отправкой первого куска отправляется часть поддельного