for the first question the answer is that it's not easily possible to see if a random block of data contains a certain compressed data for various reasons.
offzip can do that job because the zlib data (-z 15) has an initial header and the code is enough well written to guess when there is one or more bytes wrong which is the same as for the deflate data (-z -15) except that it doesn't have the initial 2 bytes header and that's the reason why you get tons of false positives when you scan a file using this option.
instead for the second tool I have something similar although for some technical reasons it's not possible to guess at 100% if a random sequence of bytes in a file or an executable is or not a text string.
anyway:
http://aluigi.org/mytoolz.htm#exestringzif you need a quick and dumb list of strings inside a file use:
Code:
exestringz -q 1 input.exe output.txt
that one is used for scanning executable files while if you want to scan a binary/raw file add the -b option:
Code:
exestringz -b -q 1 input.dat output.txt