3 ms·
Yes, though a properly crafted binary has always been able to hide from strings with even a minimal amount of obfuscation or encryption. There's no way to know
by eli 12y ago
Yes, though a properly crafted binary has always been able to hide from strings with even a minimal amount of obfuscation or encryption. There's no way to know all the strings a program can output without running it.
- avian 12y agoOf course, a properly crafted program can always arbitrarily obfuscate strings. But if you manage to trick libbfd into thinking it's looking at a particular format, you can hide plain text from a simple "strings" invocation even in files that are not executable. I've been using "strings" on all kinds of files, not only executables, and assumed that it will always display all sequences of printable characters present in the file.
- eli 12y agoAh, I see. Fair enough, but I don't think it was ever a great assumption that "strings" would uncover all the text in a file. There are so many ways to screw with a file at the byte level that could confuse "strings" but still appear fine when read by an application.
- revelation 12y agoIf you solve the problem of determining all output strings of a given program with running it, please leave a message ;)
- chime 12y agocough https://en.wikipedia.org/wiki/Halting_problem https://en.wikipedia.org/wiki/Halting_problem cough
- repsilat 12y agoSure, you can reduce it down to the Halting Problem, but it's much simpler just to invoke Rice's Theorem. http://en.wikipedia.org/wiki/Rice's_theorem http://en.wikipedia.org/wiki/Rice's_theorem