strings
in Unix and Linux extracts printable strings from a binary file. Is there a version of this for Windows? I couldn't find one.
5 Answers
Not (AFAIK) built in, but there is one available from SysInternals (live link). The SysInternals strings isn't a straight port of the Unix tool; it was written to find Unicode strings as well as ASCII:
Working on NT and Win2K means that executables and object files will many times have embedded UNICODE strings that you cannot easily see with a standard ASCII strings or grep programs.
A quick simple solution:
more < FILE_PATH.exe | findstr "."
This will print all strings from any kind of file ( with a little extra junk ), separated by a new line.
What actually happens is more < FILE_PATH.exe
prints an ascii view of FILE_PATH.exe into the console, and the findstr "."
filters out anything that isn't a string ( define a minimum length by adding more '.' e.g. findstr "....."
will filter for only strings of length 5+ ).
strings -n 4 FILE_PATH
=> more < FILE_PATH | findstr "...."
strings -n 8 FILE_PATH
=> more < FILE_PATH | findstr "........"
And of course you can use findstr to make a more exact filter ( see findstr /?
)
-
This is a good answer, but I find that the command never releases back to the console, and I have to press CTRL-C to break it after a few seconds. I suspect 'findstr' is not realising that the stream from 'more' has ended...– figJan 12 at 13:34
-
Note that this solution only works in Command Prompt (
cmd
), not PowerShell.– ma1234Mar 30 at 21:59
I believe MinGW contains a Windows version of GNU binutils, which in turn contains the strings
program. You could try that.
-
1and of course binutils is included in the Cygwin environment (cygwin.com). it doesn't seem to be included in GnuWin32 and UnxUtils, two other ports projects that provide unix utilities on Windows. Mar 25, 2010 at 18:09
The Sysinternals tool Strings is a Windows console program which can extract ASCII And Unicode strings from binary files.
-
@slm, in this case, the link is the content. If the link breaks, then no amount of content will be of use since the file can no longer be downloaded. In fact, the original post was actually better than it is now because at least then, it displayed the raw URL which showed that the program in question was from Microsoft and included the keyword sysinternals. Therefore, if the link died, someone could still try to search for the file by using those as a guide. Now, the link is merged into the text so there is nothing indicating what the file is. No worries, I’ll fix it now.– SynetechDec 15, 2013 at 23:06
-
-
1
For a GUI-oriented alternative try 'Extract Text' in this utility collection by Juan M. Aguirregabiria. Quick and easy to use with persistent customization of which characters to match as strings. Probably doesn't support Unicode though.
http://tp.lc.ehu.es/jma/win95.html
Softpedia link included in case the link above dies http://www.softpedia.com/get/Programming/File-Editors/Extract-Text.shtml