No subject


Tue Nov 29 10:43:08 WST 2011


clone of the application, as to deconstruct the application. One of the simplest
ways of doing this is:

    find /applic/top/dir -type f -print -exec strings {} \; | less

The result will be a big pile of text, being filenames interspersed with
readable text from within the program. Now, unless they've encrypted any of it,
you should at least be able to glean some idea from the text you can read how
far along they've got. You can copy (cp -a) the binaries to a temporary
directory and strip the symbols out using a similar find command (if the symbols
exist and are overwhelming to search through) before searching for strings
proper if you want to.

The example above also works on Windows programs, in fact, anything that
internally stores strings in ASCII or anything like it. Symbol tables are good
for hints about what a program can or can't do as well. Symbols named
``fake_most_wanted_feature'' or ``most_wanted_feature_stub'' are a clear
giveaway.

Beyond that, it gets a little harder. If they haven't stripped the binaries, you
can use a visual debugger like xxgdb to step through the live program and follow
what it does. This gets messy with C++ and similar languages since their actual
prgram flow can get quite disconnected (``abstracted'') from the obvious purpose
or what the author actually wrote.

Languages like TCL, Python, PERL and PHP are easy, since there is only source.
Have a look-see, you may be amazed. (-:

-- 
There is something fascinating about science. One gets such wholesale
returns of conjecture out of such a trifling investment of fact.
    -- Mark Twain



More information about the plug mailing list