[OT] Python like lanugages [was Re: After C++, what with Python?]

Dave Angel davea at ieee.org
Thu Jan 20 05:46:08 EST 2011


On 01/-10/-28163 02:59 PM, Octavian Rasnita wrote:
> From: "geremy condra"<debatem1 at gmail.com>
>> On Wed, Jan 19, 2011 at 2:31 AM, Octavian Rasnita<orasnita at gmail.com> wrote:
>>> <snip>
>>>>>> Would it be hard to introduce the possibility of adding encryption of the
>>> bytecode similar to what the Zend encoder does for PHP or Filter::Crypto for
>>> Perl?
>>>>>> Octavian
>>>> The iron law of cryptography: there is no cryptographic solution to a
>> problem in which the attacker and intended recipient are the same
>> person.
>>>> Schemes like this are at most an annoyance to people willing to
>> reverse engineer your code.
>>>> Geremy Condra
>>> I don't know how the Python bytecode works... how it is executed.
>> I thought that Python parses the .py file and generates the bytecode that doesn't contain all the necessary information for re-creating the source code.
> (But that I agree, that might mean real compilation which is not the case...)
>> Octavian
>It's not hard to experiment with. I've written disassemblers for other 
byte-code formats, but not for Python's. The following is pasted 
together, so it may not be completely correct. But it's close.
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
 >>> def test(arg1, arg2):
... if arg1 < 65:
... print arg2
...
 >>> import dis
 >>> dis.dis(test)
 2 0 LOAD_FAST 0 (arg1)
 3 LOAD_CONST 1 (65)
 6 COMPARE_OP 0 (<)
 9 JUMP_IF_FALSE 9 (to 21)
 12 POP_TOP
 3 13 LOAD_FAST 1 (arg2)
 16 PRINT_ITEM
 17 PRINT_NEWLINE
 18 JUMP_FORWARD 1 (to 22)
 >> 21 POP_TOP
 >> 22 LOAD_CONST 0 (None)
 25 RETURN_VALUE
 >>>
Now, there are tools which reverse that into something pretty similar to 
python source. But you can see even from the built-in features that 
lots of information is there. I'd assume that something very similar is 
in the byte code files themselves.
DaveA


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /