Ethereal-dev: [ethereal-dev] Reading Sniffer files

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: gram@xxxxxxxxxxxxxxxxxxx (Gilbert Ramirez Jr.)
Date: Sun, 08 Nov 1998 02:33:16 -0600 (CST)
The following is a patch which introduces my wiretap library to the world.
I am developing wiretap as a direct corollary to my work on ethereal. It
will serve the same purpose as libpcap, but I intend to add more features,
and in the end ethereal (and other programs) will be able to use wiretap
instead of libpcap. (BTW, the #1 feature I want in wiretap is to have an
*easy* way to add new protocol filters to the library. This is _difficult_
in libpcap).

Anyway, wiretap doesn't do packet filtering yet. All it can do is read
packets from files. However, so far it can read both pcap and Network
General Sniffer trace files.  I say "Network General" because the newer
Windows-based Sniffer Pro from Network Associates appears to use a file
format different from the DOS-based Sniffer.

If you need "display filtures", then don't use wiretap. Since wiretap
doesn't do filtering yet, "display filters" are disabled by this patch.
You can still do capture filters, since capturing is still performed by
libpcap from within ethereal. Of course, you can capture with tcpdump (or
Sniffer).

Apply this patch to the current CVS image. You will get some new files
under ethereal/wiretap. Unfortunatly, I'm not a wizard at this
autoconf/automake thing, so you'll have to:

cd wiretap
make   (and maybe edit your Makefile if your glib is in a different place
than mine)

then edit your ethereal Makefile to add  -Iwiretap to CFLAGS and add
wiretap/wtap.a to the LIBS variable (which is empty now).

Then 'make' ethereal, and you now have a binary that can read both pcap
and sniffer files. The sniffer file format is the same for the ethernet
sniffer and the token-ring sniffer, but I had to guess as to which field
in the header of the file denotes the datalink type. I only have one
sample *enc file. I have a token-ring sniffer at work, so I have plenty of
those. Please test this on your sniffer files and see if I guessed right.
If I messed up, please send me a sample Sniffer file so I can take a look at
it.

If someone will help me with the autoconf/automake thing so that

1) wiretap can be compiled from the ethereal 'make' and
2) wiretap is not included by default, but as an option in './configure'

then I'll add lots of #ifdef's so that the wiretap patch an be optionally
compiled, and then I can make a diff against ethereal-0.4.1 for those
people who don't have CVS access. Once I get more testing on ethernet
sniffer files, and have the autoconf stuff taken care of, then I'd like to
merge the work into the CVS tree.

BTW, I am working on adding the LANAlyzer file format to wiretap. I have
made wiretap modular so that many file formats can be supported.


Feel free to send me any questions,

--gilbert


