首页> 中文学位 >基于操作码的Python程序防逆转算法研究与实现
【6h】

基于操作码的Python程序防逆转算法研究与实现

代理获取

目录

声明

摘要

第1章 绪论

1.1 研究背景

1.1.1 脚本语言和Python的发展

1.1.2 Python程序和字节码文件

1.2 操作码替换与合并的研究意义

1.3 论文的主要工作

1.4 论文结构

第2章 Python总体架构与传统的防逆转方式

2.1 Python总体架构

2.1.1 Python模块

2.1.2 Python运行时系统

2.1.3 Python虚拟机

2.2 传统的Python字节码文件防逆转方式

2.2.1 代码混淆技术

2.2.2 文件加密技术

2.2.3 本地编译技术

2.2.4 数字水印技术

2.3 本章小结

第3章 Python字节码文件与其解释执行机制

3.1 Python字节码文件

3.1.1 PyCodeObject

3.1.2 co_code域

3.2 Python字节码文件的解释执行

3.3 本章小结

第4章 操作码替换与合并的设计

4.1 操作码序列

4.2 操作码替换的设计

4.2.1 寻找操作码编译和解释执行规律

4.2.2 打乱操作码映射关系

4.3 操作码合并的设计

4.3.1 提取操作码信息

4.3.2 频率统计

4.3.3 提取基本块信息

4.3.4 扩充操作码集

4.4 操作码合并示例

4.4.1 获取段代码的操作码信息

4.4.2 频率统计

4.4.3 获取基本块信息

4.4.4 扩充操作码集

4.4.5 操作码序列合并前后比较

4.5 本章小结

第5章 操作码替换与合并方式的性能评测

5.1.1 操作码替换安全性分析

5.1.2 操作码替换实验检验

5.2 操作码合并性能评测

5.2.1 安全性分析

5.2.2 执行效率分析

5.2.3 存储空间分析

5.2.4 操作码合并实验

5.3 本章小结

第6章 全文总结

6.2 下一步工作

参考文献

致谢

在读期间发表的学术论文与取得的研究成果

展开▼

摘要

Python编程语言自20世纪90年诞生至今,得益于其简单易学、语法简洁清晰、可扩展性强、支持面向对象等诸多优点,已被广泛的应用于系统管理任务和Web编程等诸多领域。但使用Python编程语言编写的源码文件(.py)编译生成的字节码文件(Bytecode file,.pyc)很容易被逆向工具反编译,这不仅会侵害开发人员的知识产权和经济利益,而且具有严重的安全隐患。于此同时现有的代码混淆技术、文件加密技术、本地编译技术、数字水印技术等防逆转方法存在安全性不足、容易造成字节码文件的执行效率下降、应用体积增加等问题。
  为此本文围绕基于操作码替换与合并的Python字节码文件防逆转策略展开研究工作,本文的主要的研究内容和成果包括以下三个方面:
  (1)通过对Python运行框架和Python字节码文件编译、解释执行机制的分析,根据Python虚拟机对字节码文件中的操作码逐一进行解释执行的特性,将Python字节码文件的核心内容co_code域进行简化抽象,建立字节码文件的操作码序列模型与基本块模型。
  (2)针对现有的代码混淆技术和数字水印技术安全性不足的问题,本文以字节码文件中的操作码序列为基础,结合单表替换密码,设计出了一种适用于Python字节码文件的操作码的操作码替换策略。该策略通过操作码替换来改变操作码序列中操作码的值来达到改变操作码序列内容和防逆转的目的。最后对操作码替换策略在Python2.7.9中予以实现,并根据单表替换密码的特性,利用操作码的统计学规律,评估操作码替换策略的安全性。
  (3)针对文件加密技术易对字节码文件的执行效率造成影响和本地编译技术造成目标程序体积增加的问题,本文设计出一种操作码合并策略。该策略以字节码文件中的操作码序列的基本块为基础,利用窥孔优化技术将处于同一个基本块中连续出现的多个操作码进行合并,并使用新操作码来代替原来操作码序列中连续出现的多个操作码。通过操作码合并大大缩短了操作码序列的长度,改变了操作码序列的结构和内容,最终达到防逆转的目的。最后对操作码合并策略在Python2.7.9中予以实现,并对操作码合并策略产生的字节码文件的安全性、执行效率、以及文件大小进行评估与实验。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号