46

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.

4 Answers 4

54

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.

2
  • how can I use this in Windows 10, please?
    – SABA
    Jun 12, 2020 at 15:25
  • It should work for Windows. Just download the tool, and run it on the command line like this: strings FILE_PATH Jul 27, 2023 at 12:00
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 /? )

3
  • 1
    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, 2023 at 13:34
  • Note that this solution only works in Command Prompt (cmd), not PowerShell.
    – ma1234
    Mar 30, 2023 at 21:59
  • UNICODE strings could be included, but many are not quite readable in output of this command. For me the command also didn't finish, I had to break it with CTRL+C. Jul 27, 2023 at 11:49
7

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

1
  • 2
    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
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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .