• STATISTIQUES
  • Il y a eu un total de 2 membres et 23030 visiteurs sur le site dans les dernières 24h pour un total de 23 032 personnes!


    Membres: 2 604
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] PHPFreaks
    PHPFreaks est un site dédié à l'apprentissage et l'enseignement du PHP. Ici vous trouver...
    Programmation
    [FR] Root-me
    Script: 5, Système: 20, Cracking: 16, Cryptanalyse: 17, Programmation: 8, Réaliste: 11, Réseau: 10, Stéganog...
    Challenges
    [FR] frameip
    le site de partage des connaissances du monde TCPIP
    Protocole
    [EN] Hack This Site
    Hack This Site est considéré comme un réel terrain d'entraînement légal pour le...
    Hacking
    [FR] Asp-php
    Tutoriaux sur ASP, PHP, ASP.net, XML, SQL, Javascript, HTML, VML - Scripts et ressources pour webmasters - Forums d&#...
    Programmation
    [FR] Developpez.net
    Un forum communautaire qui se veut pour les développeurs en générale. Avec presque 500 000 membr...
    Programmation
    [EN] Framework Metasploit
    Le Framework Metasploit est un logiciel gratuit, open source de tests de pénétration développ&ea...
    Vulnérabilités

  • 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,608
Sujets : 71
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
Banni



Messages : 121
Sujets : 10
Points: 22
Inscription : Feb 2012
RE: [C] Socket Client-Serveur -> Write() + Read()
faut vraiment s'appeler Conan le barbare pour le faire à coup de thread.
+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 66 21-05-2014, 22h27
Dernier message: fr0g
  [shellcode] Reverse shell over reused socket ark 4 180 11-03-2014, 11h51
Dernier message: Ark
  [C] Socket + envoie de commande notfound 27 527 26-04-2013, 20h41
Dernier message: Kiwazaru
  [C] Un mini-serveur HTTP -Moloch- 11 220 19-04-2013, 14h22
Dernier message: notfound
  NEED HELP / SOCKET;FILTRES XDR; RPC notfound 4 153 21-01-2013, 02h18
Dernier message: notfound
Exclamation READ-ME - Règles avant de poster Enila 0 92 19-11-2012, 18h22
Dernier message: Enila
  [C] Programme Serveur/Client Creepy_p0ney 1 208 13-10-2012, 14h13
Dernier message: Creepy_p0ney
  [C] Serveur multi-clients Creepy_p0ney 12 234 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