Précédent   Forum des professionnels en informatique > Systèmes > Linux > Matériel
Matériel Vos questions relatives à la configuration optimale et au support matériel
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/02/2006, 10h19   #1
Invité de passage
 
Inscription : mai 2004
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 24
Points : 2
Points : 2
Par défaut Espionner les données sur un port série

Salut,

Voilà, j'aimerai pouvoir espionner les données qui passent sur un port série (UART en RS232).
J'ai 2 équipements, qui communiquent en RS232, et je voudrais pouvopir rajoutter un cable "espion" qui se placera entre les 2 appareils. Ce cable serait relier à mon PC sous Linux et je voudrais pouvoir lire toutes les données qui passent sur le port série (Rx et Tx).
Comme il faut configurer le driver pour pouvoir lire Rx ET Tx, je ne sais pas faire...
Je voudrais savoir si vous connaissiez un soft capable de faire ca pour moi?
Si en plus il pouvait horodater les caractères se serait parfait

Alexis
greuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2006, 11h42   #2
Invité de passage
 
Inscription : mai 2004
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 24
Points : 2
Points : 2
Beuh... personne pour me répondre?
greuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2006, 12h33   #3
Membre éprouvé
 
Avatar de bster
 
Inscription : mai 2005
Messages : 373
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mai 2005
Messages : 373
Points : 469
Points : 469
déjà au niveau electronique ton cable vampire sera à 3 fils
masse+RX+TX

après pour le lire je sais pas trop sous dos à l'époque on faisait genre

more < com1 > LPT1 par exemple pour pomper les password telnet et faire des blagues sur le PC du prof d'informatique...

peut etre que tu peux essayer avec un
Code :
more < /dev/serial1 > fichier.dump
mais j'ai jamais testé ce genre de choses...
et y'a surement plus sur et efficace parceque là ça va copier brut bitàbit c'est à dire avec le protocolage les flags les adresses et toute l'encapsulation
par exemple dans le meilleur des cas tu vas avoir un truc style

Code :
XXXXFDDDDDDFXXXXXXXXFDDDDDDFXXXXXXXXFDDDDDDFXXXXXXXXFDDDDDDFXXXXXXXXFDDD
où seul les D sont de la donnée utilisateur.
bonjour la galère pour analyser derriere...

encore que pour l'analyse tu peux te fier à cette doc


PS: tu dois avoir sttyS0 ou sttyS1 au lieu de serial1
__________________
Comité de lutte contre le langage SMS sur les forums
Veuillez écrire dans un langage compréhensible par les humains, merci.
bster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2006, 14h00   #4
Invité de passage
 
Inscription : mai 2004
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 24
Points : 2
Points : 2
C'est justement les données brut que je veux, mais en RS232 il n'y aura pas de bourrage entre les données
Par contre un ne donnera à mon avis pas grand chose, puisque le driver est configuré en émission sur TX. Cela dit, je n'ai pas essayé. Mais j'attend d'etre à peu prè sur que ca puisse fonctionner avant de faire le cable.
A défaut d'un soft existant, ce qu'il me faudrait c'est pouvoir configurer RX et TX en réception. Mais je ne sais pas comment faire...
greuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2006, 14h07   #5
Membre éprouvé
 
Avatar de bster
 
Inscription : mai 2005
Messages : 373
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mai 2005
Messages : 373
Points : 469
Points : 469
pas mais sinon bien sur ça ne risque pas du tout de marcher...
j'ai pas de cable serie sinon j'aurai fait un test pour intercepter un telnet entre deux machine par une troisieme histroire de tester....
__________________
Comité de lutte contre le langage SMS sur les forums
Veuillez écrire dans un langage compréhensible par les humains, merci.
bster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2006, 14h18   #6
Invité de passage
 
Inscription : mai 2004
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 24
Points : 2
Points : 2
Tu ne penses pas que le driver risque de posé des problèmes pour la lecture de TX ?
Je vais essayer de faire un cable et tester alors
greuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2006, 14h22   #7
Invité de passage
 
Inscription : mai 2004
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 24
Points : 2
Points : 2
Je viens de tester la commande Elle me retourne:
Citation:
usage: more [-dflpcsu] [+no-de-ligne | +/patron] nom1 nom2 ...
a marche pô
greuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2006, 14h44   #8
Membre éprouvé
 
Avatar de bster
 
Inscription : mai 2005
Messages : 373
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mai 2005
Messages : 373
Points : 469
Points : 469
peut etre avec cat tail ou tout autre commande texte...

peut etre qu'un pipage serait plus approprié comme

:
__________________
Comité de lutte contre le langage SMS sur les forums
Veuillez écrire dans un langage compréhensible par les humains, merci.
bster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2006, 15h14   #9
Invité de passage
 
Inscription : mai 2004
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 24
Points : 2
Points : 2
J'ai essayé
Code :
1
2
3
more /dev/ttyS1
et
cat < /dev/ttyS1
Le résultat est le même, je ne vois que les caractères sur RX.
De plus, je perturbe le signal TX qui devient illisible pour tout le monde
greuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2006, 16h08   #10
Membre éprouvé
 
Avatar de bster
 
Inscription : mai 2005
Messages : 373
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mai 2005
Messages : 373
Points : 469
Points : 469
si tu vois le flux RX c'est qu'on touche à la solution et qu'un détail nous échappe....

mais lequel :
__________________
Comité de lutte contre le langage SMS sur les forums
Veuillez écrire dans un langage compréhensible par les humains, merci.
bster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2006, 16h26   #11
Invité de passage
 
