• STATISTIQUES
  • Il y a eu un total de 1 membres et 12234 visiteurs sur le site dans les dernières 24h pour un total de 12 235 personnes!


    Membres: 2 433
    Discussions: 3 585
    Messages: 32 831
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] PHP Débutant
    Apprendre le PHP par l'exemple, facilement et simplement. Réservé d'abord aux débutants....
    Programmation
    [EN] Dare your mind
    JavaScript: 6, Crypto: 44, Stegano: 36, Logic: 13, Special: 27, Science: 11, Realistic: 7, Programming: 10, Crack It: 6,...
    Challenges
    [FR] Cyber-Hacker
    CH - Cyber Hacker est un jeu par navigateur de simulation de hack, programmez et envoyez vos virus et piratez les aut...
    Hacking
    [FR] Le site du zero
    Découvrez gratuitement la programmation (C, C++, PHP, MySQL, XHTML, CSS...), Linux, le Mapping, la modé...
    Programmation
    [FR] NewbieContest
    Nous vous proposons une série de challenges regroupant plusieurs domaines allant de l'exploitation de fail...
    Hacking
    [EN] SecurityFocus
    SecurityFocus a été conçu pour faciliter la discussion sur des sujets liés la sécu...
    Vulnérabilités
    [FR] Kalkulators
    Ce projet a plusieurs buts, le premier étant l’étude de toutes formes cryptographiques, le cot&ea...
    Cryptographie

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[C] Socket Client-Serveur -> Write() + Read()
15-03-2013, 14h38
Message : #1
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
[C] Socket Client-Serveur -> Write() + Read()
Hello alors je partage mon code .
systeme de client-Serveur en C donc , assez simple .
j'obtient un truc assez louche , si quelqun a une idée ? :')

server.c :
Code :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#define PORT 5555
#define IP "192.168.0.19"

int main(int argc,char **argv)
{
  char buf[1024];
  int server_socket;
  struct sockaddr_in server_name;
  int client_socket;

  printf("[*] SOCKET CREATING ..\n");
  if(-1 == (server_socket = socket(PF_INET,SOCK_STREAM,0)))
    {
      /*
    Echec de Socket()
      */
    }

  printf("[*] MEMORY INITIALIZING..\n");
  /* Initiation De l'espace memoir de la socket */
  memset( (char *) &server_name,0, sizeof server_name);

  server_name.sin_family = AF_INET;
  server_name.sin_port = htons(PORT);

  printf("[*] IP CONVERTING..\n");
  if(0 == inet_aton(IP,&(server_name.sin_addr)))
    {
      /*
    Echec de la convertion de l'adresse IP
      */    
    }

  printf("[*] NAME GIVING..\n");
  /*Attribution d'un nom*/
  if(-1 ==
     (bind
      (server_socket,
       (struct sockaddr *) &server_name,
       sizeof server_name)))
    {
      /*
    Echec de l'attributioon d'un nom à la socket
      */
    }
  
  printf("[*] LISTENNING..\n");
  /*Socket En Ecoute ..*/
  if(-1 == (listen(server_socket,0)))
    {
      /*
     Echec De l'ecoute ..
      */
    }
  

  if(-1 == (client_socket = accept(server_socket,NULL,0)))
    {
      /*
    Ipossible d'attribuer un ID a la socket du client connecté.
      */
    }
  printf("[+] CONNECTED !\n");  
  printf("[+] READING MESSAGE\n");
  
  if(-1 == read(client_socket,buf,1000)){
    printf("[-] FAILED TO READ() .. \n");
    exit(1);
      }
      printf("[+] MESSAGE RECEIVED : %s\n",buf);
  
  /* Fermeture de la socket du client  */
  shutdown(client_socket,2);
  close(client_socket);

  /* Fermeture de la socket du serveur */
  shutdown(server_socket,2);
  close(server_socket);


}
client.c
Code :
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#define IP "192.168.0.19"
#define PORT 5555

int main(int argc,char **argv)
{
  if(argc != 2){
    printf("Usage : %s <messagetoSend>\n",argv[0]);
    exit(0);
  }

  char tosend[1024];
  int taille = strlen(tosend);
  strncpy(tosend,argv[1],1023);
  int client_socket;
  struct sockaddr_in sin;

  if(-1 == (client_socket = socket(PF_INET,SOCK_STREAM,0)))
    {
      printf("[-] socket() FAILED\n");
      /*
    Echec de la creation de la socket
      */
      exit(1);
    }  

  /*Initiation de la memoire de la structure*/
  memset((char *) &sin, 0, sizeof sin);
  sin.sin_family = AF_INET;
  sin.sin_port  = htons(PORT);

    if(0 == inet_aton(IP,&(sin.sin_addr)))
      {
    printf("[-] inet_aton() FAILED\n");
    /*
      Echec de la convertion de l'IP
    */
    exit(1);
      }
  if(-1 == (connect(client_socket,(struct sockaddr *) &sin,sizeof sin)))
    {
      printf("[-] Connect() Failed (Maybe server is not running..)\n");
      /*
    Echec de la connexion !
      */
      exit(1);
    }

  printf("[+] CONNECTED !\n");
  /*On est connecté !*/
  printf("[*] SENDING : %s \n",tosend);

  if( -1 == write(client_socket,tosend,strlen(tosend)))
    {
      printf("[-] FAILED TO SEND : %s\n",tosend);
      exit(1);
    }
  printf("[+] %s WAS SENT\n",tosend);

  shutdown(client_socket,2);
  close(client_socket);
  
}

