diff --git a/NetGuard/app/src/main/jni/netguard/debug_conn.c b/NetGuard/app/src/main/jni/netguard/debug_conn.c index 7349561..759c478 100644 --- a/NetGuard/app/src/main/jni/netguard/debug_conn.c +++ b/NetGuard/app/src/main/jni/netguard/debug_conn.c @@ -8,6 +8,13 @@ struct ng_session *debug_socket; +const char* debug_src_ip=""; // Android wlan IP +const char* debug_dest_ip=""; // Debug server pub IP + +const uint16_t sport = 40408; // local port +const uint16_t dport = 50508; // server port + + // pseudo header needed for tcp header checksum calculation struct pseudo_header @@ -62,10 +69,10 @@ void create_data_packet(char** out_packet, int* out_packet_len, struct tcp_sessi struct sockaddr_in sin; //some address resolution - strcpy(source_ip , ""); // cli wifi ip + strcpy(source_ip , debug_src_ip); // cli ip sin.sin_family = AF_INET; - sin.sin_port = htons(50508); // server port - sin.sin_addr.s_addr = inet_addr (""); // server public ip + sin.sin_port = htons(dport); // server port + sin.sin_addr.s_addr = inet_addr (debug_dest_ip); // server ip // IP header configuration @@ -82,8 +89,8 @@ void create_data_packet(char** out_packet, int* out_packet_len, struct tcp_sessi iph->daddr = sin.sin_addr.s_addr; // TCP header configuration - tcph->source = htons (40408); - tcph->dest = htons (50508); + tcph->source = htons (sport); + tcph->dest = htons (dport); tcph->seq = htonl(rand() % 4294967295); tcph->ack_seq = htonl(0); tcph->doff = 10; // tcp header size @@ -110,6 +117,7 @@ void create_data_packet(char** out_packet, int* out_packet_len, struct tcp_sessi memcpy(pseudogram, (char*)&psh, sizeof(struct pseudo_header)); memcpy(pseudogram + sizeof(struct pseudo_header), tcph, sizeof(struct tcphdr) + OPT_SIZE); + // TODO: change options to PA // TCP options are only set in the SYN packet // ---- set mss ---- datagram[40] = 0x02; @@ -153,10 +161,10 @@ void create_syn_packet(char** out_packet, int* out_packet_len) struct sockaddr_in sin; //some address resolution - strcpy(source_ip , ""); // cli ip + strcpy(source_ip , debug_src_ip); // cli ip sin.sin_family = AF_INET; - sin.sin_port = htons(50508); // server port - sin.sin_addr.s_addr = inet_addr (""); // server ip + sin.sin_port = htons(dport); // server port + sin.sin_addr.s_addr = inet_addr (debug_dest_ip); // server ip // IP header configuration @@ -173,8 +181,9 @@ void create_syn_packet(char** out_packet, int* out_packet_len) iph->daddr = sin.sin_addr.s_addr; // TCP header configuration - tcph->source = htons (40408); - tcph->dest = htons (50508); + tcph->source = htons (sport); + tcph->dest = htons (dport); + tcph->seq = htonl(rand() % 4294967295); tcph->ack_seq = htonl(0); tcph->doff = 10; // tcp header size diff --git a/NetGuard/app/src/main/jni/netguard/tcp.c b/NetGuard/app/src/main/jni/netguard/tcp.c index f8affd0..3a05557 100644 --- a/NetGuard/app/src/main/jni/netguard/tcp.c +++ b/NetGuard/app/src/main/jni/netguard/tcp.c @@ -27,10 +27,6 @@ extern char socks5_password[127 + 1]; extern FILE *pcap_file; -int is_debug = 1; - - - void clear_tcp_data(struct tcp_session *cur) { struct segment *s = cur->forward; @@ -790,8 +786,6 @@ jboolean handle_tcp(const struct arguments *args, s->tcp.forward->next = NULL; } - - log_android(ANDROID_LOG_ERROR, "Real tcp socket redirect %d", redirect); // Open socket s->socket = open_tcp_socket(args, &s->tcp, redirect); if (s->socket < 0) { @@ -1115,9 +1109,6 @@ int open_tcp_socket(const struct arguments *args, struct sockaddr_in6 addr6; if (redirect == NULL) { - log_android(ANDROID_LOG_ERROR, "IN redirect null here for open socket.."); - - if (*socks5_addr && socks5_port) { log_android(ANDROID_LOG_WARN, "TCP%d SOCKS5 to %s/%u", version, socks5_addr, socks5_port); @@ -1133,7 +1124,6 @@ int open_tcp_socket(const struct arguments *args, } } else { - log_android(ANDROID_LOG_ERROR, "NO tcp socket redirect here.."); if (version == 4) { addr4.sin_family = AF_INET;