Browse Source

made debug vars for IPs

master
Beau Kujath 12 months ago
parent
commit
6fb28bd8b6
  1. 29
      NetGuard/app/src/main/jni/netguard/debug_conn.c
  2. 10
      NetGuard/app/src/main/jni/netguard/tcp.c

29
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

10
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;

Loading…
Cancel
Save