@ -528,6 +528,7 @@ static void exithelp()
" --dpi-desync-fake-http=<filename> \t ; file containing fake http request \n "
" --dpi-desync-fake-tls=<filename> \t ; file containing fake TLS ClientHello (for https) \n "
" --dpi-desync-fake-unknown=<filename> \t ; file containing unknown protocol fake payload \n "
" --dpi-desync-fake-quic=<filename> \t ; file containing fake QUIC Initial \n "
" --dpi-desync-fake-unknown-udp=<filename> ; file containing unknown udp protocol fake payload \n "
" --dpi-desync-cutoff=[n|d|s]N \t \t ; apply dpi desync only to packet numbers (n, default), data packet numbers (d), relative sequence (s) less than N \n "
" --hostlist=<filename> \t \t \t ; apply dpi desync only to the listed hosts (one host per line, subdomains auto apply) \n " ,
@ -614,6 +615,7 @@ int main(int argc, char **argv)
memcpy ( params . fake_tls , fake_tls_clienthello_default , params . fake_tls_size ) ;
params . fake_http_size = strlen ( fake_http_request_default ) ;
memcpy ( params . fake_http , fake_http_request_default , params . fake_http_size ) ;
params . fake_quic_size = 256 ;
params . fake_unknown_size = 256 ;
params . fake_unknown_udp_size = 64 ;
params . wscale = - 1 ; // default - dont change scale factor (client)
@ -676,9 +678,10 @@ int main(int argc, char **argv)
{ " dpi-desync-fake-http " , required_argument , 0 , 0 } , // optidx=28
{ " dpi-desync-fake-tls " , required_argument , 0 , 0 } , // optidx=29
{ " dpi-desync-fake-unknown " , required_argument , 0 , 0 } , // optidx=30
{ " dpi-desync-fake-unknown-udp " , required_argument , 0 , 0 } , // optidx=31
{ " dpi-desync-cutoff " , required_argument , 0 , 0 } , // optidx=32
{ " hostlist " , required_argument , 0 , 0 } , // optidx=33
{ " dpi-desync-fake-quic " , required_argument , 0 , 0 } , // optidx=31
{ " dpi-desync-fake-unknown-udp " , required_argument , 0 , 0 } , // optidx=32
{ " dpi-desync-cutoff " , required_argument , 0 , 0 } , // optidx=33
{ " hostlist " , required_argument , 0 , 0 } , // optidx=34
{ NULL , 0 , NULL , 0 }
} ;
if ( argc < 2 ) exithelp ( ) ;
@ -955,18 +958,22 @@ int main(int argc, char **argv)
params . fake_unknown_size = sizeof ( params . fake_unknown ) ;
load_file_or_exit ( optarg , params . fake_unknown , & params . fake_unknown_size ) ;
break ;
case 31 : /* dpi-desync-fake-unknown-udp */
case 31 : /* dpi-desync-fake-quic */
params . fake_quic_size = sizeof ( params . fake_quic ) ;
load_file_or_exit ( optarg , params . fake_quic , & params . fake_quic_size ) ;
break ;
case 32 : /* dpi-desync-fake-unknown-udp */
params . fake_unknown_udp_size = sizeof ( params . fake_unknown_udp ) ;
load_file_or_exit ( optarg , params . fake_unknown_udp , & params . fake_unknown_udp_size ) ;
break ;
case 32 : /* desync-cutoff */
case 33 : /* desync-cutoff */
if ( ! parse_cutoff ( optarg , & params . desync_cutoff , & params . desync_cutoff_mode ) )
{
fprintf ( stderr , " invalid desync-cutoff value \n " ) ;
exit_clean ( 1 ) ;
}
break ;
case 33 : /* hostlist */
case 34 : /* hostlist */
if ( ! LoadHostList ( & params . hostlist , optarg ) )
exit_clean ( 1 ) ;
strncpy ( params . hostfile , optarg , sizeof ( params . hostfile ) ) ;