| 
				
				 
					[C] Socket + envoie de commande
				 
			 | 
		
| 
				 
					23-04-2013, 15h27 
(Modification du message : 25-04-2013, 13h02 par notfound.)
				 
				
Message : #1 
			 | 
		|
							
							notfound 
 
#!/usr/bin/env bash ![]() Messages : 687 Sujets : 47 Points: 272 Inscription : Sep 2012  | 
			
	[C] Socket + envoie de commande 
	
	 
		Hi there ! 
				
				
				J'ai besoin d'aide concernant un programme que j'ai réalisé en C ! Je dois envoyer des commandes à un vidéoproj via câble Ethernet et j'ai pour l'occasion créé un programme qui se sert des sockets pour envoyer la commande ( i.e les commandes : PWR ON, PWR OFF). Or, mon problème est que lors de l'execution de mon programme, il y a bien établissement de connection etc, mais je ne retrouve pas (sous wireshark) ma commande envoyée ... Si quelqu'un aurait une idée ![]() Voici mon programme : Code C : 
A l'execution, j'obtiens : Code BASH : 
Sous Wireshark : ![]() PS : j'ai programmé en C car je ne connais pas d'autres langages pour l'instant, mais si vous souhaitez le faire en python ou autres, libre à vous. EDIT : J'ai réussi ! Wireshark c'est vraiment puissant quoi Merci à vous pour votre aide EDIT 2 : Voici mon code C fonctionnel Code C : 
PS : Je sais, system() c'est le mal.  | 
		
| 
				 | 
		|
| 
				 
					23-04-2013, 15h29 
				 
				
Message : #2 
			 | 
		|
							
							supersnail 
 
Éleveur d'ornithorynques ![]() ![]() ![]() ![]() ![]() ![]() ![]() Messages : 1,617 Sujets : 73 Points: 467 Inscription : Jan 2012  | 
			
	RE: [C] Socket + envoie de commande 
	
	 
		Et t'as quoi si tu fais "Follow TCP Stream" ?
		
			
		
	 
				
				
Mon blog 
				Code : push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp"VIM est merveilleux" © supersnail  | 
		
| 
				 | 
		|
| 
				 
					23-04-2013, 18h03 
(Modification du message : 24-04-2013, 14h12 par notfound.)
				 
				
Message : #3 
			 | 
		|
							
							notfound 
 
#!/usr/bin/env bash ![]() Messages : 687 Sujets : 47 Points: 272 Inscription : Sep 2012  | 
			
	RE: [C] Socket + envoie de commande 
	
	(23-04-2013, 15h29)supersnail a écrit : Et t'as quoi si tu fais "Follow TCP Stream" ? J'ai la chose suivante : ![]() EDIT : Avec le logiciel EPSON, j'obtiens la chose suivante en analysant la trame : ![]() Or, j'arrive à obtenir le début, mais pas la suite. Malgré le fait que j'envoie ensuite les autres instructions ... ![]() Quelqu'un aurait une idée de génie ?  
		
			
		
	 | 
		
| 
				 | 
		|
| 
				 
					23-04-2013, 18h25 
(Modification du message : 23-04-2013, 18h27 par gruik.)
				 
				
Message : #4 
			 | 
		|
							
							gruik 
 
gouteur de savon ![]() Messages : 757 Sujets : 44 Points: 483 Inscription : Oct 2012  | 
			
	RE: [C] Socket + envoie de commande 
	
	(23-04-2013, 15h27)notfound a écrit : Si quelqu'un aurait une idée ![]() ben j'ai l'impression que tu causes simplement pas exactement le même protocole que l'appareil en face sur la capture des paquets, on voit clairement l'établissement de connexion (SYN - SYN/ACK - ACK), tu envoies 1 paquet de données (PUSH), le serveur te répond un truc lui aussi (PUSH), puis l'un des deux met fin à la connexion (toi avec ton FIN à priori ?) et au niveau du "follow tcp stream" dans wireshark, on voit bien qu'un dialogue normal avec le videoprojecteur, on envoit un paquet (probablement pour dire bonjour), on recoit un paquet du serveur (le meme que tu recevais en envoyant ton PWR OFF), puis on envoit un 2nd paquet à priori pour lui demander la version du protocole ou du logiciel ou autre, le serveur répond et après seulement on renvoit un paquet avec la commande PWR OFF difficile de dire beaucoup plus, si vraiment tu galères ca pourrait etre une bonne idée de mettre les .pcap en piece jointe éventuellement...  | 
		