Inscription : mai 2004
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 24
Points : 2
Points : 2
Pour moi c'est au niveau hard, la carte de mon PC émet un signal sur le TX, un des 2 autres apareils aussi, les signaux s'aditionne et c'est le zonzon. De plus comme le TX est en émission sur mon PC, je suis incapable de lire ce qui y passe.
C'est pourquoi j'aimerai être capable, via le driver du port série, de configurer TX comme une entrée.
Est-ce possible, là est la question...
greuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2006, 16h53   #12
Membre éprouvé
 
Avatar de bster
 
Inscription : mai 2005
Messages : 373
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mai 2005
Messages : 373
Points : 469
Points : 469
alors élimine pour l'instant la connection TX ça te permetra d'avoir une analyse RX propre.

ensuite tu cable le TX inter-appareil vers le RX du pc et tu refais l'analyse pour intercepter le signal TX inter-appareil

déjà tu devrait plus etre perturbé par les signaux emis par le PC sur les calbes inter-appreils. Pfiou ça me rappele bien des souvenir ce genre de bricolages la belle époque ou pour faire de l'informatique il fallait etre un peu éléctricien voir mécanicien....
__________________
Comité de lutte contre le langage SMS sur les forums
Veuillez écrire dans un langage compréhensible par les humains, merci.
bster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2006, 17h12   #13
Invité de passage
 
Inscription : mai 2004
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 24
Points : 2
Points : 2
C'est pas bete ca comme idée, mais en fait j'ai besoin de faire des captures simultanées de RX et TX (un horodatage précis de chaque caractère serait top moumoutte, mais faut que j'arrete de revé... )
Sinon il resterait la possibilité de capturer RX sur /dev/ttyS0 et de cabler TX sur le RX de /dev/ttyS1. Mais je n'ai alors plus aucun moyen de controler la synchro des 2 flux!
Qué misère ....

A part en arrivant je ne sais comment à reconfigurer le chip du port série, il reste une autre possibilié, c'est de mettre le PC entre les 2 équipements.
Je me suis déjà fait un micro soft pour ca, mais je me suis rendu compte que j'ai aussi besoin de certains signaux (DTR en l'occurence). Et ca je ne sais pas les recopier...
En plus mon soft est un peu pourris au niveau de la gestion des vitesses, et ca merde aussi un peu de temps en temps.... bref il m'en faudrait un tout fais
Un peu comme le soft de HHD pour Windows: "Free serial port monitor"

Pour info, le code de mon soft "pourri" (c'est juste comme ca, faut pas s'embeter à débugger):
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <fcntl.h>
#include <sys/select.h>
#include <sys/time.h>
#include <math.h>
#include <ctype.h>
 
#define MAX_BUF		2048
 
int max(int a, int b) {
	if (a>b) 
		return a;
	else
		return b;
}
 
int main(int argc, char **argv) {
	int fda, fdb;
	int ret;
	int i, n;
	unsigned char buffer[MAX_BUF];
	struct timeval tv, now;
	fd_set rfd;
 
	tv.tv_sec = 1;
	tv.tv_usec = 0;
 
	fda = open (argv[1], O_RDWR);
	fdb = open (argv[2], O_RDWR);
 
	while (1) {
		FD_ZERO (&rfd);
		FD_SET (fda, &rfd);
		FD_SET (fdb, &rfd);
		tv.tv_sec = 1;
		tv.tv_usec = 0;
 
		ret = select (max(fda, fdb) + 1, &rfd, NULL, NULL, &tv);
		if (ret == -1 && errno == EINTR) {
			continue;
		}
		if (ret < 0) {
			perror ("select()");
			exit (1);
		}
		gettimeofday (&now, NULL);
		if (FD_ISSET (fda, &rfd)) {
			n = read (fda, buffer, MAX_BUF-1);
			buffer[n]=0;
			printf("%d,%06d--(%02d):", (int)now.tv_sec, (int)now.tv_usec, n);
			for (i=0; i<n; i++) {
				if (isprint(buffer[i]))
					printf("%c  ", buffer[i]);
				else
					printf("   ");
			}
			printf("\n\t\t\t");
			for (i=0; i<n; i++) {
				printf("%02x ", buffer[i]);
			}
			printf("\n");
			write (fdb, buffer, n);
		}
		if (FD_ISSET (fdb, &rfd)) {
			n = read (fdb, buffer, MAX_BUF-1);
			buffer[n]=0;
			printf("\t\t\t\t\t\t\t\t");
			printf("%d,%06d--(%02d):", (int)now.tv_sec, (int)now.tv_usec, n);
			for (i=0; i<n; i++) {
				if (isprint(buffer[i]))
					printf("%c  ", buffer[i]);
				else
					printf("   ");
			}
			printf("\n\t\t\t\t\t\t\t\t\t\t\t");
			for (i=0; i<n; i++) {
				printf("%02x ", buffer[i]);
			}
			printf("\n");
			write (fda, buffer, n);
		}
 
	}
 
	return EXIT_SUCCESS;
}
greuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 14h22   #14
Invité de passage
 
Inscription : mai 2004
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 24
Points : 2
Points : 2
Bon, finalement j'ai developper un soft qui lit sur les Rx de 2 ports distincts.
J'ai bidouillé un cable "normal" sur lequel j'ai rajoutté 2 DB9 sur lesquelles je raporte TX et RX sur les RX des 2 DB9. (plus la masse évidement).
Et voilà
Y'a plus qu'a lire normalement sur 2 ports distincts.
greuh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h22.


 
 
 
 
Partenaires

Hébergement Web