Need advice for obfuscating Python code
Alexander Gavrilov
gavrilov at attbi.com
Wed Feb 27 17:16:17 EST 2002
Are you working in Microsoft, aren't you?
Alexander
"Cimarron Taylor" <cimarron+google at taylors.org> wrote in message
news:29e28c51.0202270014.61dbd1d0 at posting.google.com...
> I have used the following tricks before with Java code, some of them
> should be useable with python.
>
> 1. Use a source-to-source translator to convert all your class, method
> and variable names into gibberish.
>
> 2. Introduce special "dispatch" classes to obscure the communications
> paths. E.g instead of calling foo.bar(), call dispatcher.bar(foo)
> where dispatcher is a dynamically instanciated object. Have lots
> of dispatchers and periodically switch them around in meaningless ways.
>
> 3. Add lots of decoy code. Put bar() methods in lots of classes which
> are never used. Include the gibberish versions of a few previous
> versions of your code with logic deliberately reversed. Intermix
> meaningless logic with the code which does the actual work. Bulk up
> your product with a few dozen distributions of other redistributable
> software.
>
> 4. Hide some initialization logic outside your program. Have your
> program step reload classes. If your program manages external files
> (e.g. userids or passwords), have it hide some critical initialization
> logic there. Encode some of your program state in records in a
database
> which requires a separate initialization and/or installation step.
>
> 5. Distribute your program in separate pieces. Have your program partially
> depend on external libraries.
>
> 6. Partition your program's operation into separate phases and/or
processes.
> Have one process generate code on the fly to be executed by the other.
> Hide important information in otherwise meaningless status messages
> exchanged between the two.
>
> Most of these things will make your program more difficult to reverse
engineer.
> Heaven help you if you ever need to fix a bug in it!
>
> Cim
More information about the Python-list
mailing list