斑马斑马-12-白云之上-python 源码加密

一、简介

  Python 语言写的程序无需编译成二进制文件代码,可以直接从源代码运行程序。在计算机内部,Python 解释器把源代码转换成字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行,这使得 Python 程序更加易于移植。

  通过打包工具(py2exe、PyInstaller 等)将 Python 脚本打包成可执行文件。不同的打包工具基本都可以通过反编译工具将 exe 文件反编译出源码来。

  第一种加密Python源代码的方式,是将.py文件转化为.pyc文件,但这种加密方式很容易被反编译,因此实用性并不高。
  第二种加密Python源代码的方式,是将.py文件转化为.so文件,这样加密的可靠性非常高,无法被被人破解,也就很好地保护了源代码。

二、demo

1:环境简介  

  • 系统:CentOS Linux release 8.1.1911 (Core)  【linux查看命令:cat /etc/redhat-release】
  • python:python3.6 

2:Hello,Demo

  其中Cython为Python的第三方模块。安装的命令如下:pip3 install cython  

  

   我们创建三个文件

  2.1 待加密的文件,也就是我们核心业务代码  

import datetime

class Today():
    def get_time(self):
        print(datetime.datetime.now())

    def say(self):
        print("hello from JC!")
mytest.py

  2.2 setup.py 加密方法

from distutils.core import setup
from Cython.Build import cythonize

setup(ext_modules = cythonize(["mytest.py"]))
setup.py

  2.3 so_test.py 调用mytest文件进行测试

from mytest import Today
t=Today()
t.get_time()
t.say()
so_test.py

 

 

   python3 so_test.py   --测试

  python3 setup.py build_ext --加密

  

 生成的so文件一方面对我们的源程序进行了加密,另一方面,我们还能继续调用原来的mytest.py文件中的内容。为了验证此功能,我们先删除mytest.py,再运行so_test.py文件,如下:

 

 三、利用第三方工具

 

1:Virbox Protector Trial简介

  一键加壳工具,提供强大的代码虚拟化、高级混淆与智能压缩技术,保护您的程序免受逆向工程和非法修改,并与您的程序链接在一起,使得您的程序无法离开保护代码正常运行。

2:特点

高级虚拟化:将被保护的程序代码转换为虚拟机代码,程序运行时,虚拟机将模拟程序执行,进入和离开虚拟机都有高级代码混淆。虚拟机配合代码混淆可以达到很好的保护效果,尤其是开发者的私有逻辑。

代码混淆:高级混淆利用花指令和代码非等价变形等技术,将程序的代码,转换成一种功能上等价,但是难于阅读和理解的代码,可充分干扰静态分析。

智能压缩:应用程序的解压缩含有动态密码,让一切自动脱壳工具失效,有效的阻止 .Net、PE 程序的直接反编译,并且有效的防止了加壳后的应用体积膨胀。

3:使用

  3.1 下载试用并安装:https://shell.virbox.com/apply.html

    3.2 文档教程:https://shell.virbox.com/vpsdocs/index.html

由于需要费用,暂时不考虑这种方案

原文地址:https://www.cnblogs.com/YK2012/p/12848623.html