Is there any linux command to extracts all the ascii strings from an executable or other binary file? I suppose I could do it with a grep, but I remember hearing somewhere that such a command existed?
|
The command you are looking for is Its name is quite self-explanatory, it retrieves any printable string from a given file.
|
|||||
|
|
The strings command is the way to go for this particular type of problems. Sometimes you also have to pipe it out to grep. For example:
|
|||
|
|
|
The command does exist, and is called.... strings! |
|||
|
|
|
The od command can do this:
|
|||||||||
|
|
A problem with using strings is that you don't see surrounding non printables and you have to be careful with the minimum string length. A problem using od -c FILEor hexdump -C FILEis that a sequence can be difficult to find if it wraps a line. Something I like a lot for this is ZTreeWin running in WINE on Linux - you can do a lot with it but the searching in any file or editing binaries can be particularly useful. The awesome ytree package is available for many Linux and Unix variants and has a good Hex dump view of any file but doesn't have the search that ZTreeWin (and its 16bit predecessor, XTree) have. |
|||
|
|