libft submoduel gone

This commit is contained in:
Jack Halford 2017-10-08 21:30:05 +02:00
parent c9be993efd
commit b18fc7924e
8 changed files with 83 additions and 51 deletions

3
nmap/.gitmodules vendored
View file

@ -1,3 +0,0 @@
[submodule "libft"]
path = libft
url = https://github.com/jzck/libft

View file

@ -6,7 +6,7 @@
# By: wescande <wescande@student.42.fr> +#+ +:+ +#+ # # By: wescande <wescande@student.42.fr> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ # # +#+#+#+#+#+ +#+ #
# Created: 2016/08/29 21:32:58 by wescande #+# #+# # # Created: 2016/08/29 21:32:58 by wescande #+# #+# #
# Updated: 2017/04/22 19:26:34 by jhalford ### ########.fr # # Updated: 2017/10/08 19:09:21 by jhalford ### ########.fr #
# # # #
# **************************************************************************** # # **************************************************************************** #
@ -48,7 +48,9 @@ all :
$(NAME): $(LIBFT_LIB) $(OBJ_DIR) $(OBJS) $(CLIENT_OBJ) $(NAME): $(LIBFT_LIB) $(OBJ_DIR) $(OBJS) $(CLIENT_OBJ)
@$(CC) $(OBJS) -o $@ \ @$(CC) $(OBJS) -o $@ \
-I $(INC_DIR) \ -I $(INC_DIR) \
-I $(HOME)/.bin/include \
-I $(LIBFT_INC) \ -I $(LIBFT_INC) \
-L $(HOME)/.bin/lib \
$(LIBFT_LIB) $(CLIENT_OBJ) $(FLAGS) \ $(LIBFT_LIB) $(CLIENT_OBJ) $(FLAGS) \
-lm -lpcap -lpthread /usr/local/lib/libdill.a -lm -lpcap -lpthread /usr/local/lib/libdill.a
@printf "\r\033[38;5;117m✓ MAKE $@ \033[0m\033[K\n" @printf "\r\033[38;5;117m✓ MAKE $@ \033[0m\033[K\n"
@ -66,7 +68,8 @@ $(OBJ_DIR)%.o : $(SRC_DIR)%.c | $(OBJ_DIR)
@$(eval COLOR=$(shell list=(160 196 202 208 215 221 226 227 190 154 118 82 46); index=$$(($(PERCENT) * $${#list[@]} / 100)); echo "$${list[$$index]}")) @$(eval COLOR=$(shell list=(160 196 202 208 215 221 226 227 190 154 118 82 46); index=$$(($(PERCENT) * $${#list[@]} / 100)); echo "$${list[$$index]}"))
@printf "\r\033[38;5;%dm⌛ [%s]: %2d%% `printf '█%.0s' {0..$(DONE)}`%*s❙%*.*s\033[0m\033[K" $(COLOR) $(NAME) $(PERCENT) $(TO_DO) "" $(DELTA) $(DELTA) "$(shell echo "$@" | sed 's/^.*\///')" @printf "\r\033[38;5;%dm⌛ [%s]: %2d%% `printf '█%.0s' {0..$(DONE)}`%*s❙%*.*s\033[0m\033[K" $(COLOR) $(NAME) $(PERCENT) $(TO_DO) "" $(DELTA) $(DELTA) "$(shell echo "$@" | sed 's/^.*\///')"
@$(CC) $(FLAGS) $(OBJ_FLAG) -MMD -c $< -o $@\ @$(CC) $(FLAGS) $(OBJ_FLAG) -MMD -c $< -o $@\
-I $(INC_DIR)\ -I $(INC_DIR) \
-I $(HOME)/.bin/include \
-I $(LIBFT_INC) -I $(LIBFT_INC)
@$(eval INDEX=$(shell echo $$(($(INDEX)+1)))) @$(eval INDEX=$(shell echo $$(($(INDEX)+1))))

View file

@ -6,7 +6,7 @@
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */ /* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */ /* +#+#+#+#+#+ +#+ */
/* Created: 2017/04/22 14:10:24 by jhalford #+# #+# */ /* Created: 2017/04/22 14:10:24 by jhalford #+# #+# */
/* Updated: 2017/04/22 15:52:07 by jhalford ### ########.fr */ /* Updated: 2017/10/08 21:27:51 by jhalford ### ########.fr */
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
@ -30,7 +30,7 @@
# include <pthread.h> # include <pthread.h>
# include <ifaddrs.h> # include <ifaddrs.h>
# include <libdill.h> # include "libdill.h"
# define SCAN_TCP (1 << 0) # define SCAN_TCP (1 << 0)
# define SCAN_SYN (1 << 1) # define SCAN_SYN (1 << 1)
@ -51,21 +51,13 @@ struct s_data
t_flag flag; t_flag flag;
char **av_data; char **av_data;
t_list *host; t_list *host;
struct sockaddr source_addr;
int ports[USHRT_MAX + 1]; int sock_tcp;
int threads; int threads;
int scan; int scan;
}; };
/* enum e_scan_type */ struct
/* { */
/* SCAN_SYN, */
/* SCAN_NULL, */
/* SCAN_ACK, */
/* SCAN_FIN, */
/* SCAN_XMAS, */
/* SCAN_UDP, */
/* }; */
enum e_port_status enum e_port_status
{ {
@ -81,15 +73,17 @@ struct s_host
char *host; // user input host (ip or dn) char *host; // user input host (ip or dn)
char *dn; // ai_canonname char *dn; // ai_canonname
char ip[INET6_ADDRSTRLEN]; // readable ip address (4 or 6) char ip[INET6_ADDRSTRLEN]; // readable ip address (4 or 6)
int sock_tcp; struct s_target ports[USHRT_MAX + 1];
int sock_udp;
int sock_icmp;
t_port_status results[USHRT_MAX + 1];
int channels[USHRT_MAX + 1];
struct sockaddr *addr; struct sockaddr *addr;
size_t addrlen; size_t addrlen;
}; };
struct s_target
{
int in_channel;
t_port_status results[SCAN_MAX];
};
struct s_tcp_packet struct s_tcp_packet
{ {
struct iphdr iph; struct iphdr iph;

@ -1 +0,0 @@
Subproject commit 8c0961c50468d42c3527c208d7f4ae3c98646882

View file

@ -8,11 +8,11 @@ static void packet_callback(u_char *arg, const struct pcap_pkthdr *pkthdr, const
(void)pkthdr; (void)pkthdr;
(void)packet; (void)packet;
t_data *data = (t_data*)arg; t_data *data = (t_data*)arg;
printf("received packet !!!\n"); ft_printf("received packet !!!\n");
hexdump(&packet, sizeof(packet)); hexdump(&packet, sizeof(packet));
} }
coroutine void nmap_listener(void *arg) coroutine void nmap_listener(t_data *data)
{ {
t_data *data; t_data *data;
char errbuf[PCAP_ERRBUF_SIZE]; char errbuf[PCAP_ERRBUF_SIZE];
@ -44,11 +44,10 @@ coroutine void nmap_listener(void *arg)
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
/* signal(SIGALRM, sigalrm_handler); */ /* signal(SIGALRM, sigalrm_handler); */
printf("listener loop\n"); ft_printf("listener loop\n");
fflush(stdout);
if (pcap_loop(pcap_obj, -1, packet_callback, (u_char*)data) == -1) if (pcap_loop(pcap_obj, -1, packet_callback, (u_char*)data) == -1)
{ {
printf("pcap_loop fail\n"); ft_printf("pcap_loop fail\n");
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
free(str); free(str);

View file

@ -1,3 +1,15 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2017/10/08 19:10:04 by jhalford #+# #+# */
/* Updated: 2017/10/08 21:27:57 by jhalford ### ########.fr */
/* */
/* ************************************************************************** */
#include "nmap.h" #include "nmap.h"
#define NMAP_USAGE1 " [--ip HOST] [--file FILE]" #define NMAP_USAGE1 " [--ip HOST] [--file FILE]"
@ -20,15 +32,19 @@ int main(int ac, char **av)
printf("or nmap"NMAP_USAGE1 NMAP_USAGE2"\n"); printf("or nmap"NMAP_USAGE1 NMAP_USAGE2"\n");
exit(1); exit(1);
} }
if (reserve_port(&data.src_port))
// single tcp port
struct sockaddr_in sa;
sa.sin_family = AF_INET;
sa.sin_addr.s_addr = INADDR_ANY;
if (reserve_port(data.sock_tcp, &sa))
{ {
fprintf(stderr, "couldn't reserve port\n"); fprintf(stderr, "couldn't reserve port\n");
exit(1); exit(1);
} }
int port_chan = chmake(sizeof(int));
go(nmap_listener(&data)); go(nmap_listener(&data));
/* go(nmap_ports(&data, port_chan)); */
/* go(nmap_collector(&data)); */
int chan = nmap(&data); int chan = nmap(&data);
nmap_collector(chan, &data);
return (0); return (0);
} }

View file

@ -1,3 +1,15 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* nmap.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2017/10/08 19:10:07 by jhalford #+# #+# */
/* Updated: 2017/10/08 21:27:50 by jhalford ### ########.fr */
/* */
/* ************************************************************************** */
#include "nmap.h" #include "nmap.h"
unsigned short cksum(void *b, int len) unsigned short cksum(void *b, int len)
@ -36,7 +48,8 @@ coroutine void nmap_scan_node(t_host *host, struct iphdr *iph, int port)
return (1); return (1);
if (sendto(host->sock_tcp, &packet, sizeof(packet), 0, host->addr, host->addrlen) < 0) if (sendto(data->sock_tcp, &packet, sizeof(packet), 0,
host->addr, host->addrlen) < 0)
{ {
perror("sendto"); perror("sendto");
exit(1); exit(1);
@ -57,8 +70,7 @@ void nmap(t_data *data)
iph.daddr = *(uint32_t*)&((struct sockaddr_in*)host->addr)->sin_addr; iph.daddr = *(uint32_t*)&((struct sockaddr_in*)host->addr)->sin_addr;
iph.saddr = *(uint32_t*)&((struct sockaddr_in*)&data->source_addr)->sin_addr; iph.saddr = *(uint32_t*)&((struct sockaddr_in*)&data->source_addr)->sin_addr;
iph.tot_len = htons(sizeof(t_tcp_packet)); iph.tot_len = htons(sizeof(t_tcp_packet));
int fan_in = chmake(sizeof());
int fan_in = chmake();
for (t_list *list = data->host; list != NULL; list = list->next) for (t_list *list = data->host; list != NULL; list = list->next)
{ {
t_host *host = list->content; t_host *host = list->content;

View file

@ -1,3 +1,15 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* parser.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: jhalford <jack@crans.org> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2017/10/08 19:10:05 by jhalford #+# #+# */
/* Updated: 2017/10/08 21:05:14 by jhalford ### ########.fr */
/* */
/* ************************************************************************** */
#include "nmap.h" #include "nmap.h"
static t_cliopts g_opts[] = static t_cliopts g_opts[] =