begin process at 2012 05 29 00:18:29
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Réseau & Internet

 > 

code source efficace d'un firewall


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

code source efficace d'un firewall

mardi 12 août 2008 à 15:30:41 | code source efficace d'un firewall

samuel3490

Bonjour, j'ai déjà regardé plusieurs code sources de firewall open source mais ils utilisaient tous une librairie de chez microsoft avec une action simple de allow ou deny l'acces.
Je cherche donc le code source utile en c/c++ qui autorise ou refuse un packet et qui le modifie pour tout les packets sortant du pc sous windows.

Un petit schema :

=> pcap_next_ex(captureHandle, &packetHeader, &packetData) (avec WinPCAP)

=> stop le packet

(=> le modifie)

=> autorise ou non à l'envoyer


Mon but est de modifier l'addresse IP du destinataire par une autre, donc si vous avez un moyen plus rapide, je suis preneur.

Merci au revoir.

 

mardi 12 août 2008 à 16:54:27 | Re : code source efficace d'un firewall

SebLinck

Salut,

Je pense que si tu veux modifier les paquets  puis les envoyer sur le réseaux,
il faut que tu regardes du côté de libpcap (socket raw).

Cordialement,
Sébastien.
mardi 12 août 2008 à 19:34:54 | Re : code source efficace d'un firewall

samuel3490

Merci,
Je me suis donc attardé sur la librairie libpcap vu que j'avais lu quelque part que socket raw (qui m'est inconnu) n'existait plus sous windows depuis la xp sp2 et qu'elle ne fonctionnait pas avec la librairie libpcap.

Après avoir appris les fonctions basiques de mise en place de capture des packet, je suis encore butté sur la modification des header car j'ai l'impression que libpcap ne bloque pas les packet mais les sniffent simplement.

pcap_lookupdev(
pcap_open_live(
pcap_compile(
pcap_setfilter(

A ce moment j'ai configuré pcap pour qu'il me donne les bon packet avec le filtre et tout et tout.
J'utilise ensuite pcap_loop( pour faire une boucle de fonctions appelé à chaque packet sniffé.

Mais à part pcap_close( qui ferme la connection et la capture de packet, rien n'indique si les packet sont passé ou bloqués.

Je me suis quand même attardé sur une fonction qui m'est inconnue et que je n'ai pas très bien compris sa fonctionnalité :
TCP_RST_send(tcphdr->th_ack, 0, iphdr->ip_dest.s_addr, iphdr->ip_src.s_addr, tcphdr->th_dport, tcphdr->th_sport, 0) dans un exemple.

Cette fonction est exécuté dans une boucle de sniffage de packet comme pcap_loop( ou pcap_next(, cette fonction est-elle donc celle que je recherche en modifiant juste le iphdr->ip_dest.s_addr en mon ip de destination voulue ?

Merci encore. A plus.


mercredi 13 août 2008 à 05:06:37 | Re : code source efficace d'un firewall

samuel3490

J'ai progressé mais il reste toujours un petit problème au niveau du checksum.

Tout d'abbord j'ai décidé de laisser quand même passer les packets à rediriger.

J'ai donc utilisé les fonctions générales de WinPCAP avec règle de filtrer et tout et tout ...

et puis dans le loop des packet reçus j'ai : (où pkt_data est le header + data du packet reçu)


data = (u_char*)pkt_data; //on copie les data dans une variable non const
    data[0]=0x00;           // on modifie l'addresse mac (header ethr)
    data[1]=0x06;
    data[2]=0x5b;
    data[3]=0x66;
    data[4]=0xbf;
    data[5]=0x24;
    data[24] = 0x00;    // on modifie le checksum à zero (header ip)
    data[25] = 0x00;
    data[30]=0xc0;        // on modifie l'ip dest (header ip)
    data[31]=0xa8;
    data[32]=0x00;
    data[33]=0x0c;
ckck = in_cksum((u_short *)&data,header->len); // on calcule le nouveau checksum
printf("%x", ckck);                            // on l'affiche :p
data[24] = (u_char)(ckck / 0xff);              // on copie dans le premier u_char les 8 premiers octets de ckck (le checksum)
    data[25] = (u_char)ckck;                     // les derniers dans le dernier
   
      pcap_sendpacket(adhandle, data, header->len); // on envoie tout ca

 Avec comme in_cksum que j'ai trouvé sur internet :

inline u_short in_cksum(u_short *addr, int len)
{
register int nleft = len;
register u_short *w = addr;
register int sum = 0;
u_short answer = 0;
while (nleft > 1) {
sum += *w++;
nleft -= 2;
}
if (nleft == 1) {
*(u_char *)(&answer) = *(u_char *) w;
sum += answer;
}
sum = (sum >> 16) + (sum & 0xffff);
sum += (sum >> 16);
answer = ~sum;
return(answer);
}



Donc les packets s'envoyent bien mais pour les pings, il n'y a pas de réponse, j'ai vérifié avec wireshark et le checksum n'est pas correct.

J'ai déjà essayé de prendre que le header ip pour calculer le checksum mais ça ne marche pas non plus.


Merci de votre aide, a plus.
mercredi 13 août 2008 à 19:36:21 | Re : code source efficace d'un firewall

SebLinck

Salut,

Je doit dire que tu poses un problème intéressant,
mais hélas je n'ai pas trop le temps de chercher...


Cordialement,
Sébastien.


Cette discussion est classée dans : code, source, firewall, efficace, autorise


Répondre à ce message

Sujets en rapport avec ce message

code source de la visionneuse microsoft en C++ [ par tompouce ] j' ai un projet à faire en C++ et je n'y connaît strictement rien AU SECOURS!!Jai fait une fenetre avec un simple menu Fichier** Ouvrir** QuitterQuand Recherche code source de notepad... [ par PierreP ] ou de tout autre éditeur de texte assez simple.Merci d'avance ! Demande de tutorial et de code source... [ par MaTHieU ] Salut,Tout d'abord, merci pour ce superbe site !Je cherche des cours pour apprendre à faire des tunnel et du plasma en Visual C++ ou des codes sources imprimer et image en c++ [ par naney ] je voudre un code source qui me montre comment imprimer et un autre qui me montre comment inserais une image en c++ (n'importe quel format d'image) ex Pb code source CMphSock [ par xaviou ] Salut.J'ai téléchargé le projet "CMphSock" : Utilisation de Winsock sans MFC.Je l'ai compilé en mode Debug : tout est OKJ'ai essayé en mode Release : Salut, je voudrai savoir si qql'un peut me faire un petit code source sur ... [ par Uncle-Shu ] En faites je voudrai creer une application dans le style de VB (Fichier, Edition,...) !!Merci d'avance et bonne chance !! Aide pour un firewall ? [ par nliaudat ] SoleTrader : J'ai trouvé une source en c sur http://www.kyzo.com/qui permet de faire un bridge et firewall qui tient et boot uniquement sur une disque Code source d'un exploreur de page HTML [ par Aurelien62fr ] Bonjour je suis en train de develloper (essayer) un systeme d'exploitation en HTML. Mais j'ai besoin maintenant d'un programme pour le faire tourner, convertir 3DS fichier en code source OpenGL [ par fabienGL ] Bonjour, je vous écris car j'aimerais que quelk1 me donne un logiciel, ou script (simple :-) ) pour "traduire" un fichier .max du logiciel 3D Studio M recherche d un code source liaison serie [ par chupeau ] bonjour,je recherche le code source d'une liaison serie de type CGPIBentre un pc et un oscilloscope.C'est liaison devra relever des tensions en sortie


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales