44

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 5

49

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.

1
  • how can I use this in Windows 10, please?
    – SABA
    Jun 12, 2020 at 15:25
8

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 /? )

2
  • 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...
    – fig
    Jan 12 at 13:34
  • Note that this solution only works in Command Prompt (cmd), not PowerShell.
    – ma1234
    Mar 30 at 21:59
7

I believe MinGW contains a Windows version of GNU binutils, which in turn contains the strings program. You could try that.

1
  • 1
    and 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
3

The Sysinternals tool Strings is a Windows console program which can extract ASCII And Unicode strings from binary files.

3
  • @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.
    – Synetech
    Dec 15, 2013 at 23:06
  • @Synetech - OK.
    – slm
    Dec 16, 2013 at 0:15
  • 1
    -1 No need to have 2 answers with the same info.
    – user66001
    May 1, 2017 at 13:39
0

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.