begin 644 wiretap-01-cvs.patch.gz
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
MKMFI[.(#]WA@xxxx.7$=4S X=4SNA92=6&!Q.!,)1Z3%;"2[DO*P]SYT0=F4
MOIQNP4%^605KQUU*EAKF+BH09I V^PNDK(+P]\PU</LOZ1IE:*2#MD2.A+.9
MO^ BA>A(PYI00LA>NII@@MFCC\/Q+^?78W8T^L0^'EU>'HW&G_JD 6B _)8+
M9O@-% [PAL$%AA?=@_B"Q]G@\O@7(#IZ-SP=CC_A,-X/Q[#V7;'WYY?LB%T<
M78Z'Q]>G1Y?LXOKRXOQJT&#LBO,8\!A9%>H)X*CKM-^WP)DY;IC@\ FF/9RE
M.2I4/0>S7X;(GCQW8ET__K*O*(-P'[^; *Q:D_>%I1O#*1?TBGG7V- S&QK;
MV>VQ,PAQV-$MS/*Q,9\$>.U58V='K-EN=?8U=GUUU,B_?Z"X@OQ)9I$5AB]N
M6VO,"*9AH]&H,ENZ"[!BF#*-Q0V^_Y[:9)=I\@LK#/Y@_X(V&RN,5&\J#MBK
ME0[ZJ_3@3IY/_Y =*S@IM:!?*.<7BKE!'K)2;\4?'V3PPN17=HE%@*Z%/S)O
MC\[+%TG[?"S_6V#$EY@3)-;$0LIOK,Q7JB,A^7V4+PB$E-]]V=T]:*_&06UQ
MP_DY;P33UW?BVQ+BMW>84:?;\_05*UOQ2Y@P=EYRSXQ>)?V>DRWZ A^8R:WD
M3=(]O4@R9_S_>[O:IC9R)/QY\BLFKEK68SO&8V.2A;!5'!MNJ>+ 9?B0NQSE
M,L8!+\;CLH< 6YO_?MVMUKO&C)VMXT/BT;M:4JO5W7HTND?)"_GBY*M&3P26
MM7P<C4 4 "X_1;7P*+N=3?X<WU I0XJ^:Z(UP\Q#X'1?N1*HTC8464VD<CPH
M%IKPB'H)/)N$-]55='ZI(BT(&D$=RQBC$27F8#9E[]9Y"]-.A[/A].7/%6E'
MV0PVT'QP,\T'>3;0<$-5C(50<9Z#<3J'4M&^2I1!@6B^0#F3;*Y4NF%"Q.]:
M %+0[F*#6H!?2%G6GQ!@!&%%D$QW.V#IK5KQBA,Z%8'U0AVL)=*X*K"],"P1
M'8BX!WIPE:+]+:2[LT%?5 ,KB^M*DEB*=PEAH[7OQI0AG$R8-H^S>Y!<9^C1
M\8)Z^?CA1>-.+77=*L]!",5'5+MMSBH$GF-+!N87+9? 4Q)WR)Q>=P*[B*84
M%QC=9BC:BM5 JM/O7CUG_[PX.SD^_M0O5YDY*>_6J>?T\.SP]-__*5N/.:%7
MUX/_,0>OH, ^OI%*.+L!YC+EDEB^#XTQ8NO$"!0+0[QD:%2+P\SG&=JUT,J'
M@$_(C5#(I-*E9YB:\:+YVD%(C;!P$-I\@'V*"-('W9+L\2Y5=7BXUZ]5C7ZI
M6L.#7Z)6V.V'C]-\3T^6@B%&"_'PADY'TH!+=F8:N&I"*,9CM/#&3]M9?)NQ
MO:3"M9-EA+8D8#10EIAWPK#JUONFSK^Q58S.QGQ(>U%(J#D3STIID26/Y,KW
MWA@."B![;(G2"%U%*H;2;JLE"Y1QL\<'.*I*4XDF/R&G :=%;&&.M"IFBPH0
M#HX".!>W<P.O=FGL>V_J:VU\8A]0JBLT0-XT<"O")IB0-0*TD8!C(@G@&-PU
M]IS*V4^%H)J9YH0]9D UUR-=.>X+^'^5;:);LC($BZ0Y);$DPXU+$-5,C:RT
M=NGBWQ[$KQ1@;T AB&2>QG)/P=8U"9 32V\]#]/K]JASLU.Z(!+,!+37D-IC
M;)K4&0H+@A"KS9/2:3#B>@1CZ.&.JL+TO+3@#B'#"B%%"2C8X&,Z"B]S<Z<]
M85V46&&X#=^![#(="P<1%!*I(R<_/XBE"YPYQU7-<YI3*R;?B)>9*I, N(<S
M#5XLBA!9FGBJIB+8$0;"EWJSH#Q\F@9QZCK[QKE]@B:"ZCZ/T"O2WCT,=ZNS
M<8[*1W6ROQ!L.ZZ.DA4+-"1BAE;E/EM<&-JZT[EZ=?FIHC==@U05H;1VVJ^O
MJTZ[](QG^-K=*^9V7![,W='#7%9;N>S3/ADS.EY<*;\VK26EZ."NJ[68\G/:
MNE;3_P05,[-[!<DWI0_<1)6XR>,D,,A;S^TN-SZX[ )^Z=*4K]"!W0)W2A9X
MV;>*HCRW ^ 5V:)*6+^"=V%WQ=E+=8YDK]].+[&'K>>?6NW/9$17#1$BGCI]
MVYS1F6U(/F/&26#M5:-)6'KRW"=KB<F/D:C\/;0HE7!EKDQ8\=/IS\L892"2
M:G!1-E>LRM!AKL2J;+^^*%7)/[XH2ZS)\DN2 -&!(V=W2U%%(G:SM-4BW.F"
MN/=E*]BN^6F42+H/A[A\,H71)@X*,QBDPB6Z^9&ZE49[10U4@3F0JS<Q/9 4
M]@6Y$'7"N2O1<,+DRG3#0VE_).RR7R;5Q>E)SPWK];P@O(M2ICAQX>+O[AJ.
MOK5["HK#*%SQN*U0R^G;!D6Z.2-%6$%G)-A$2V=F=VY>M/<Z.[[WA3!9!M1O
M.DB7*=1R. ]5&"U<C^>PJ*I3(=XC8SF2&(Z3.3(E>'&Q:H"BKL>1[,HJ17QF
M2U5 S,:6FJVFO"9S'[@RMYW;W,;,';E>I^W%Z JUC1O5E*Y:4= C,70B,TKB
MAH;Z[5GA_:(2=1B!/Z=%+BT"3-ELA]2JR/UXEI$/MVB+,&Z#]+.GO-C(()U]
MQ6],H3P$BT:?KTAIZ'*ML0E+.O75@Q77_;G%AQ0D0;YLYM\&ZJV60-QC.!*X
M@G@:R"[=3!**-[:>5.]E1F]77N<REN*K#*# %\)(\&,,Q@5A;MLWJ^VK74&&
M@#.)L8RC/QYG]T00,Z#M!G140+H;J?4D S#%CINEBS3=%^J(E9PK^$Z:[#;=
MZBIBZB(R3&X1MPFE.:?A0P?9.KM[W0 7_\7FXB%KBVE803H\#"<S4N,/%[<C
MJ6:IP<<W0]<>LZY=N,[5E.9MJ460BB??B 5NA.,O+Q#/HEZ@DJ^\&):10=0H
MC )I)Q!W?NY7<]*[[!\>?:KHS1YY'A+"%$%=&U_E$;<CX&Q+"U.93AA(MR_%
MYXNB5Y0H6WI5\(X2M^NM?"G!T%E+RP";$J3VVCXS!32FOP(C0^'8"?YX$$NY
MV*L#.TQ]-$;?SL[=)L6JKET5A.^.&(71%N T0!<0X(<K12Z:U44+4T2&%Z:(
MVV1A<D['$KIK(0+PPGS?75^\DL<"C=*-=X/P&M+@:8%.FXMU'P.((A_,?U]>
M?QT(C=2"'TW@JK1"^4T=IV7->.;$%?9<*QPFJJ@K"*[*_L#11R7R?.\7LA=K
M?:R<$OJ9*5LW*&>^D93%&GG<0E[G/,52IB>4TG+0MGOD%6^_Q^)6899AI=1*
M<U62^Q*,=[(O0UZ7=NKQ)YM^#NVZK9:Z,JH!WJ62L035*.D:LX"XV\BH(]0X
M7\OI-) >##&,!^)H#4=U?CI$SG4YS1N\)FIDNS/.V1.MYW.[AW6L/;W=Q25_
M[JM^<].YVPW9[" #:(CF^AS_Z0[UA55/QM$&L0D?4H+=VI/O1OQT RQZPJ*X
MK+TJV,V6$G ;O@xxxxxx\?;O_S\.1X.Y78L"+P\\\2&4[WQM/5%G1)?LLX21
M"SK"BEBCP4R30/):$BL:):_)]6);6+7?%$CS(F[C7<R5X4&\#"@)TI:^HQ&+
MG0!=F^&G]&V.]9,=TET03X(],9O$.QMH.$'/D&-Z-@.^*!O]XSC$8M@V:T(_
M66IB[2 AG;0<]0T>+%O!6*D+@P1I,,%E'S.W@W&HNL+83C"VUZ/(G6 DJK,P
MMAN,%4HLB-Z5E_.U=8I4V^B;>SVFHS-ZS/+H^20P9<< #90<'@7ZKYA5B "V
M7!Z@@:W$#M!!"^*1Z*@?RP(Y1+]WW,9,_"0WG-_?,8+E2QJ!IRV,('G-Z%?!
MC#SV8&BPL(YOPVF<ZX,FG"O%V=\(B<6G.$S(*TC$WJHU<^-)F+&M>!:E%F!G
MB54NYR$E,;65!#14[-Q)S1I^& **OKF$?KJ1J;,*Q#H*%DPA[FLHW=&UO.H4
M8*[17!G:Q5M >.,*?ZEC)!P2BA^%5NWWA".JA _R&[F0[;\B*=@R@A(-DE>$
MX/U2$AO9AN:F16^E/+I?0J#TBRR6U/:9O?3$JW32+YX\^/'IQB6Q9GK$L8D7
M%-!_?1CS&W;HQ3+$&_-H=420%&+:9'Y#M_:7!OLX"@LV+)?'L70@SY\R=&W_
MBM[Y%GP'%]VDHM"F)\PU7Y;3*]TXP[MS.LGSZ5B^TKH8SQ?CY7B6"^ %M6%(
MSC*G/E7G21Q7JZP>2N+PWW^%*[K[I_/5^.<'6(CS>BOY^/'#7X79XH)L*61K
M)8G7R*G9R$X[4%E[I[BV@FQ86;J[=K8V=VW-;!WJFM4S-KW-D[^=_.EFY&\%
MR$^-G!J-#/9L _*W-R-_NAGY6XK\9N\DL%K4$H]BD\'_W73X DO8-KU;($L*
M@BY*,=\G%!UG(,)5(>PZ":3M0-(V)7T&5C1!]S?8+G6^3BC;X>=V-^I@KD.$
M5P?>T!_>3++X\'.SW?52]_KG*+?M8/K>(LO'T&CX'Y'P+K-[8%1]?K;-RG7T
M^^'Y1=3%3$=WPVSI)6#4NFB7W"/@(T8,._:)\9,?]H^P%>^IU?3;2T)2X@=,
M< &D #*<8LQ)S^\1"HR_1)(?O\NS=\0/J7O9*)MZ.4B*3&DL":O/:]WEOP;]
MXZ-TYT,G2FGH3D^/MB_.#GO&:*-#4O[@Y049%&1"&L3%\"G47NS8X!\7OP%!
;4QHV^+U]?E&BFS+7CI%K19__!SGFT+8QB   
 
end
-- 
Gilbert Ramirez                Voice:  +1 210 358 4032
Technical Services             Fax:    +1 210 358 1122
University Health System       San Antonio, Texas, USA