bright@dataioDataio.UUCP (Walter Bright) (02/07/86)
Here's a program I wrote a while back to look at any file and dump out any ascii strings in it. It's fun to try it out on various MS-DOS files to see what strings are embedded in them. It's very useful to run strings on new suspect public domain programs before you run them to get some idea of what they do (like 'trashing hard disk'). To compile it with Datalight C: DLC -mci strings which will generate STRINGS.COM. For those who just want to run it, a uuencoded version follows. --------------- Source code starts ------------- /*_ strings.c 05-Feb-86 Walter Bright */ /************************************************** * Find the printable strings in a file. * Copyright (C) 1986 by Northwest Software * All Rights Reserved * Use: * strings file */ #include <stdio.h> #define BUFMAX 255 /* buffer size */ char buffer[BUFMAX + 1]; int bufpnt; /* index into buffer[] */ int number = 3; /* min string length */ FILE *fin; /* input file */ bool flag_h = FALSE; /* TRUE means dump offset in hex */ long offset; int xc; main(argc,argv) int argc; char *argv[]; { int i; if (argc != 2) { fprintf(stderr,"Error: wrong number of arguments\n"); fprintf(stderr,"Use: strings file\n"); exit(1); } fin = fopen(argv[1],"rb"); /* open file for binary read */ if (!fin) { fprintf(stderr,"Can't open file '%s'\n",argv[1]); exit(1); } offset = 0; while (TRUE) { offset += bufpnt; bufpnt = 0; xc = fgetc(fin); /* read char from file */ offset++; while (isprint(xc) && bufpnt < BUFMAX) { buffer[bufpnt++] = xc; xc = fgetc(fin); } if (bufpnt >= number #if 0 && (xc == '\0' || xc == '\n' || xc == '\r' || xc == '$' || bufpnt == BUFMAX) #endif ) { buffer[bufpnt] = '\0'; if (flag_h) printf("%5lx ",offset - 1); printf("%s\n",buffer); } if (xc == EOF) break; } } bool isprint(c) int c; { return c >= ' ' && c <= '~'; } ---------- Source code ends ------ STRINGS.COM starts --------- begin 644 strings.com MZWJ0K"PP>"X\"7<JBL@R[:P*P'0</"!T&#P)=!0L,'@5/ EW$3+DD;\* /?G M \CKWXD.A +#NJT ZQVZ_@#K&(L><@ [XW8-.R9X '<'@3^J574!P[J$ +0) MS2&X 0!0Z M##-(3P"<@F+[(I& K1,S2'_-GP ,\!0R_JX<!BY! #3Z(S) M \&.V(P&? "+V"L>? ")'GH )HL> @ KV('[ !!R [O_#XO0 ]-"L033XX[0 MB^.!Z_ $@?L G<%NI< ZY/[M##-(:-^ #P"<P6ZR@#K@HS CMB,T([ OH M_*PRY(O(O_ $\Z0RP*J,T([81X'G_O^)/G( QP6J5;[P!+L" *P\/74#Z/7^ M"L!T+SP@=/ \"73L@_M =@:ZY0#I,_].B;<J (/# JP*P'0//"!T!#P)=?,R MP(A$_^O%T>N)'B@ BQZ$ H'[ )S![L HD>A (#'G( <BV#PQ%R*('C\/^) M'G8 B1YX +$$T^N)'G0 QYZ (X&? #ZM$K-(8S9CL%S!_NZEP#IQ_Z+)G@ M^X,^@@( ="&X\/\K!G8 4.C& EL]__]T"@4" %#H2P);ZP;'!H(" "X*@!0 M_S8H .@\ >AT_C/ 4.BB#U6#[ 2)Y8-^" )T([@J E"X @-0Z'T$B>RX3 )0 MN (#4.AP!(GLN $ 4.AU#XGLN%\"4(M>"H/# O\WB5X"Z*0"B>RC( ()P'4; MBUX"_S>X8@)0N (#4.@Z!(GLN $ 4.@_#XGLQP8D @ QP8F @ H1P"F8G# MB= !'B0"$08F L<&' ( /\V( +HB@^)[*,H H,&) (!@Q8F @#_-B@"Z'8 MB>P)P'0E@3X< O\ ?1VA* *+'AP"_P8< HB'' '_-B "Z% /B>RC* +KSJ$< M CL&'@)\,XG#QH<< 0"#/B(" '08H28"BQXD H/#_Q7__U!3N'@"4.BS XGL MN!P!4+A^ E#HI@.)[(,^* +_= /I7/^#Q 1=PU6)Y8M&!#T@ 'P%/7X ?@0S MP.L#N $ 7</IROY5B^R+1@2+7@:#^P%T!O?C"])U>U#H&0"#Q (+P'00B_B+ MT(M-_M'I23/ \ZN+PEW#58OLBT8$!0, )?[_/00 <DV] @"+-FP B\[K!HOW M._%T)HL\.P-W]'02 \4[ W0,*\4!!(LTBPLKR(D*AP6)!(DV< "- UW#4.CI M %L]__]T# 4" %#H;@!;B^SKI3/ 7<-5B^R+7@2#ZP*+#XM&!@4# "7^_RO( M<AJ#^01R$(O[ _B)#8/' HD'5^@Y %^+1@3K,?]V!NAF_XOE"\!TOE"+=@2+ M^(M,_CM-_G8#BTW^T>E)_/.E_W8$Z H @\0""\!8=9E=PU6+[(M>!+T" #L> M> !V6CL>=@!S5/?# 0!U3BO=BP>+-G ._-R![YL .L"B_>+/#OS<S4[^W<$ M._YW\(L* \X[RW4$ 0+K"8E' HD_B1R+\XDV< "+ @/&.\=U"(L%B02+ P$" M,\!=P[C__UW#58OLBUX$@\,/@>/P_W0UB].Q!-/KB\L#'G0 <B>!^_\/=R$# M'GH !HX&? "T2LTA!W(1H78 B]B)%P$6=@ !#G0 7<-=N/__PU6#[ *)Y<=& M .H"BT8 N=H#.\%S((G#]T<&(P!U$5#_=@C_=@;H-P")[(/$ EW#@T8 #.O6 M,<"#Q )=PU6)Y8M>"/='!B, = 93Z#X+B>S_=@C_=@;_=@3H! ")[%W#58/L M!HGE@WX* '1$@WX. '0^BUX*@#\ =#8QP(E& (E&!(M>#/]&#(H',.0]<@!T M##UA '0./7< = [K$\=& $ ZQ/'1@0! ,=& ( ZP<QP(/$!EW#BUX,@#\K M=0B!3@ @ /]&#(M>#( _8G0%@4X 0 #W1@ @ '0DN ( 4/]V"NA0#8GLB48" M/?__=7LQP%#_=@KH40V)[(E& NMK]T8 @!T5H-^! !T0+@! %#_=@KH'PV) M[(E& CW__W40,<!0_W8*Z" -B>R)1@+K.K@" % QP#';4%/_=@+H1PV)[#W_ M_W4#Z6;_ZQXQP%#_=@KH] R)[(E& NL.,<!0_W8*Z- ,B>R)1@*+1@*+7@Z) M1P@]__]U ^DU_XM& *D@ '0#)?S_B4<&,<")!XE'"C' B4<$B4<"B=B#Q 9= MPU6)Y?\VA@+_=@3H20N)[%W#58GEBT8$HX8"C48(4/]V!KA5!U#H:@")[%W# M58GEQP:& O8"C48&4/]V!+A5!U#H3P")[%W#58GEBT8$BQZ( O\&B *(!UW# M58/L HGEBT8&HX@"C48*4/]V"+B<!U#H'P")[(E& G >04QP(E& (M>!@-> M ,8' (M& (/$ EW#58/L3HGEQT8 "+7E3_1E2*!S#DB48$"<!U ^D1"#TE M '024/]64HGL"<!Y ^D'"/]& .O5QT8.B@+'1D0 (M>5/]&5(H',.2)1@0) MP'0JOY("N00 _/*O=1__90:!3D0! .O:@4Y$ @#KTX%.1 0 Z\R!3D0( .O% M,<")1A*#?@0J=2F+7E:+#XE.$H-&5@()R7D*@4Y$ 0#WV8E.$HM>5/]&5(H' M,.2)1@3K-X-^!#!U!8%.1$ _W8$Z.T+B>P)P'0@BT82N0H ]^D#1@0%T/^) M1A*+7E3_1E2*!S#DB48$Z]0QP(E&%(-^!"YU=8%.1( BUY4_T94B@\P[8E. M!(/Y*G4GBUY6BP^)3A2#1E8""<EY"(%F1'__B484BUY4_T94B@<PY(E&!.LW M@WX$,'4%@4Y$0 #_=@3H;0N)[ G =""+1A2Y"@#WZ0-&! 70_XE&%(M>5/]& M5(H',.2)1@3KU(-^!&QU%(%.1! BUY4_T94B@<PY(E&!.L8@WX$3'42@4Y$ M( "+7E3_1E2*!S#DB48$BT8$OZ("N1 _/*O= /ICP;_91Z+7E:+!XE&0(-& M5@)0Z-P*B>R)1D+W1D2 '4#Z3L%BTX4.\A] XE.0H-^0@!X ^DH!3' B49" MZ2 %QD86)>L.BUY6B@<PY(A&%H-&5@*-1A:)1D#'1D(! .G^!,=&1@H _W9$ MC4964.@I!HGLB48(B5X&B48,B5X*,<DQ]H?6Z#L+A]9Y%,=&- $ ]]CWVQT M (E&#(E>"NL%QT8T #_=D3_=C3HNP:)[(E&#NMDQT9&" #K!<=&1@H BT9$ M#0 "4(U&5E#HRP6)[(E&#(E>"NM @4Y$ ''1D80 (M&1 T E"-1E90Z*D% MB>R)1@R)7@J+3D3WP0@ =!>)P0G9=!&#?@18=06XBP+K [B. HE&#HU&,XE& M0(M&"@M&#'1CBT8,BUX*B<>+1D:9B=&)QHGXA];H\@F'UHGP!3 BUY B >+ M7D" /SEV$?=&1 != 6X!P#K [@G 'BT9&F8G1B<:+1@R+7@J'UNBZ"8E> M"HE&#/].0(G!"=EUHO]&0.L&BUY Q@<PC48T*T9 B49".T84? /IOP.+1A0] M'@!^!K@> (E&%(M&%"M&0HE& HM& O]. @G = O_3D"+7D#&!S#KZXM&%(E& M0NF* _=&1( =07'1A0& (M>5HM'!HM/ HL7BU\$B48\B5XZB4XXB58V@T96 M"(UV-%:-=DA6_W844%-14NB<]8GLB48^C486B49 _W9$_W8TZ$,%B>R)1@Z# M?D@ ?PF+7D#_1D#&!S"#?D@ ?B&+1D"-3C,[P7,7BUX^_T8^B@<PY(M>0/]& M0(@'_TY(Z]F#?A0 ?P?W1D0( '19BUY _T9 Q@<N@WY( 'DBBT84_TX4"<!^ M&(M&0(U.-#O!<PZ+7D#_1D#&!S#_1DCKV(M&%/].% G ?AZ+1D"-3C0[P7,4 MBUX^_T8^B@<PY(M>0/]&0(@'Z]B+1D"-3A8KP8E&0HE.0.F( O=&1( =07' M1A0& (M>5HM'!HM/ HL7BU\$B48\B5XZB4XXB58V@T96"(UV-%:-=DA6BW84 M1E904U%2Z)CTB>R)1CZ-1A:)1D#_=D3_=C3H/P2)[(E&#HM>/O]&/HH',.2+ M7D#_1D"(!XM&% G ?PB+1D2I" !T,8M>0/]&0,8'+HM&%/].% G ?AZ+1D"- M3B\[P7,4BUX^_T8^B@<PY(M>0/]&0(@'Z]B+1@2+7D#_1D"(!XM&-M'@"T8X M"T8Z"T8\= /_3DC_=DB-1D!0Z$(#B>R+1D"-3A8KP8E&0HE.0.FD ?=&1( M=07'1A0& (M>5HM'!HM/ HL7BU\$B48\B5XZB4XXB58V@T96"(UV-%:-=DA6 M_W844%-14NBV\XGLB48^C486B49 _W9$_W8TZ%T#B>R)1@[_3DB+1D@]_?]\ M"#M&%'\#Z8P BUX^_T8^B@<PY(M>0/]&0(@'_TX4BT84"<!_"(M&1*D( '1# MBUY _T9 Q@<NBT84_TX4"<!^'HM&0(U.+SO!<Q2+7C[_1CZ*!S#DBUY _T9 MB ?KV/=&1 @ =0O_=D#H#0.)[(E&0(-^!&=U!;AE .L#N$4 BUY _T9 B ?_ M=DB-1D!0Z$ "B>SIB@"#?D@ >0F+7D#_1D#&!S"+1DC_3D@)P'@ABT9 C4XS M.\%S%_].%(M>/O]&/HH',.2+7D#_1D"(!^O5@WX4 '\']T9$" !T0XM>0/]& M0,8'+HM&%/].% G ?AZ+1D"-3C0[P7,4BUX^_T8^B@<PY(M>0/]&0(@'Z]CW M1D0( '4+_W9 Z%X"B>R)1D"+1D"-3A8KP8E&0HE.0.L6BUY6BP>)1DJ#1E8" MBTX B<.)#^D%^?]V#NB,!8GLB480]T9$ 0!U" -&0CM&$GPOBT80 48 QT8" M "+1@([1A!]'(M>#O]&#HH',.10_U92B>P)P'D#Z>X _T8"Z]R+1A*+3D(# M3A [P8E.3'XW]T9$ 0!U,"O! 48 B48"BT8"_TX""<!T'O=&1$ = 6X, #K M [@@ %#_5E*)[ G >0/II #KV(M>#H _ '0LBT80 48 QT8" "+1@([1A!] M&8M>#O]&#HH',.10_U92B>P)P'AS_T8"Z]^+1D(!1@#'1@( (M& CM&0GT9 MBUY _T9 B@<PY%#_5E*)[ G >$?_1@+KWXM&$CM&0G\#Z0KX]T9$ 0!U ^D M^"M&0@%& (E& HM& O]. @G =0/IZO>X( !0_U92B>P)P'@*Z^2+1@"#Q$Y= MP[C__X/$3EW#58/L!(GE]T8*$ !T%8M>"(LWBTP"BS2)3@*)=@"#!P3K)(M> M"(L?BP>9B<.)T(E& HE> /=&"@ "= 6!9@( (M>"(,' HM& HM> (/$!%W# M58/L HGEBUX&BP>)1@"+1@@)P'D*]]B)1@BX+0#K [@K (M> /]& (@'BT8( M/6, ?AJY9 "9]_D%, "+7@#_1@"(!XM&")GW^8E6"(M&"+D* )GW^04P (M> M /]& (@'BT8(F??Y@\(PBUX _T8 B!>+1@"+7@:)!X/$ EW#58GE@WX$ '0% MN.("ZQJ+1@:I @!T!;CD NL-J00 = 6XY@+K [CH EW#58GEBUX$@'__,'4% M_TX$Z_*+7@2 ?_\N=0/_3@2+1@1=PU6#[ :)Y8-^"@!U"+C__X/$!EW#QT8 M "+7@J+1P:)1@*I(P!T'*D$ '4)4^A9 (GLB48 BUX*_W<(Z),"B>P)1@#W M1@($ '4HBUX*BT<$"<")1@1T"%#H8_.)[.L3BUX*BT<*"<")1@1T!E#HP &) M[+@, % QP%#_=@KH9 :)[(M& (/$!EW#58/L!HGEBUX*@\,&BP<E%@ ] @") M7@)U98MV"H-\! !U"8MV"H-\"@!T4XMV"HM$ HMV"HM,!"O!B48 "<")3@1T M'XMV"O]T"E!1BW8*_W0(Z+ !B>P[1@!T!XM> H$/$ "+7@KW1P: '0%N !0 MZP.X *)!XM'!(E' NL'BUX*QP< (M>"O='!A = 6X___K C' @\0&7<-5 MB>6X 0!0Z 0 B>Q=PU6#[ *)Y<=& .H"BT8 N=H#.\%S%8G#]T<&(P!T!E#H MK/Z)[(-& SKX?]V!NB_[HGL@\0"7<-5B^R+1@2+7@8]"@!U$_='!D = RX M#0#H!P"+1@2+7@9=_P]X$/R+?P*,PHY'"JJ.PHE_ L-34.A] H/$!,-5B^R+ M7@3_#WD-4^C+ XOE"\!U,8M>!(MW OR,V8Y?"JR.V3+DB7<"]T<&0 !T%CT- M '32/1H =0RX__^!3P8( ,<' !=PU6+[(M>!+1(S2%R EW#,\!=PU6+[(%^ M! 0<_+_=@3HWO^#Q (+P'06!H[ B]B+3@31X='A,\ S__SSJP>+PUW#58OL MBT8$!H[ M$G-(0>X !S 4A=PU6+[(M>!(M6!HM."+0_S2%S [C__UW#58OL M'HM&"H[8BUX$BU8&BTX(M#_-(1_KX%6+[(M>!(M6!HM."+1 S2%S [C__UW# M58OL'HM&"H[8BUX$BU8&BTX(M$#-(1_KX(S8PU6+[(M6!(I&!K0]S2%S [C_ M_UW#58OLBU8$BTX&M#S-(7,#N/__7<-5B^R+7@2T/LTA<P6X___K C/ 7<-5 MB^R+5@2T0<TA<P6X___K C/ 7<-5B^R+7@2+5@:+3@B*1@JT0LTA<P>X__^+ MV.L$B]B+PEW#51Z#["R+[(O5M!K-(8M6,K1.S2&+1AR+7AJ#Q"P?7<-5B^R+ M?@0SP+G___SRKHO!]]!(7<-5B>6+7@1#BH?N S#D)8 7<.+\O?FB_B+P_?A M _B+P_?F ]>+V(O"PXOQB_H+RG0^5;T! OV>!)U!X?WO1$ Z_-%T>?1U@OV M>?>+R(O3,\ SVSOQ=PMR!#OZ=P4KUQO.^='3T=#1[M'?377F7<.X__^+V#/) M,]+#"\!Y'??8]]L= +R7DH]]GWVH/9 .B7__?9]]J#V0##"\EYB_?9]]J# MV0#H@?_WV/?;'0 P^AV__?9]]J#V0#K[#O!=0Y0,\ [VG0&=P-(ZP% 6,-5 M@^P&B>6+7@R#PP:+!ZD@ (E& HE>!'0()?[_#0( B0>+7@R+1P:)1@(E&@ ] M @!T ^D< 8M& JD$ '0JN $ 4(U."E&+7@S_=PCH!_Z)[#T! '0#Z?$ BUX, MQP< (M&"H/$!EW#BUX,@W\$ '5<@W\* '56@SZ" @!T"[@ !5#H2OV)[.L" M,<"+7@R)1PJ+7@R#?PH = >!3P: .M7N "4.@O[HGLBUX,B4<$BUX,@W\$ M '4)N 0 B4<&Z7S_Z,']BUX,B4<*ZRN+7@R+1P*+3P0KP8E& G B4X"=!90 M_W<*4%'_=PCH?_V#Q B)P5@[P752BUX,BT<$B4<"BUX,]T<&@ !T(K@! %"- M1@I0_W<"_W<*Z-(!B>R+7@S_1P*+7@S'!_]/ZQ6+1@J+7@R+=P+_1P*(!(M> M#,<'_P&+1@J#Q 9=PXM>#(%/!A BUX,QP< +C__X/$!EW#58/L!HGEBUX* M@\,&BP>I( ")1@")7@)T""7]_PT! (D'BUX*@\,&BP>)1@ E&0 ] 0")7@)T M ^D2 8MV"H/&!(,\ (EV!'0#Z8( BWX*@WT* '5YBT8 J00 =4Z#/H(" '0+ MN %4.@$_(GLZP(QP(M>"HE'"@G =2:X )0Z/7LB>R+7@2)!PG =0F+7@*! M#P0 ZQ7HC?R+7@J)1PKK+8M>"H%/!H ZR.+1@JYZ@(KP;D, )GW^8G#C8?: M XM>"HE'!.A>_(M>"HE'"HM>"HM'!(E' O='!H B48 =!?_=PJY %!14/]W M".CN^XGLBUX*B0?K(XM>"O='!@0 = 6X 0#K [@ E#_=P+_=PCHLON)[(M> M"HD'BUX*_P^+!PG B48 >3,]__]U%X/#!H$/" "+!ZD@ (E> '0.@2?O_^L( MBUX*@4\&$ "+7@K'!P N/__@\0&7<,QP(/$!EW#58OLBWX$BT8&BTX(_/.J MBT8$7<-5B^P>BTX$CMF+=@:+?@B+3@KSI!]=PU6+[ :+3@2.P8M^!HMV"(M. M"O.D!UW# 3F]R=&AW97-T($,L('=R:71T96X@8GD@5V%L=&5R M($)R:6=H= !C )@ M ; &P M #0I3=&%C:R!/=F5R9FQO=PT*) T*3F]T(&5N;W5G:"!M M96UO<GD-"B0-"D)A9"!S=&%C:R!S:7IE('!A<F%M971E<@T*) T*1$]3(#$N M>'@@;F]T('-U<'!O<G1E9 T*) T*3VYL>2 S,B!A<F=S(&%L;&]W960-"B0- M"D9L;V%T:6YG('!O:6YT(&YO="!L;V%D960-"B0 M M M M M M # !%<G)O<CH@=W)O;F<@;G5M M8F5R(&]F(&%R9W5M96YT<PH 57-E.B!S=')I;F=S(&9I;&4* ')B $-A;B=T M(&]P96X@9FEL92 G)7,G"@ E-6QX( E<PH 0 ( ,%@ ,'@ "T M*P @ ", 1@A-"%0(6PAS "4 8P!D &D ;P!U %@ > !P &8 90!% &< 1P!N M ),)S0G3">\)[PE""DD*9@IK"FL*8PME#&4,20U)#=<.+0 K " M !% !& $ !& ( !D , M !& 0 M M M M " @(" @(" @(# P,# M P(" @(" @(" @(" @(" @(" @5 0$! 0$! 0$! 0$! 0$" @(" @(" @(" M0$! 0$! 0!@8&!@8&! 0$! 0$! 0$! 0$! 0$! 0$! 00$! 0$! *"@H*"@H M(" @(" @(" @(" @(" @(" @("! 0$! @ M M 4 end