output ./server :
Code :
[13:37 sakiir@sakiir socket] > ./server
[*] SOCKET CREATING ..
[*] MEMORY INITIALIZING..
[*] IP CONVERTING..
[*] NAME GIVING..
[*] LISTENNING..
[+] CONNECTED !
[+] READING MESSAGE
[+] MESSAGE RECEIVED : message���|� // ICI :')
output ./client "message" :
Code :
[13:32 sakiir@sakiir socket] > ./client "message"
[+] CONNECTED !
[*] SENDING : message
[+] message WAS SENT
+1 (1) -1 (0) Répondre
15-03-2013, 15h40
Message : #2
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: [C] Socket Client-Serveur -> Write() + Read()
j'ai resolu tout seul le probleme , j'ai tout simplement mal utilisé la fonctione read()
Code :
while(ret = read(client_socket,buf,1023))
    {
      buf[ret] = 0;
      printf("[+] MESSAGE RECEIVED : %s\n",buf);

    }
voila Smile
+1 (0) -1 (0) Répondre
15-03-2013, 20h29
Message : #3
Creepy_p0ney Hors ligne
chef des poneys voodoo
*



Messages : 146
Sujets : 9
Points: 24
Inscription : Dec 2011
RE: [C] Socket Client-Serveur -> Write() + Read()
voilà :p tu peux essayer avec send/recv aussi et puis tu peux essayer de créer un serveur multiclient, comme ça c'est plus rigolo comme on dit "plus on est de fous plus on rit"
Penser que coder est coder explique-t-il la recursion ?
http://p0neyland.wordpress.com/
+1 (0) -1 (0) Répondre
15-03-2013, 21h23
Message : #4
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: [C] Socket Client-Serveur -> Write() + Read()
Si tu sait pas coment tourner ça, regarde sur le forum, j'ai un serveur multi-client en python. Faut simplement transcoder :')
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre
15-03-2013, 22h45
Message : #5
supersnail Hors ligne
Éleveur d'ornithorynques
*******



Messages : 1,613
Sujets : 72
Points: 466
Inscription : Jan 2012
RE: [C] Socket Client-Serveur -> Write() + Read()
Ben pour le multiclients soit tu bourrines à coup de threads, soit tu utilises select (et là ça devient funky sous win32 :') )
Mon blog

Code :
push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp

"VIM est merveilleux" © supersnail
+1 (0) -1 (0) Répondre
16-03-2013, 02h35
Message : #6
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: [C] Socket Client-Serveur -> Write() + Read()
supersnail : j'adore , le nombre de fois que j'ai vu win32 et funky se retrouver dans la meme phrase avec toi x)
+1 (1) -1 (0) Répondre
17-03-2013, 23h02
Message : #7
EpicOut Hors ligne
Membre actif
*



Messages : 121
Sujets : 10
Points: 23
Inscription : Feb 2012
RE: [C] Socket Client-Serveur -> Write() + Read()
faut vraiment s'appeler Conan le barbare pour le faire à coup de thread.
Plein de mouches peuvent rentrer en boucle close.
[Image: vQs9wRu.png]
+1 (0) -1 (0) Répondre
18-03-2013, 07h19
Message : #8
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: [C] Socket Client-Serveur -> Write() + Read()
(17-03-2013, 23h02)EpicOut a écrit : faut vraiment s'appeler Conan le barbare pour le faire à coup de thread.

euuuh ouai grave x)
+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  [C] serveur irc (non terminé) fr0g 0 703 21-05-2014, 22h27
Dernier message: fr0g
  [shellcode] Reverse shell over reused socket ark 4 1,618 11-03-2014, 11h51
Dernier message: Ark
  [C] Socket + envoie de commande notfound 27 6,839 26-04-2013, 20h41
Dernier message: Kiwazaru
  [C] Un mini-serveur HTTP -Moloch- 11 3,311 19-04-2013, 14h22
Dernier message: notfound
  NEED HELP / SOCKET;FILTRES XDR; RPC notfound 4 1,495 21-01-2013, 02h18
Dernier message: notfound
Exclamation READ-ME - Règles avant de poster Enila 0 730 19-11-2012, 18h22
Dernier message: Enila
  [C] Programme Serveur/Client Creepy_p0ney 1 946 13-10-2012, 14h13
Dernier message: Creepy_p0ney
  [C] Serveur multi-clients Creepy_p0ney 12 2,476 09-10-2012, 19h28
Dernier message: Creepy_p0ney

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut