File: 52.html

package info (click to toggle)
lg-issue48 2-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 2,284 kB
  • ctags: 139
  • sloc: xml: 324; makefile: 34; sh: 34
file content (344 lines) | stat: -rw-r--r-- 12,757 bytes parent folder | download
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
<!--startcut ======================================================= -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<META NAME="generator" CONTENT="lgazmail v1.3A.e">
<TITLE>The Answer Guy 48: Snooping on a Serial Port</TITLE>
</HEAD><BODY BGCOLOR="#FFFFFF" TEXT="#000000"
	LINK="#3366FF" VLINK="#A000A0">
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<H4>"The Linux Gazette...<I>making Linux just a little more fun!</I>"</H4>
<P> <hr> <P>
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<center>
<H1><A NAME="answer">
	<img src="../../gx/dennis/qbubble.gif" alt="(?)" 
		border="0" align="middle">
	<font color="#B03060">The Answer Guy</font>
	<img src="../../gx/dennis/bbubble.gif" alt="(!)" 
		border="0" align="middle">
</A></H1> 
<BR>
<H4>By James T. Dennis,
	<a href="mailto:linux-questions-only@ssc.com">linux-questions-only@ssc.com</a><BR>
	LinuxCare,
	<A HREF="http://www.linuxcare.com/">http://www.linuxcare.com/</A> 
</H4>
</center>

<p><hr><p>
<!--  endcut ======================================================= -->
<!-- begin 52 -->
<H3 align="left"><img src="../../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Snooping on a Serial Port</H3>


<p><strong>From Rudy Moore  on Mon, 11 Oct 1999  
</strong></p>
<!-- ::
Snooping on a Serial Port
~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
How can I snoop what an application is sending and receiving from a
serial port?
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Look for ttysnoop.  Here are a few URLs:
</BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
ttysnoop-0.12c-4.i386 RPM
<DD><A HREF="http://rufus.w3.org/linux/RPM/contrib/libc5/i386/ttysnoop-0.12c-4.i386.html"
	>http://rufus.w3.org/linux/RPM/contrib/libc5/i386/ttysnoop-0.12c-4.i386.html</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
[freshmeat] ttysnoop
<DD><A HREF="http://freshmeat.net/appindex/1999/09/05/936520647.html"
	>http://freshmeat.net/appindex/1999/09/05/936520647.html</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
<A HREF="http://www.debian.org/">Debian</A> GNU/Linux -- ttysnoop
<DD><A HREF="http://www.debian.org/Packages/unstable/admin/ttysnoop.html"
	>http://www.debian.org/Packages/unstable/admin/ttysnoop.html</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE>
You might also look at:
</BLOCKQUOTE>
<BLOCKQUOTE><DL><DT>
Debian GNU/Linux -- ttylog
<DD><A HREF="http://www.debian.org/Packages/unstable/utils/ttylog.html"
	>http://www.debian.org/Packages/unstable/utils/ttylog.html</A>
</DL></BLOCKQUOTE>
<BLOCKQUOTE>
... which is a similar program.  You could probably use the
'alien' package (<A HREF="http://kitenet.net/programs/alien"
	>http://kitenet.net/programs/alien</A>) to
convert the Debian package into some other format (like
RPM).
</BLOCKQUOTE>
<BLOCKQUOTE>
I trust you will be using these for ethical purposes.
</BLOCKQUOTE>
<P><STRONG><IMG SRC="../../gx/dennis/qbub.gif" ALT="(?)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
(Not sure if you prefer long or short questions, but I can elaborate if
you'd like more information.)
</STRONG></P>
<P><STRONG>
Rudy
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I prefer questions that provide just enough information
that I can answer them.  I like them to be just general
enough that they will be useful to some significant number
of the Linux Gazette readers and to the many people who
find my back issues using Yahoo!, Google, Alta Vista, Deja
and just specific enough that I can answer them in less
than five pages.
</BLOCKQUOTE>
<BLOCKQUOTE>
Oddly enough yours is the first question I can remember that
actually asked what sort of questions I prefer.
</BLOCKQUOTE>

<!-- sig -->


<!-- end 52 -->

<p><hr width="40%"><p>

<!-- begin 52 -->
<H3 align="left"><img src="../../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>More on: Snooping on a Serial Port</H3>


<p><strong>From rudy on Wed, 13 Oct 1999  
</strong></p>
<!-- ::
More on: Snooping on a Serial Port
~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
The problem with ttysnoop is that it's heavily oriented toward spying on a
network connection - which is different from protocol analysis.  The first
begs the "ethical?" question, the second implies reverse engineering - or
debugging.  And I would venture to say that debugging in this manner is
really just a form of reverse engineering, so...
</STRONG></P>
<P><STRONG>
I wrote a PERL frontend to strace and have made a pretty darn useful
protocol analyser.  At some point in the future, I'll post my code so others
can benefit from it.
</STRONG></P>
<P><STRONG>
Thanks for the reply!
Rudy
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
I agree that ttysnoop isn't well-suited for
protocol analysis.  However, I was unable to find
any tools specifically for that.
</BLOCKQUOTE>
<BLOCKQUOTE>
One thing that would be cool would be a modified form
of the serial device driver --- one that could used
to capture and log data as it is passed from the
interface to the userspace process.
</BLOCKQUOTE>
<BLOCKQUOTE>
This has shades of "STREAMS" gathering like storm clouds
over it.  The ability to attach filters into the streams
of data on UNIX device driver is a major feature of STREAMS.
There is an optional set of STREAMS patches (LiS) available
for Linux.  However, they are not part of the standard
interfaces and drivers (and probably never will be).
</BLOCKQUOTE>
<BLOCKQUOTE>
One of the key arguments against STREAMS in the mainstream
Linux kernel is that we have the driver sources available.
If we need to add custom filtering, logging, etc, into
those at a low level --- we should modify the driver.
This prevents the rest of the drivers from suffering
from bloat and performance restrictions that would be
necessary to fully support the STREAMS infrastructure.
(Those are the arguments as I remember and understand
them.  I'm not a kernel or device driver developer
and don't really have a qualified opinion on the whole
debate).
</BLOCKQUOTE>
<BLOCKQUOTE>
Of course, if the 'strace' solution is working for you, then
use it.  It sounds interesting and useful.  However, if
'strace' doesn't do it, or it costs too much load for
your purposes, maybe you could use a patched driver.
</BLOCKQUOTE>

<!-- sig -->


<!-- end 52 -->

<p><hr width="40%"><p>

<!-- begin 52 -->
<H3 align="left"><img src="../../gx/dennis/qbubble.gif" 
	height="50" width="60" alt="(?) " border="0"
	>Another Call for Serial Snooping</H3>


<p><strong>From VETTER Joe  on Tue, 12 Oct 1999  
</strong></p>
<!-- ::
Another Call for Serial Snooping
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:: -->
<P><STRONG>
Hi,
</STRONG></P>
<P><STRONG>
I have a program which communicates through the serial port to a data
logger. The program is not very functional and I would like to reproduce it.
The problem is I do not know the commands to send to request data from the
data logger. I am looking for a program which will monitor the data passing
in and out of the serial port, without actually stopping the other program
from using the serial port. Any ideas ?
</STRONG></P>
<P><STRONG>
Thanks in Advance
</STRONG></P>
<BLOCKQUOTE><IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
	HEIGHT="28" WIDTH="50" BORDER="0"
	>
Look for ttysnoop.  This is a package that is
specifically designed to "listen in on" Linux ttys
(serial or console).
</BLOCKQUOTE>
<BLOCKQUOTE>
Here's the Freshmeat pointer:
</BLOCKQUOTE>
<BLOCKQUOTE><BlockQuote>
<A HREF="http://freshmeat.net/appindex/1999/09/05/936520647.html"
	>http://freshmeat.net/appindex/1999/09/05/936520647.html</A>
</BlockQuote></BLOCKQUOTE>

<!-- sig -->


<!-- end 52 -->
<!--startcut ======================================================= -->
<P> <hr> <P>
<H5 align="center"><a href="http://www.linuxgazette.com/copying.html"
	>Copyright &copy;</a> 1999, James T. Dennis 
<BR>Published in <I>The Linux Gazette</I> Issue 48 December 1999</H5>
<H6 ALIGN="center">HTML transformation  by
	<A HREF="mailto:star@starshine.org">Heather Stern</a> of
	Starshine Technical Services,
	<A HREF="http://www.starshine.org/">http://www.starshine.org/</A> 
</H6>
<P> <hr> <P>
<!-- begin tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::-->
<TABLE WIDTH="95%"><TR VALIGN="center" ALIGN="center">
<TD colspan="2" rowspan="2"><A 
	HREF="../lg_answer48.html"
	><IMG SRC="../../gx/dennis/answernew.gif"
              ALT="[ Answer Guy Current Index ]"></A>
<TD colspan="2" rowspan="2"><A 
	HREF="../../tag/kb.html"
	><IMG SRC="../../gx/dennis/answertoc.gif"
              ALT="[ Index of Past Answers ]"></A></td>
  <TD WIDTH="11%"><A HREF="../lg_answer48.html#greeting"><img
	src="../../gx/dennis/smily.gif" alt="greetings" border="0"></A></TD>
  <TD WIDTH="11%"><A HREF="1.html">1</A></TD>
  <TD WIDTH="11%"><A HREF="2.html">2</A></TD>
  <TD WIDTH="11%"><A HREF="3.html">3</A></TD>
  <TD WIDTH="11%"><A HREF="4.html">5</A></TD>
</TR><TR VALIGN="center" ALIGN="center">
  <TD WIDTH="11%"><A HREF="5.html">5</A></TD>
  <TD WIDTH="11%"><A HREF="6.html">6</A></TD>
  <TD WIDTH="11%"><A HREF="7.html">7</A></TD>
  <TD WIDTH="11%"><A HREF="8.html">8</A></TD>
  <TD WIDTH="11%"><A HREF="9.html">9</A></TD>
</TR><TR VALIGN="center" ALIGN="center">
  <TD WIDTH="10%"><A HREF="10.html">10</A></TD>
  <TD WIDTH="10%"><A HREF="11.html">11</A></TD>
  <TD WIDTH="10%"><A HREF="12.html">12</A></TD>
  <TD WIDTH="10%"><A HREF="13.html">13</A></TD>
  <TD WIDTH="11%"><A HREF="14.html">14</A></TD>
  <TD WIDTH="11%"><A HREF="15.html">15</A></TD>
  <TD WIDTH="11%"><A HREF="16.html">16</A></TD>
  <TD WIDTH="11%"><A HREF="17.html">17</A></TD>
  <TD WIDTH="11%"><A HREF="18.html">18</A></TD>
</TR><TR VALIGN="center" ALIGN="center">
  <TD WIDTH="10%"><A HREF="19.html">19</A></TD>
  <TD WIDTH="10%"><A HREF="20.html">20</A></TD>
  <TD WIDTH="10%"><A HREF="21.html">21</A></TD>
  <TD WIDTH="10%"><A HREF="22.html">22</A></TD>
  <TD WIDTH="11%"><A HREF="23.html">23</A></TD>
  <TD WIDTH="11%"><A HREF="24.html">24</A></TD>
  <TD WIDTH="11%"><A HREF="25.html">25</A></TD>
  <TD WIDTH="11%"><A HREF="26.html">26</A></TD>
  <TD WIDTH="11%"><A HREF="27.html">27</A></TD>
</TR><TR VALIGN="center" ALIGN="center">
  <TD WIDTH="10%"><A HREF="28.html">28</A></TD>
  <TD WIDTH="10%"><A HREF="29.html">29</A></TD>
  <TD WIDTH="10%"><A HREF="30.html">30</A></TD>
  <TD WIDTH="10%"><A HREF="31.html">31</A></TD>
  <TD WIDTH="11%"><A HREF="32.html">32</A></TD>
  <TD WIDTH="11%"><A HREF="33.html">33</A></TD>
  <TD WIDTH="11%"><A HREF="34.html">34</A></TD>
  <TD WIDTH="11%"><A HREF="35.html">35</A></TD>
  <TD WIDTH="11%"><A HREF="36.html">36</A></TD>
</TR><TR VALIGN="center" ALIGN="center">
  <TD WIDTH="10%"><A HREF="37.html">37</A></TD>
  <TD WIDTH="10%"><A HREF="38.html">38</A></TD>
  <TD WIDTH="10%"><A HREF="39.html">39</A></TD>
  <TD WIDTH="10%"><A HREF="40.html">40</A></TD>
  <TD WIDTH="11%"><A HREF="41.html">41</A></TD>
  <TD WIDTH="11%"><A HREF="42.html">42</A></TD>
  <TD WIDTH="11%"><A HREF="43.html">43</A></TD>
  <TD WIDTH="11%"><A HREF="44.html">44</A></TD>
  <TD WIDTH="11%"><A HREF="45.html">45</A></TD>
</TR><TR VALIGN="center" ALIGN="center">
  <TD WIDTH="10%"><A HREF="46.html">46</A></TD>
  <TD WIDTH="10%"><A HREF="47.html">47</A></TD>
  <TD WIDTH="10%"><A HREF="48.html">48</A></TD>
  <TD WIDTH="10%"><A HREF="49.html">49</A></TD>
  <TD WIDTH="11%"><A HREF="50.html">50</A></TD>
  <TD WIDTH="11%"><A HREF="51.html">51</A></TD>
  <TD WIDTH="11%"><A HREF="52.html">52</A></TD>
  <TD WIDTH="11%"><A HREF="53.html">53</A></TD>
  <TD WIDTH="11%"><A HREF="54.html">54</A></TD>
</TR><TR VALIGN="center" ALIGN="center">
  <TD colspan="3"><A HREF="55.html">55</A></TD>
  <TD colspan="3"><A HREF="56.html">56</A></TD>
  <TD colspan="3"><A HREF="57.html">57</A></TD>
</TR></TABLE>
</TR><TR VALIGN="center" ALIGN="center">
<!-- end tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::::-->
<P> <hr> <P>
<!-- begin lgnav ::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<A HREF="../index.html"
	><IMG SRC="../../gx/indexnew.gif" ALT="[ Table Of Contents ]"></A>
<A HREF="../../index.html"
	><IMG SRC="../../gx/homenew.gif" ALT="[ Front Page ]"></A>
<A HREF="../lg_bytes48.html"
	><IMG SRC="../../gx/back2.gif" ALT="[ Previous Section ]"></A>
<A HREF="../../faq/index.html"
	><IMG SRC="../../gx/dennis/faq.gif"
              ALT="[ Linux Gazette FAQ ]"></A>
<A HREF="../lg_tips48.html"
	><IMG SRC="../../gx/fwd.gif" ALT="[ Next Section ]"></A>
<!-- end lgnav ::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
</BODY></HTML>
<!--endcut ========================================================= -->