买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于pyc加密的Python源代码保护方法和系统_湖南大学;中电金信软件有限公司_202110650645.X 

申请/专利权人:湖南大学;中电金信软件有限公司

申请日:2021-06-11

公开(公告)日:2022-05-20

公开(公告)号:CN113434874B

主分类号:G06F21/60

分类号:G06F21/60;G06F21/12

优先权:

专利状态码:有效-授权

法律状态:2022.05.20#授权;2021.10.15#实质审查的生效;2021.09.24#公开

摘要:本发明公开了一种基于pyc加密的python源代码保护方法,包括:获取待运行的Python源代码文件中由用户导入的自定义Python文件,对该自定义Python文件进行字节码转化处理,以生成相应的pyc文件,并删除这些自定义Python文件;对pyc文件进行加密处理,以得到加密后的pyc文件,获取Python解释器源代码,对Python解释器源代码进行修改,以得到修改后的Python解释器源代码,对修改后的Python解释器源代码进行重新编译,以生成Python解释器二进制文件,使用生成的Python解释器二进制文件执行待运行的Python源代码文件,以解密得到的加密pyc文件,并得到运行结果。本发明能够解决现有Python源代码混淆方法和Python源代码打包方法存在的对源代码的防护性较低的技术问题。

主权项:1.一种基于pyc加密的python源代码保护方法,其特征在于,包括如下步骤:1获取待运行的Python源代码文件中由用户导入的自定义Python文件,对该自定义Python文件进行字节码转化处理,以生成相应的pyc文件,并删除这些自定义Python文件;2对步骤1得到的pyc文件进行加密处理,以得到加密后的pyc文件;步骤2包括以下子步骤:2-1获取步骤1得到的pyc文件,对该pyc文件进行加密处理,以得到pyc密文;2-2为步骤2-1得到的pyc密文设置自定义加密文件标志,以得到新的pyc密文;2-3将步骤2-2得到的新的pyc密文输出到指定路径,以得到最终的加密pyc文件;3获取Python解释器源代码,对Python解释器源代码进行修改,以得到修改后的Python解释器源代码;步骤3包括以下子步骤:3-1获取Python解释器源代码,对Python解释器源代码进行定位处理,以得到用于读取用户导入的自定义Python文件中内容的函数,其包括_classify_pyc函数、以及PyMarshal_ReadLastObjectFromFile函数;3-2对步骤3-1得到的函数进行修改,以得到新的Python解释器源代码;步骤3-2包括以下子步骤:3-2-1对步骤3-1得到的_classify_pyc函数进行修改,以识别步骤2-2中设置的自定义加密文件标志,并根据识别结果判断对应的pyc文件是否已被加密,如果是,则进入步骤3-2-2,否则进入步骤3-2-3;3-2-2在Python解释器源代码中新增PyMarshal_ReadEncryptedObjectFromFile函数,使用其对加密的pyc文件进行解密,以得到解密后的文件明文;3-2-3使用步骤3-1得到的PyMarshal_ReadLastObjectFromFile函数读取未加密的pyc文件,以得到文件内容;4对步骤3得到的修改后的Python解释器源代码进行重新编译,以生成Python解释器二进制文件;5使用步骤4生成的Python解释器二进制文件执行待运行的Python源代码文件,以解密步骤2加密后的pyc文件,并得到运行结果;步骤5包括以下子步骤:5-1使用步骤3-2-1修改后的_classify_pyc函数识别步骤2-2中设置的自定义加密文件标志,并根据识别结果判断pyc文件是否已被加密,如果加密,则进入步骤5-2,否则进入步骤5-3;5-2使用步骤3-2-2新增的函数PyMarshal_ReadEncryptedObjectFromFile对加密的pyc文件进行解密,以得到解密后的文件明文作为文件内容,进入步骤5-4;5-3使用步骤3-1得到的PyMarshal_ReadLastObjectFromFile函数读取未加密的pyc文件,以得到文件内容,进入步骤5-4;5-4运行得到的文件内容,以得到运行结果。

全文数据:

权利要求:

百度查询: 湖南大学;中电金信软件有限公司 一种基于pyc加密的Python源代码保护方法和系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。