⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch27_19.htm

📁 the unix power tools
💻 HTM
字号:
<HTML><!--Distributed by F --><HEAD><TITLE>[Chapter 27] 27.19 Finding Words Inside Binary Files </TITLE><METANAME="DC.title"CONTENT="UNIX Power Tools"><METANAME="DC.creator"CONTENT="Jerry Peek, Tim O'Reilly &amp; Mike Loukides"><METANAME="DC.publisher"CONTENT="O'Reilly &amp; Associates, Inc."><METANAME="DC.date"CONTENT="1998-08-04T21:44:35Z"><METANAME="DC.type"CONTENT="Text.Monograph"><METANAME="DC.format"CONTENT="text/html"SCHEME="MIME"><METANAME="DC.source"CONTENT="1-56592-260-3"SCHEME="ISBN"><METANAME="DC.language"CONTENT="en-US"><METANAME="generator"CONTENT="Jade 1.1/O'Reilly DocBook 3.0 to HTML 4.0"><LINKREV="made"HREF="mailto:online-books@oreilly.com"TITLE="Online Books Comments"><LINKREL="up"HREF="ch27_01.htm"TITLE="27. Searching Through Files"><LINKREL="prev"HREF="ch27_18.htm"TITLE='27.18 Fast Searches and Spelling Checks with  "look&quot;'><LINKREL="next"HREF="ch27_20.htm"TITLE="27.20 A Highlighting grep "></HEAD><BODYBGCOLOR="#FFFFFF"TEXT="#000000"><DIVCLASS="htmlnav"><H1><IMGSRC="gifs/smbanner.gif"ALT="UNIX Power Tools"USEMAP="#srchmap"BORDER="0"></H1><MAPNAME="srchmap"><AREASHAPE="RECT"COORDS="0,0,466,58"HREF="index.htm"ALT="UNIX Power Tools"><AREASHAPE="RECT"COORDS="467,0,514,18"HREF="jobjects/fsearch.htm"ALT="Search this book"></MAP><TABLEWIDTH="515"BORDER="0"CELLSPACING="0"CELLPADDING="0"><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch27_18.htm"TITLE='27.18 Fast Searches and Spelling Checks with  "look&quot;'><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT='Previous: 27.18 Fast Searches and Spelling Checks with  "look&quot;'BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><B><FONTFACE="ARIEL,HELVETICA,HELV,SANSERIF"SIZE="-1">Chapter 27<BR>Searching Through Files</FONT></B></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch27_20.htm"TITLE="27.20 A Highlighting grep "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 27.20 A Highlighting grep "BORDER="0"></A></TD></TR></TABLE>&nbsp;<HRALIGN="LEFT"WIDTH="515"TITLE="footer"></DIV><DIVCLASS="SECT1"><H2CLASS="sect1"><ACLASS="title"NAME="UPT-ART-2740">27.19 Finding Words Inside Binary Files </A></H2><PCLASS="para"><ACLASS="indexterm"NAME="AUTOID-30869"></A><ACLASS="indexterm"NAME="AUTOID-30871"></A>If you try to read<SPANCLASS="link">binaries (<ACLASS="linkend"HREF="glossary.htm#UPT-ART-1010"TITLE="Glossary">52.9</A>)</SPAN>on your screen with, say,<SPANCLASS="link"><EMCLASS="emphasis">cat -v</EM> (<ACLASS="linkend"HREF="ch25_07.htm"TITLE="Show Non-Printing Characters with cat -v or od -c ">25.7</A>)</SPAN>,you'll see a lot of non-printable characters.Buried in there somewhere though are words and strings of charactersthat might make some sense.For example, if the code is copyrighted, you can usually find that informationin the binary.The pathnames of special files that the program reads will probably show up.If you're trying to figure out which program printed an error message,use <EMCLASS="emphasis">strings</EM> on the binaries and look for the error.Some versions of <EMCLASS="emphasis">strings</EM> do a better job of getting just theuseful information; others may write a lot of junk, too.But what the heck&nbsp;- pipe the output to<SPANCLASS="link">a pager (<ACLASS="linkend"HREF="ch25_03.htm"TITLE="Using more to Page Through Files ">25.3</A>, <ACLASS="linkend"HREF="ch25_04.htm"TITLE='The "less&quot; Pager: More than "more&quot;'>25.4</A>)</SPAN>or<SPANCLASS="link"><EMCLASS="emphasis">grep</EM> (<ACLASS="linkend"HREF="ch27_02.htm"TITLE="Searching for Text with grep ">27.2</A>)</SPAN>,redirect it to a file&nbsp;- ignore the stuff you don't want.</P><PCLASS="para">Here's a (shortened) example on SunOS:</P><PCLASS="para"><BLOCKQUOTECLASS="screen"><PRECLASS="screen">% <CODECLASS="userinput"><B>strings /bin/write</B></CODE>@(#)write.c 1.10 88/05/10 SMIUsage: write user [ttyname]write: Can't find your ttyMessage from %s@%s on %s at %d:%02d ...Write failed (%s logged out?)         (((((                  DDDDDDDDDD</PRE></BLOCKQUOTE></P><PCLASS="para"><ACLASS="indexterm"NAME="AUTOID-30887"></A>The first line comes from<SPANCLASS="link">SCCS (<ACLASS="linkend"HREF="ch20_12.htm"TITLE="Protecting Files with SCCS or RCS ">20.12</A>)</SPAN>-you can see the version number, the date the code was last modified orreleased, and so on.The <CODECLASS="literal">%s</CODE>, <CODECLASS="literal">%d</CODE>, and <CODECLASS="literal">%02d</CODE> are special places that the<EMCLASS="emphasis">printf</EM>(3) function will replace with values like the username,hostname, hour, and minute.</P><PCLASS="para">By default, <EMCLASS="emphasis">strings</EM> doesn't search all of a binary file:it only reads the initialized and loaded sections.The <CODECLASS="literal">-</CODE> (dash) option tells <EMCLASS="emphasis">strings</EM> to search all of the file.Another useful option is <CODECLASS="literal">-</CODE><CODECLASS="replaceable"><I>n</I></CODE>, where <EMCLASS="emphasis">n</EM> is theminimum-length string to print.Setting a higher limit will cut the &quot;noise,&quot; but you might also losewhat you're looking for.</P><PCLASS="para">The <CODECLASS="literal">od&nbsp;-s</CODE><CODECLASS="replaceable"><I>n</I></CODE> command does a similar thing:finds all null-terminated strings that are at least <EMCLASS="emphasis">n</EM> characterslong.</P><DIVCLASS="sect1info"><PCLASS="SECT1INFO">- <SPANCLASS="authorinitials">JP</SPAN></P></DIV></DIV><DIVCLASS="htmlnav"><P></P><HRALIGN="LEFT"WIDTH="515"TITLE="footer"><TABLEWIDTH="515"BORDER="0"CELLSPACING="0"CELLPADDING="0"><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch27_18.htm"TITLE='27.18 Fast Searches and Spelling Checks with  "look&quot;'><IMGSRC="gifs/txtpreva.gif"SRC="gifs/txtpreva.gif"ALT='Previous: 27.18 Fast Searches and Spelling Checks with  "look&quot;'BORDER="0"></A></TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><ACLASS="book"HREF="index.htm"TITLE="UNIX Power Tools"><IMGSRC="gifs/txthome.gif"SRC="gifs/txthome.gif"ALT="UNIX Power Tools"BORDER="0"></A></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172"><ACLASS="SECT1"HREF="ch27_20.htm"TITLE="27.20 A Highlighting grep "><IMGSRC="gifs/txtnexta.gif"SRC="gifs/txtnexta.gif"ALT="Next: 27.20 A Highlighting grep "BORDER="0"></A></TD></TR><TR><TDALIGN="LEFT"VALIGN="TOP"WIDTH="172">27.18 Fast Searches and Spelling Checks with  "look&quot;</TD><TDALIGN="CENTER"VALIGN="TOP"WIDTH="171"><ACLASS="index"HREF="index/idx_0.htm"TITLE="Book Index"><IMGSRC="gifs/index.gif"SRC="gifs/index.gif"ALT="Book Index"BORDER="0"></A></TD><TDALIGN="RIGHT"VALIGN="TOP"WIDTH="172">27.20 A Highlighting grep </TD></TR></TABLE><HRALIGN="LEFT"WIDTH="515"TITLE="footer"><IMGSRC="gifs/smnavbar.gif"SRC="gifs/smnavbar.gif"USEMAP="#map"BORDER="0"ALT="The UNIX CD Bookshelf Navigation"><MAPNAME="map"><AREASHAPE="RECT"COORDS="0,0,73,21"HREF="../index.htm"ALT="The UNIX CD Bookshelf"><AREASHAPE="RECT"COORDS="74,0,163,21"HREF="index.htm"ALT="UNIX Power Tools"><AREASHAPE="RECT"COORDS="164,0,257,21"HREF="../unixnut/index.htm"ALT="UNIX in a Nutshell"><AREASHAPE="RECT"COORDS="258,0,321,21"HREF="../vi/index.htm"ALT="Learning the vi Editor"><AREASHAPE="RECT"COORDS="322,0,378,21"HREF="../sedawk/index.htm"ALT="sed &amp; awk"><AREASHAPE="RECT"COORDS="379,0,438,21"HREF="../ksh/index.htm"ALT="Learning the Korn Shell"><AREASHAPE="RECT"COORDS="439,0,514,21"HREF="../lrnunix/index.htm"ALT="Learning the UNIX Operating System"></MAP></DIV></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -