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 

原文地址:https://www.cnblogs.com/buxizhizhoum/p/7778693.html