Python obfuscation

Mike Meyer mwm at mired.org
Mon Nov 14 14:48:46 EST 2005


"Ben Sizer" <kylotan at gmail.com> writes:
>> It is? Is the Python disassembler so much advanced over the state of
>> the art of binary disassemblers, then? Or maybe it's the Python
>> decompilers that are so advanced?
> Decompyle (http://www.crazy-compilers.com/decompyle/ ) claims to be
> pretty advanced. I don't know if you can download it any more to test
> this claim though.

No, it doesn't claim to be advanced. It claims to be good at what it
does. There's no comparison with other decompilers at all. In
particular, this doesn't give you any idea whether or not similar
products exist for x86 or 68k binaries. Your claim was that it's
easier to go from pyc files to code than from binaries to code. To
show that, you have to show not only that it's easy to go from pyc
files to code, but that it's hard to go from binary files to
code. I've dealt with some very powerfull disassemblers and
decompilers, but none of them worked on modern architectures.

>> As far as I can tell, the only real
>> difference between Python bytecodes and x86 (for instance) binaries is
>> that Python bytecodes keep the variable names around so it can do
>> run-timme lookups. That's not that big a difference.
> It makes a lot of difference when you're hunting around for something
> or trying to understand a bit of code. Python bytecode (or at least,
> the output from dis) is also a lot more straightforward than x86 or 68K
> assembly to decipher.

I'm not convinced of the former. I'll grant you half of the
latter. 68K machine language is fairly straightforward. On the other
hand, it's also seems to be irrelevant. What platform are you
developing for that's still based on the 68K?

>> > I'd just like to make it non-trivial to make or use additional copies.
>> How do you do that without infringing my fair use rights?
> Yes, I suppose my terminology there was wrong. The term I should
> probably have used was 'distribute usable additional copies'.

My question still stands, though - and unanswered.

> On the other hand though, what you term a 'fair use right' is not
> necessarily viewed that way under law. The relevant part of the law (at
> least in the US) says "it is not an infringement for the owner of a
> copy of a computer program to make or authorize the making of another
> copy or adaptation of that computer program provided [...] that such
> new copy or adaptation is for archival purposes only", which is quite
> distinct, legally speaking, from saying "you have the right to make a
> copy or adaptation for archival purposes".

I think this just makes explicit that those activies are indeed fair
use, which is what non-infringing copying is called, and that you're
playing semantic games to salve your conscience. But we can be
explicit if you want: How do you do that without requiring that your
software be given special consideration in the distaster recovery and
preparedness planning? You should be concerned about this, as that
special consideration is often "Return that POS".

   <mike
-- 
Mike Meyer <mwm at mired.org>			http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.



More information about the Python-list mailing list