Path: csiph.com!goblin2!goblin.stu.neva.ru!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!bcyclone01.am1.xlned.com!bcyclone01.am1.xlned.com!newsreader4.netcologne.de!news.netcologne.de!fu-berlin.de!uni-berlin.de!not-for-mail From: Daniel Wilcox Newsgroups: comp.lang.python Subject: Re: Obfuscating Python code Date: Tue, 15 Mar 2016 23:40:57 -0700 Lines: 70 Message-ID: References: <570f76f8-1e4a-421f-b1ff-4fba72f06a56@googlegroups.com> <6849887.F7PvubJjsv@PointedEars.de> <1577402.lMk4FsjPMl@PointedEars.de> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Trace: news.uni-berlin.de 57TMGbYR8ZWEhuqH5lbo6AnvAhRcYFF2+LkECzacVrgg== Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.002 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; '16,': 0.03; 'open-source': 0.04; 'subject:Python': 0.05; 'source.': 0.05; 'distributing': 0.07; 'subject:code': 0.07; 'cc:addr:python-list': 0.09; 'variants': 0.09; 'python': 0.10; 'assume': 0.11; 'accordingly.': 0.13; 'files.': 0.13; 'do,': 0.15; 'wed,': 0.15; 'file,': 0.15; '.py': 0.16; '2.1.1': 0.16; '2016': 0.16; 'bytecode': 0.16; 'nightmare': 0.16; 'received:io': 0.16; 'received:psf.io': 0.16; 'stuff.': 0.16; 'substitute': 0.16; 'wrote:': 0.16; 'community,': 0.18; '>': 0.18; 'cc:2**0': 0.20; 'cc:addr:python.org': 0.20; 'otherwise,': 0.20; 'forms.': 0.22; 'gcc': 0.22; 'cc:no real name:2**0': 0.22; 'am,': 0.23; 'code.': 0.23; '(or': 0.23; 'proprietary': 0.23; 'header:In-Reply-To:1': 0.24; 'software.': 0.25; 'chris': 0.26; 'point.': 0.27; 'least': 0.27; 'message- id:@mail.gmail.com': 0.27; 'restrict': 0.27; 'said,': 0.27; "skip:' 10": 0.28; 'device': 0.28; 'there.': 0.30; 'twitter:': 0.30; 'url:mailman': 0.30; 'code': 0.30; '15,': 0.30; 'task': 0.30; 'everyone': 0.31; 'anyone': 0.32; "can't": 0.32; 'skip:_ 10': 0.32; 'software,': 0.32; 'source': 0.33; 'url:python': 0.33; 'usually': 0.33; 'open': 0.33; 'url:listinfo': 0.34; 'tue,': 0.34; 'file': 0.34; 'running': 0.34; 'received:google.com': 0.35; 'world,': 0.35; 'could': 0.35; 'newer': 0.35; 'community': 0.36; 'should': 0.36; 'there': 0.36; 'url:org': 0.36; 'received:209.85': 0.36; 'pm,': 0.36; 'subject:: ': 0.37; 'really': 0.37; 'starting': 0.37; 'doing': 0.38; 'difference': 0.38; 'received:209': 0.38; 'mean': 0.38; 'means': 0.39; 'why': 0.39; 'does': 0.39; 'url:mail': 0.40; 'some': 0.40; 'software': 0.40; 'easy': 0.60; 'your': 0.60; 'no.': 0.62; 'programs': 0.62; 'back': 0.62; 'per': 0.62; 'yes': 0.62; 'here.': 0.62; 'providing': 0.62; 'making': 0.62; 'service.': 0.63; 'thomas': 0.63; 'more': 0.63; 'between': 0.65; 'mar': 0.65; 'reverse': 0.66; 'talking': 0.67; 'e-mail.': 0.67; "today's": 0.69; '*if': 0.84; 'engineered': 0.84; 'way)': 0.84; 'careful': 0.91 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yubasolutions-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=qOVBrd1DCB1X3bLRUaOvmUgmHMHn1bewtFOc+UlRC7g=; b=E1hHxv0gG4wceETUHGdXxqxndNCYoiAbbZEMJquwe8kdgImLXlFbTVZYs/mZX74FOX jbTZuwgKewo6V2mPWRhQD4DfG1LbI85urmazIuCTBEb+8BxhsJR02up5gm6Le6G5ESxw OrG6adroSFlTTKxp8fOLLTYnyc9oahlYl4cNtCRvIo+peYWAoFBudNpb7kCKqez+Ll6V NkGl3IFNWQ6DMtfg7Usj+ZWhTPCdbO+SU34lYZehga0Yve9G9xNR/B1RrRCv08fzxx2t fNEK8ssQXWPlT8D1CnBsvg5kZFRbtgGmYXWsy6Gsgcdrme1tuILWVMGtM5jaAgjgqKJu tHrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=qOVBrd1DCB1X3bLRUaOvmUgmHMHn1bewtFOc+UlRC7g=; b=EoYjG/sYc0m4nQ2V7BqYhyiXI/9WokoLfWkj5m8TrdiR5yR5aLHJDObzb8sLErbiis y3IkJ7hhPV0n34F5VMOpmfFhbFMoUwPHKfoNB+q28nOPIdJ37U/z7a56jBUjPL4wQw/+ khmFf/Vwy/7jf3bHrYzPCNrd8QpTteGUV9Mmt8cy0pTs9oiTgWCaNw8DQwir/+Q+pAGf wfagEBpA2V19kFDCOuxIezrTUGV3tZlG4HZ8I2CcDrrg43HHWb53ddvJCrgCKt6Mj9g9 jPATDJdN/fzJX870gZWL3Oav20oKgkazkPem8sKwlB6jr9JW826oTJBOmVc+reyx0hHy DD9w== X-Gm-Message-State: AD7BkJIc5sERAOl5pZXvR7RBNEqBeFrv+L6VMl+Ek9Cq8CkE/Jf9vtWqfmZeCduOew65gqr6PpcpVOBXGEVG1rGg X-Received: by 10.25.80.1 with SMTP id e1mr540231lfb.165.1458110487124; Tue, 15 Mar 2016 23:41:27 -0700 (PDT) X-Originating-IP: [98.207.0.136] In-Reply-To: <1577402.lMk4FsjPMl@PointedEars.de> X-Mailman-Approved-At: Wed, 16 Mar 2016 08:01:59 -0400 X-Content-Filtered-By: Mailman/MimeDel 2.1.21 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Received-Bytes: 7706 X-Received-Body-CRC: 806203149 Xref: csiph.com comp.lang.python:105009 If you really want to learn about obfuscating python bytecode so it can't be reverse engineered (easily) -- there are people who are doing it. Search for 'pyasm' on github as a starting point. tldr; yes people are patching .pyc files. yes you can make them a nightmare to disassemble. and yes it slows down your code. =3DD also yes, you can be tricked into running a patched .pyc file that has nothing to do with your .py file, you have been warned. be careful out there. On Tue, Mar 15, 2016 at 2:51 PM, Thomas 'PointedEars' Lahn < PointedEars@web.de> wrote: > Chris Angelico wrote: > > > On Wed, Mar 16, 2016 at 5:59 AM, Thomas 'PointedEars' Lahn > > wrote: > >> That said, not distributing the source code of a program as well (or a= t > >> least making it available to users in some way) strikes me as unpython= ic > >> since Python is at least Open Source software, and Python 2.0.1, 2.1.1 > >> and newer are GPL-compatible Free Software. > > > > gcc is also free software. Does that mean that all C programs should > > be free software? No. > > IMNSHO, yes. At the very least because in using gcc you benefited from t= he > free software community, so you should give back to the free software > community accordingly. > > > However, since all software can be reverse-compiled (particularly > > You mean _decompiled_. > > > byte-code like .pyc files), > > Yes, it is easier with bytecode *if you know the VM*. > > > the only truly reliable way to make completely closed software is to > > restrict access to it in all forms. > > ACK. > > > In today's world, that usually means providing it as a web service. > > ACK. That=E2=80=99s why RMS calls it SaaSS, Service as a Software Substi= tute :) > > > Otherwise, you have to assume that anyone can see your source. The > > only difference between open-source and closed-source is the license, > > not the ability to see stuff. > > If that were the case and reverse engineering were an easy task that > everyone could do, we would have a lot more free software variants of > proprietary software. Particularly, we would have a lot less proprietary > device drivers. ISTM that you do not know what you are talking about her= e. > > -- > PointedEars > > Twitter: @PointedEars2 > Please do not cc me. / Bitte keine Kopien per E-Mail. > -- > https://mail.python.org/mailman/listinfo/python-list >