zoukankan      html  css  js  c++  java
  • python生成可执行文件保护源码

    工作中由于需要防止源代泄漏,需要将源代码隐藏,找到两种方法:

    1.使用python生成的pyc文件。

        这种方法的优点就是pyc文件生成很容易,缺点则是很容易通过工具得到源码,并且python版本不一致也会报 bad magic error。 

        bad magic error解决方法:删除pyc,用相同版本的python重新生成,参考stackoverflow。 

        python生成pyc文件:

    python -m py_compile python_file.py

        另一种生成pyc的方法:

            在python解释器中运行:  

                import py_compile
                py_compile.compile(r'/path/to/需要生成.pyc的脚本.py')

    2.使用pyinstaller生成可执行文件。

        这种方法生成的文件相对与pyc文件更难获取到源码,并且可以通过--key进行加密,在对方无法获取key的情况下,破解难度大大增加,但是由于key容易被获取,所以这种方法也容易被逆向,具体看这里。 

        使用方法:

            pyinstaller -F python_file.py   #  -F表示生成一个文件

        运行上述命令后会再python_file.py所在目录生成dist目录,可执行文件在dist文件中,文件名称和python_file.py相同,只是没有后缀.py

        运行可执行文件的方法:

            cd dist  # change directory to dist, which is the folder generated by pyinstaller 

            ./python_file  # 如果有参数,可以继续添加

    当然,由于python的特性,基本上不可能实现反逆向,上述以及下面链接中的方法,也只能在一定程度上防止别人看到源码而已。

    更多方法看stackoverflow以及freezing your code.


    ref:

    https://stackoverflow.com/questions/39559677/pyinstaller-encryption-key 

    https://www.zhihu.com/question/30296617 

  • 相关阅读:
    spring boot三种方式设置跨域
    完整卸载Mysql
    【OBIEE】OBIEE集成Echarts作图
    【OBIEE】BIEE培训(一)
    【Oracle】Oracle物化视图
    【Oracle】oracle11g安装过程提示swap size 检查失败问题
    【Linux】centOS7下安装GUI图形界面
    【Nginx】Linux环境搭建nginx负载
    【oracle】Oracle创建带参数视图
    抢票:搭建github最火的12306项目
  • 原文地址:https://www.cnblogs.com/buxizhizhoum/p/7778693.html
Copyright © 2011-2022 走看看