#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <pthread.h>

#define FLAG_SZ 20

static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
static int i = 0;
static char flag[FLAG_SZ];


void enc(void *buf, int key, unsigned int len) {
int i;
        for (i=0; i < (len/4); i++) {
						                                        ((int *) buf)[i]^=key;
					                                                }
}


void *brute(void *p)
{
	while(i == 0)
	{	
	system("nc localhost 6666");
	}
	return NULL;
}



int main()
{

FILE *fr;
	
pthread_t uno;


printf("Please wait...\n");

fr = popen("nc -l -p 16000","r");
pthread_create(&uno, NULL,&brute ,NULL);

fgets(flag,20,fr);
fclose(fr);
enc(flag,16000,FLAG_SZ);
write(1,flag,20);
i = 1;
pthread_join(uno, NULL);
return 0;
}