| 
				 | 
		|
| 
				 
					23-04-2013, 19h43 
				 
				
Message : #5 
			 | 
		|
							
							notfound 
 
#!/usr/bin/env bash ![]() Messages : 687 Sujets : 47 Points: 272 Inscription : Sep 2012  | 
			
	RE: [C] Socket + envoie de commande 
	
	 
		Est-ce que ça ne viendrait pas de mon code C ? 
				
				
				Code C : 
Peut-être ne faut-il pas que je close ma socket ?  | 
		
| 
				 | 
		|
| 
				 
					23-04-2013, 19h47 
				 
				
Message : #6 
			 | 
		|
							
							supersnail 
 
Éleveur d'ornithorynques ![]() ![]() ![]() ![]() ![]() ![]() ![]() Messages : 1,617 Sujets : 73 Points: 467 Inscription : Jan 2012  | 
			
	RE: [C] Socket + envoie de commande 
	
	 
		Ben ça dépend (comme le dit gruik) de comment c'est implémenté au niveau de ton vidéoprojecteur. 
				
				
Et comme j'ai dit iirc, le plus simple dans ce cas c'est de faire du reverse-engineering sur l'application "officielle" pour comprendre comment c'est fait. Et comme dit gruik (again :>), file-nous le .pcap de la transmission "officielle" faite par le prog epson pour y voir plus clair  
		
			
		
	
Mon blog 
				Code : push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp"VIM est merveilleux" © supersnail  | 
		
| 
				 | 
		|
| 
				 
					24-04-2013, 10h51 
				 
				
Message : #7 
			 | 
		|
							
							notfound 
 
#!/usr/bin/env bash ![]() Messages : 687 Sujets : 47 Points: 272 Inscription : Sep 2012  | 
			
	RE: [C] Socket + envoie de commande 
	
	 
		Le fichier .pcap du trafic entier "officiel" avec le logiciel EPSON  
				
				
				http://dl.free.fr/getfile.pl?file=/lSJuWFKk  | 
		
| 
				 | 
		|
| 
				 
					24-04-2013, 12h25 
(Modification du message : 24-04-2013, 12h27 par Kiwazaru.)
				 
				
Message : #8 
			 | 
		|
							
							Kiwazaru 
 
Padawan d'un super escargot ![]() Messages : 284 Sujets : 26 Points: 139 Inscription : Mar 2012  | 
			
	RE: [C] Socket + envoie de commande 
	
	 Code C : 
#include<sys/socket.h>On vois dans tes requêtes entre ton PC et ton VideoProjecteur : ESC/VP.net......ESC/VP.net.... .VER? VER=260051300BWWV121 VER=1XGV43 VER=263051WWV121 VER=---- VER=---- :LAMP? LAMP=11 :PWSTATUS? PWSTATUS=03 00000002 00000000 T1 F1 :SOURCE? SOURCE=41 :VER? VER=260051300BWWV121 VER=1XGV43 VER=263051WWV121 VER=---- VER=---- :SNO? SNO=QVTF281374L :MBSTATUS? MBSTATUS=01 01 :IMPWR OFF :IMEVENT=0001 04 00000002 00000000 T1 F1 :IMEVENT=0001 01 00000000 00000000 T1 F1 : Rouge: PC Bleu: VideoProjecteur EPSON On vois donc bien que le logiciel EPSON envoi des requêtes du style la version du vidéo-projecteur, la Source ... et ensuite il envoi "IMPWR OFF" autrement dit éteindre la machine, c'est peu être grâce à toute ces requêtes (VER?, SOURCE?) que le vidéo-projecteur va comprendre qu'une action va être effectué ou quoi (On ne peut pas trop en savoir plus, aucune doc existe apparemment). Dans le nouveau code C, on simule donc toute ses requêtes au lieu d'envoyer directement "IMPWR OFF'" que le vidéo-projecteur ne comprendra sûrement pas sans les requêtes VER?, SOURCE? préalablement envoyées. Ce n'est que déduction :p, pour le code je sais pas si on peut faire plus simple/propre. Donne nous des nouvelles du projet  
		
			
		
	
Toucher au Kernel, c'est un peut comme se shooter au LSD, on pense pouvoir tout faire mais ça finit souvent mal.
 
				 | 
		
