PDA

View Full Version : Sniffare RS232 DTE


gfucka
13-12-2018, 12:00
Ciao a tutti,
vorrei chiedervi di aiutarmi a capire se è possibile sniffare una porta seriale avendo solo il DTE.
Mi spiego meglio:
ho una centralina che controlla la stufa a pellet che ha una porta seriale rs232 a cui può essere collegato un modem GSM che consente di controllare la scheda stessa (start, stop, status). Dato che il modem GSM non si trova più in giro e costa anche tantissimo mi chiedevo se fosse possibile capire quali comandi il DCE (modem) invia alla centralina per accendere e spegnere la stufa in modo da replicarli con un arduino o altro simile.

Io non ho il modulo GSM ma sono riuscito a trovare il manuale di tale modulo con le indicazioni della comunicazione seriale.

Secondo voi è possibile in qualche modo emulare tale modem e inviare i segnali alla centralina oppure senza modem non si può??

Grazie mille

sottovento
14-12-2018, 21:01
Si, puoi. Ovviamente ti serve un computer con una scheda seriale (non se ne trovano piu' tanti in giro, ma esistono in circolazione i convertitori USB-Serial).
Prendi i segnali sui pin 2 (send), 3 (receive) oltre ovviamente al 7 (massa) e li porti al tuo computer. Li puoi semplicemente duplicare.
Dopo di che programmi la tua seriale con i parametri che hai trovato sul manuale (7/8 bit di dati, parita' pari/dispari/nessuna, baud rate, # bit di stop) e ti premuri di disabilitare sia l'handshake hardware sia XON/XOFF.

A questo punto ti fai un piccolo programmino che legge da seriale e mostra a schermo quello che hai letto. Puoi ora impartire il comando e vedere cosa passa.
Se sei fortunato non hai nemmeno bisogno del programmino perche' il Terminal di Windows puo' mostrare i dati, ovviamente se ASCII (per questo devi essere fortunato).

gfucka
15-12-2018, 08:20
Grazie per la risposta.
Ok. La scheda ha un uscita/ingresso rs232 su un rj11 quindi devo trovare o realizzarmi un cavo rj11 a d-sub. Sapresti dirmi come farlo??

Poi non mi è chiaro un passaggio, dopo aver collegato la seriale al PC e fatto il programmino o il terminale di Windows che comandi lancio?? Dal manuale del modulo GSM so che inviando via SMS Start alla SIM la scheda fa partire la stufa. Dato che il modulo GSM sembra essere un modulo commerciale e non realizzato ad hoc forse il comando ricevuto via SMS lo rigira pari pari alla scheda . Che dici??

Volutomitra
15-12-2018, 14:00
Grazie per la risposta.
Ok. La scheda ha un uscita/ingresso rs232 su un rj11 quindi devo trovare o realizzarmi un cavo rj11 a d-sub. Sapresti dirmi come farlo??

Lato connettore DB9 (che va al PC o al convertitore RS232/USB) dovrai sicuramente collegare il pin 2 (rx), 3 (tx) e 5 (massa). Ripeto il 5, non il 7 come indicato in precedenza.
Dovresti anche essere sicuro che sia RS232 e non TTL. Inoltre potrebbe anche essere necessario dover collegare altri pin se la stufa prevede il controllo di flusso.

Lato rj11 non esiste uno standard purtroppo, la cosa più semplice è prendere il cavetto che va dal modulo GSM alla stufa e verificare le connessioni con un tester.

Tra l'altro: se il modulo GSM entra con un cavo seriale, puoi usare quello direttamente per connetterti...

Poi non mi è chiaro un passaggio, dopo aver collegato la seriale al PC e fatto il programmino o il terminale di Windows che comandi lancio?? Dal manuale del modulo GSM so che inviando via SMS Start alla SIM la scheda fa partire la stufa. Dato che il modulo GSM sembra essere un modulo commerciale e non realizzato ad hoc forse il comando ricevuto via SMS lo rigira pari pari alla scheda . Che dici??

Può essere ma di solito si usano protocolli un pochino più evoluti, magari con un carattere di start e uno o più di controllo.
L'unica cosa da fare è mettersi in mezzo tra modem e stufa e vedere cosa viaggia sulla seriale. Non conoscendo il protocollo comunque non si tratta di un'impresa semplicissima (anche se non impossibile) perché dovrai anche capire qual è il baud rate e quali sono i parametri (lunghezza dati, bit di stop, ecc...)

gfucka
15-12-2018, 16:59
Il problema è che non ho il modem...
Chiedevo, appunto, se si può provare ad inviare comandi alla scheda dal PC senza avere il modem..
I parametri e il baud rate li ho perché sul manuale della scheda ci sono scritti i parametri per connettersi col PC...

Volutomitra
15-12-2018, 19:27
Il problema è che non ho il modem...
Chiedevo, appunto, se si può provare ad inviare comandi alla scheda dal PC senza avere il modem..
I parametri e il baud rate li ho perché sul manuale della scheda ci sono scritti i parametri per connettersi col PC...

Beh, se non hai il modem è impossibile capire quali sono i comandi. Sul manuale non sono riportati? Nemmeno la piedinatura del connettore rj11?

Al limite cerca modelli simili e vedi se riesci a scoprire qualcosa in rete...

gfucka
16-12-2018, 11:46
Dal manuale la piedinatura dovrebbe essere quella dell'immagine allegata.
Per quello che riguarda i comandi so che inviando Start alla SIM nel modem la stufa si accende, inviando Stop si spegne e inviando Status la scheda risponde con lo stato attuale. Dato che il modem è uno che si trova in commercio e non credo proprio lo abbia fatto la casa produttrice della scheda della stufa (è identito al wavecom m1306b) immagino che il modem giri pari pari il comando ricevuto alla scheda....

https://photos.app.goo.gl/tTiC5PWahTyqt2Gy9

Volutomitra
16-12-2018, 13:02
Dal manuale la piedinatura dovrebbe essere quella dell'immagine allegata.
Per quello che riguarda i comandi so che inviando Start alla SIM nel modem la stufa si accende, inviando Stop si spegne e inviando Status la scheda risponde con lo stato attuale. Dato che il modem è uno che si trova in commercio e non credo proprio lo abbia fatto la casa produttrice della scheda della stufa (è identito al wavecom m1306b) immagino che il modem giri pari pari il comando ricevuto alla scheda....

https://photos.app.goo.gl/tTiC5PWahTyqt2Gy9

Se il cavetto dal modulo alla stufa è pin-to-pin (dritto), allora dovrai collegare il pin 6 (RX) al pin 3 del DB9 (TX), il pin 2 (TX) al pin 2 del DB9 (RX) e il pin 9 (GND) al pin 5 del DB9 (sempre GND del DB9 ovviamente).
Eventualmente vedi se devi collegare anche i pin per il controllo di flusso.
Comunque se cerchi il pinout del DB9 in rete capisci subito come fare.

Per i comandi non ti resta che provare.

Ripeto, senza uno dei due elementi è arduo capire il protocollo, si può solo andare a tentativi e sperare di indovinare. Auguri! ;)

!fazz
18-12-2018, 11:31
Si, puoi. Ovviamente ti serve un computer con una scheda seriale (non se ne trovano piu' tanti in giro, ma esistono in circolazione i convertitori USB-Serial).
Prendi i segnali sui pin 2 (send), 3 (receive) oltre ovviamente al 7 (massa) e li porti al tuo computer. Li puoi semplicemente duplicare.
Dopo di che programmi la tua seriale con i parametri che hai trovato sul manuale (7/8 bit di dati, parita' pari/dispari/nessuna, baud rate, # bit di stop) e ti premuri di disabilitare sia l'handshake hardware sia XON/XOFF.

A questo punto ti fai un piccolo programmino che legge da seriale e mostra a schermo quello che hai letto. Puoi ora impartire il comando e vedere cosa passa.
Se sei fortunato non hai nemmeno bisogno del programmino perche' il Terminal di Windows puo' mostrare i dati, ovviamente se ASCII (per questo devi essere fortunato).

se per questo basta usare termite che con gli opportuni plugin (tutti free) ti permette di fare di tutto con le seriali log lettura binario scrittura binario ecc ecc

ps se il radiomodem è standard molto probabilmente su seriale passano i comandi at che sono testuali

ad esempio
https://www.developershome.com/sms/howToSendSMSFromPC.asp

gfucka
19-12-2018, 12:22
se per questo basta usare termite che con gli opportuni plugin (tutti free) ti permette di fare di tutto con le seriali log lettura binario scrittura binario ecc ecc

ps se il radiomodem è standard molto probabilmente su seriale passano i comandi at che sono testuali

ad esempio
https://www.developershome.com/sms/howToSendSMSFromPC.asp

Ok, da quello che leggo al link che mi hai girato per leggere gli SMS devo interrogare io il modem, quindi, ne deduco che è la scheda stessa che interroga, immagino ogni secondo, il modem per sapere se ci sono nuovi messaggi e se uno di questi è uno start/stop/Status agisce di conseguenza andando ad accendere/spegnere la stufa...

A questo punto dovrei simulare un modem e fare in modo che ci sia un SMS non letto con il comando (es. start/stop).

Giusto??

!fazz
19-12-2018, 12:31
Ok, da quello che leggo al link che mi hai girato per leggere gli SMS devo interrogare io il modem, quindi, ne deduco che è la scheda stessa che interroga, immagino ogni secondo, il modem per sapere se ci sono nuovi messaggi e se uno di questi è uno start/stop/Status agisce di conseguenza andando ad accendere/spegnere la stufa...

A questo punto dovrei simulare un modem e fare in modo che ci sia un SMS non letto con il comando (es. start/stop).

Giusto??

è un idea, dipende un po da come è fatta la scheda ma sicuramente è la prima strada che intraprenderei io se dovessi fare reverse engineering di quel sistema

gfucka
19-12-2018, 13:33
è un idea, dipende un po da come è fatta la scheda ma sicuramente è la prima strada che intraprenderei io se dovessi fare reverse engineering di quel sistema

Ok, quindi collego un cavo rj11 a db9 al convertitore seriale/USB e poi al PC e poi come procedo? Dovrei vedere se effettivamente la scheda invia comandi AT al "presunto" modem.

Termite mi permette di farlo?

!fazz
20-12-2018, 13:49
Ok, quindi collego un cavo rj11 a db9 al convertitore seriale/USB e poi al PC e poi come procedo? Dovrei vedere se effettivamente la scheda invia comandi AT al "presunto" modem.

Termite mi permette di farlo?

la procedura giusta sarebbe


individuare il pin di trasmissione
individuare il formato rs 232 / UART TTL / UART VLTTL /RS485
costruire l'interfaccia adeguata
decodificare i messaggi


ora per i primi punti serve un oscilloscopio per il terzo un saldatore e per la decodifica termite va bene

in alternativa puoi fare tutto con un mso ma se lo sapresti usare non chiederesti

_angelo_
22-12-2018, 13:34
Ciao,
interessante la cosa,

se il connettore e' db9 e soprattuto se vi era collegato un modem non vedo come il protocollo possa essere TTL o logic level. Sara' molto probaiblmente 232 USART.

Questo non vuol dire affatto che si comunichi con i comandi AT. Specie se il modem "non si trova piu", e quindi forse era qualcosa di specifico, Io lo ritengo improbabile. Probabilmente il lato "modem" e' un dispositivo apposito che con un suo protocollo seriale qualunque inventato sul momento, tipo #on #off, controlla la stufa.

Avendo il suo modem, con un oscilloscopio serio che magari qualche amico possiede, tipo Tektronix, ti fa la decodifica di tutti i dati che passano e ti mostra il treno di byte.

Alcuni documenti utili:
http://tesi.cab.unipd.it/52660/1/STUDIO_DI_UNA_SCHEDA_DI_CONTROLLO_DI_UNA_STUFA_A_PELLET.pdf
https://www.google.com/search?client=firefox-b&ei=cSweXLOHLpLTkgWhgJKQBA&q=controllo+stufe+comandi+AT&oq=controllo+stufe+comandi+AT&gs_l=psy-ab.3...2394.6657..6792...0.0..0.138.2810.0j26......0....1..gws-wiz.......0j0i71j0i131j0i67j0i22i30j33i21j33i160j33i22i29i30.GzgT9UklNvw