mirror of
https://github.com/hufrea/byedpi.git
synced 2025-01-03 04:49:47 +00:00
Update version, minor fixes
This commit is contained in:
parent
eb3f28b25f
commit
4e28fbeaae
39
desync.c
39
desync.c
@ -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
10
main.c
@ -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"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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, только перед отправкой первого куска отправляется часть поддельного
|
||||||
|
Loading…
Reference in New Issue
Block a user