| 
				 | 
		|
| 
				 
					24-04-2013, 13h00 
(Modification du message : 24-04-2013, 13h10 par gruik.)
				 
				
Message : #9 
			 | 
		|
							
							gruik 
 
gouteur de savon ![]() Messages : 757 Sujets : 44 Points: 483 Inscription : Oct 2012  | 
			
	RE: [C] Socket + envoie de commande 
	
	 
		je crois plutot que le probleme vient du fait qu'il n'envoit qu'un seul paquet et ferme la connexion, à mon avis envoyer un paquet bonjour / attendre la reponse du videoprojecteur / envoyer la commande IMPWR OFF doit suffire 
				
				
				edit: paquet bonjour : "ESC/VP.net\x10\x03\x00\x00\x00\x00" => doit recevoir du vp : "ESC/VP.net\x10\x03\x00\x00\x20\x00" paquet commande : "IMPWR OFF\n" => et là encore le vp renvoit qqes données suite à ça... j'imagine que le vp shutdown donc qu'on peut fermer la connexion comme un sale, à tester...  | 
		
| 
				 | 
		|
| 
				 
					24-04-2013, 13h16 
				 
				
Message : #10 
			 | 
		|
							
							Kiwazaru 
 
Padawan d'un super escargot ![]() Messages : 284 Sujets : 26 Points: 139 Inscription : Mar 2012  | 
			
	RE: [C] Socket + envoie de commande 
	
	 
		"ESC/VP.net\x10\x03\x00\x00\x00\x00" les \xXX\ derrière servent à quoi?
		
			
		
	 
				
				
Toucher au Kernel, c'est un peut comme se shooter au LSD, on pense pouvoir tout faire mais ça finit souvent mal.
 
				 | 
		
| 
				 | 
		|
| 
				 
					24-04-2013, 13h56 
				 
				
Message : #11 
			 | 
		|
							
							gruik 
 
gouteur de savon ![]() Messages : 757 Sujets : 44 Points: 483 Inscription : Oct 2012  | 
			
	RE: [C] Socket + envoie de commande 
	
	 
		c'est une notation hexadecimale, 0x41 == \x41 == 'A' == 101o (octal) == 0o101 
				
				
				sinon c'est très exactement ce qu'on voit transiter dans la capture en l'occurence, pour des raisons de lisibilité wirehsark remplace les caractères ASCII non-printable par des points '.'  | 
		
| 
				 | 
		|
| 
				 
					24-04-2013, 13h57 
				 
				
Message : #12 
			 | 
		|
							
							Kiwazaru 
 
Padawan d'un super escargot ![]() Messages : 284 Sujets : 26 Points: 139 Inscription : Mar 2012  | 
			
	RE: [C] Socket + envoie de commande 
	
	 
		Yep mais comment tu as su que c'était \x10\x03\x00\x00\x00\x00 0x10 puis 0x03 etc ? Vu qu'on ne vois que des points.
		
			
		
	 
				
				
