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

被引量 : 0次 | 上传用户:haisheng1984
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
Python编程语言自20世纪90年诞生至今,得益于其简单易学、语法简洁清晰、可扩展性强、支持面向对象等诸多优点,已被广泛的应用于系统管理任务和Web编程等诸多领域。但使用Python编程语言编写的源码文件(.py)编译生成的字节码文件(Bytecode file,.pyc)很容易被逆向工具反编译,这不仅会侵害开发人员的知识产权和经济利益,而且具有严重的安全隐患。于此同时现有的代码混淆技术、文件加密技术、本地编译技术、数字水印技术等防逆转方法存在安全性不足、容易造成字节码文件的执行效率下降、应用体积增加等问题。为此本文围绕基于操作码替换与合并的Python字节码文件防逆转策略展开研究工作,本文的主要的研究内容和成果包括以下三个方面:(1)通过对Python运行框架和Python字节码文件编译、解释执行机制的分析,根据Python虚拟机对字节码文件中的操作码逐一进行解释执行的特性,将Python字节码文件的核心内容co_code域进行简化抽象,建立字节码文件的操作码序列模型与基本块模型。(2)针对现有的代码混淆技术和数字水印技术安全性不足的问题,本文以字节码文件中的操作码序列为基础,结合单表替换密码,设计出了一种适用于Python字节码文件的操作码的操作码替换策略。该策略通过操作码替换来改变操作码序列中操作码的值来达到改变操作码序列内容和防逆转的目的。最后对操作码替换策略在Python2.7.9中予以实现,并根据单表替换密码的特性,利用操作码的统计学规律,评估操作码替换策略的安全性。(3)针对文件加密技术易对字节码文件的执行效率造成影响和本地编译技术造成目标程序体积增加的问题,本文设计出一种操作码合并策略。该策略以字节码文件中的操作码序列的基本块为基础,利用窥孔优化技术将处于同一个基本块中连续出现的多个操作码进行合并,并使用新操作码来代替原来操作码序列中连续出现的多个操作码。通过操作码合并大大缩短了操作码序列的长度,改变了操作码序列的结构和内容,最终达到防逆转的目的。最后对操作码合并策略在Python 2.7.9中予以实现,并对操作码合并策略产生的字节码文件的安全性、执行效率、以及文件大小进行评估与实验。
其他文献
信号到达时间(Time Of Arrive,TOA)估计是无线电定位系统中重要的组成部分。除应用于传统的导航定位系统外,高精度的用户位置信息还可以帮助通信系统更加有效地分配频谱和计算
以自我概念一致性为起点,品牌认同、品牌承诺为中介,对网商品牌忠诚的形成过程进行了实证分析,研究表明:真实自我概念一致性对品牌认同没有显著影响,但理想自我概念一致性不
在机器采收红花过程中,难度在于花丝易掉落,果球易损伤,采收效率低.研究利用TRIZ理论完成采收系统的设计和系统关键部件的创新设计,建立采收系统"物-场"模型,通过分析花丝与果
采用文献资料法、观察法和调查访问等方法对残疾人运动员在短跑起跑中的特殊性进行了深入的分析研究。认为现行短跑起跑规则和发令操作方式对部分残疾组别的运动员存在不公平
目的探讨小细胞肺癌的临床病理特点以及不同性别的差异表现。方法回顾性分析75例小细胞肺癌患者的临床病理资料。结果男性62例,女性13例,平均年龄(64.6±11.2)岁,两种性别的
后来者居上、打破市场既定格局或许还不是最招人恨的,窝窝团更大的"异化"是它的路径:与其他团购网站的滚动式发展不同,窝窝团在短时间内通过"并购加直营"的方式迅速在全国150
目的探讨EP方案耐药广泛期小细胞肺癌安全有效的二线化疗方案。方法根据治疗方案将87例EP方案耐药广泛期小细胞肺癌患者分为观察组(45例)与对照组(42例),观察组接受IN方案治
[目的]探讨中晚期原发性肝癌有效治疗途径。[方法]135例中晚期原发性肝癌患者中20例采用自拟“扶正平肝消瘤汤”单纯中医治疗,其余病例配合介入治疗。[结果]半年生存率为85%(
为提高燃煤发电转化效率,响应国家节能环保的发展策略,公司突破并掌握了再热蒸汽为620℃的超超临界二次再热机组设计制造技术,成为掌握该项技术的首家国内企业。针对该二次再
经济社会持续发展的必然结果是社会城镇化程度的不断提高。伴随着城镇化建设的不断深入,社区在其中的地位越来越高,社区居民的服务需求不断提升。作为广大人民群众日常生活中不