01-26-04 01:34 AM
When I compile a set of files and make them into a library they contain
filenames of the original source files. Every compiler works like that
including those running under unix/linux.
You don't need to be very smart in order to use some dumping utilities which
will extract this information on compiled objects or libraries. Since some
of my files contain specific information (in their filenames) about
algorithms I used, I know that some attackers might find it useful to
investigate my files which I naturally have no interest in.
What I'd like to do is to compile all files as a sequence of pseudo random
names. So my_super_cool_algorithm.c / .o will become "randomfile1".o and
when made into a library the original name "my_super_cool_algorithm" won't
be visible anymore.
I know this is possible because I've already investigated other libraries
where all object files were named a0, a1, a2, a3, a4, a5... etc.
So I wrote a program which writes a "table" of new names. It takes the
original filename as input and gives a new name as output (written to
stdout). Additionally there is a lookup table in this program so if the
input file is given twice, the same output file name will be printed out.
My thought is to intergrate this utility with make tools (since I already
use make for building) but so far I havn't figured out how or IF it's even
possible.
Anyone got a clue how to hide original filenames in library files?
The alternative is to make a post-processing utility which will do a string
based search and replacement. However I think some object files (on some
platforms) have checksums and similar which I worry about will be changed if
I do it this way.
Any suggestions?
Thanks in advance.
-- John
[ Post a follow-up to this message ]
|