Toucher au Kernel, c'est un peut comme se shooter au LSD, on pense pouvoir tout faire mais ça finit souvent mal.
 
				 | 
		
| 
				 | 
		|
| 
				 
					24-04-2013, 14h00 
(Modification du message : 24-04-2013, 14h02 par gruik.)
				 
				
Message : #13 
			 | 
		|
							
							gruik 
 
gouteur de savon ![]() Messages : 757 Sujets : 44 Points: 483 Inscription : Oct 2012  | 
			
	RE: [C] Socket + envoie de commande 
	
	 
		ben en fouillant dans les bons paquets (tcp push)et en regardant le détail, ou dans la vue "follow tcp stream" tu peux aussi switcher vers "raw" ou "C array" 
				
				
				edit: typiquement le paquet n°14 de la capture, dans la fenetre principale cliquer sur "data" met en surbrillance dans le paquet les octets en question par exemple  | 
		
| 
				 | 
		|
| 
				 
					24-04-2013, 14h11 
(Modification du message : 24-04-2013, 14h12 par notfound.)
				 
				
Message : #14 
			 | 
		|
							
							notfound 
 
#!/usr/bin/env bash ![]() Messages : 687 Sujets : 47 Points: 272 Inscription : Sep 2012  | 
			
	RE: [C] Socket + envoie de commande 
	
	 
		BTW, j'ai réussi hein (cf. edit 1er post)
		
			
		
	 
				
				
				 | 
		
| 
				 | 
		|
| 
				 
					24-04-2013, 16h52 
				 
				
Message : #15 
			 | 
		|
							
							Kiwazaru 
 
Padawan d'un super escargot ![]() Messages : 284 Sujets : 26 Points: 139 Inscription : Mar 2012  | 
			
	RE: [C] Socket + envoie de commande 
	
	 
		Yep j'ai look  
				
				
![]() Code C : 
char peer1_0[] = {On vois bien la chaîne "0x10, 0x03, 0x00, 0x00, 0x20, 0x00" qui donne ton code ensuite  
		
			
		
	
Toucher au Kernel, c'est un peut comme se shooter au LSD, on pense pouvoir tout faire mais ça finit souvent mal.
 
				 | 
		
| 
				 | 
		|
| 
				
				 
					« Sujet précédent | Sujet suivant »
				 
			 | 
		
| Sujets apparemment similaires… | |||||
| Sujet | Auteur | Réponses | Affichages | Dernier message | |
| [shellcode] Reverse shell over reused socket | ark | 4 | 3,078 | 
		11-03-2014, 11h51 Dernier message: Ark  | 
	|
| [C] Socket Client-Serveur -> Write() + Read() | sakiir | 7 | 3,869 | 
		18-03-2013, 07h19 Dernier message: sakiir  | 
	|
| NEED HELP / SOCKET;FILTRES XDR; RPC | notfound | 4 | 2,792 | 
		21-01-2013, 02h18 Dernier message: notfound  | 
	|
Utilisateur(s) parcourant ce sujet : 1 visiteur(s)

 Accueil du forum
 Liste des membres
 Qui est en ligne ?
 Recherche
 Calendrier
 Zine
 URL de redirection
 Classement (Top 100)
 Proposez un challenge!
 Hacking
 Hacking 
 Spirit of hack
 Messages: 32 822
 Client IRC en ligne
				


![[Image: 1366723639.png]](http://pix.toile-libre.org/upload/original/1366723639.png)


![[Image: 1366723910.png]](http://pix.toile-libre.org/upload/original/1366723910.png)
![[Image: 1366732939.png]](http://pix.toile-libre.org/upload/original/1366732939.png)
![[Image: 1366733056.png]](http://pix.toile-libre.org/upload/original/1366733056.png)
		
			
		
	
![[Image: batman-fle.png%5D]](http://1.bp.blogspot.com/-AJGnG4Bu-AM/UB7nMb4zxjI/AAAAAAAAARM/x9McuYGE7Ak/s1600/batman-fle.png%5D)