wndows几种python隐藏源码工具的用法,以及关于pyc及反编译

 

2017-02-08 17:17:22 farrellcn 阅读数 4492更多

分类专栏: python 汇编/反汇编/逆向工程

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/farrellcn/article/details/54908739

[Pyinstaller]

1.输入pip install PyInstaller

2.进入需要打包的程序目录

3.输入pyinstaller + 需要打包的程序(脚本)名称

 

[Py2exe](目前只支持到py3.4)

1.新建一个Setup.py的文件,输入以下代码

from distutils.core import setup

import py2exe

setup(console=["要打包的py文件名"])

2.打开命令行,执行python Setup.py py2exe,会产生一个名为dist的目录,里面就是打包好的exe程序

 

 

 

======================================================================
python的pyc文件是一种二进制文件,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。
但是只留下pyc文件并不能反正泄露源代码,因为pyc文件可以被反编译
编译py文件到pyc文件的方法:

【1】在命令行输入:python -m py_compile myFile.py 就可以生成对应的pyc文件了。之后就可以直接执行pyc文件。python myFile.pyc

作者:Py_Explorer
链接:https://www.jianshu.com/p/359b935aee10
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

【2】另外一种方式是通过python代码来生成pyc文件。

import py_compile
py_compile.compile('/path/to/foo.py')

【3】 Python批量生成pyc文件
针对一个目录下所有的py文件进行编译。python提供了一个模块叫compileall,具体请看下面代码:
【3.1】
import compileall
compileall.compile_dir(r'/path')
compile_dir函数用法:
compile_dir(dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]])


compile_dir参数含义:
maxlevels:递归编译的层数
ddir:如果给出了ddir,它将被预先添加到编译的每个文件的路径以用于编译时间回溯,并且还被编译到字节码文件中,在源文件中,它将用于回溯和其他消息中 文件代码文件执行时文件不存在。
force:如果True,不论是是否有pyc,都重新编译
rx:一个正则表达式,排除掉不想要的目录
quie:如果为True,则编译不会在标准输出中打印信息
【3.2】 命令行模式 ,自动创建了“__pycache__”这个文件夹
F:\python>python -m compileall ./test1

=========【【反编译pyc文件】】===========
pip install uncompyle

使用方法
我使用pip在mac os上安装好后的可执行文件名叫uncompyle6,很奇葩有没有
uncompyle6 --help 查看帮助
uncompyle6 models.pyc > models.py 将models.pyc反编译成py文件
uncompile -o . *.pyc 将当前文件夹中所有的pyc文件反编译成后缀名为.pyc_dis的源文件
反编译后的效果可以说很理想,如果你的代码格式符合PEP8规范的要求,那就基本和源来的文件一样,不过各种注释就没有了(不能要求太高是不是)
作者:Py_Explorer
链接:https://www.jianshu.com/p/359b935aee10
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值