推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Qt的Python代码迷惑器的设计与实现

更新时间:2019-12-25 16:59:31 大小:2M 上传用户:songhuahua查看TA发布的资源 标签:代码迷惑器QtPython软件安全 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

Python源代码编译出的字节码十分便于反编译,使用代码迷惑技术可以有效解决此问题。通过使用Qt编程框架对Python源代码进行词法分析和语法分析,用大写字母“O”和数字“0”组成随机编码将源程序中的模块名、类名、自定义函数名和标识符变量名进行迷惑变换,实现一款Python代码迷惑器。实验对比表明,该Python迷惑器具有图形用户界面、代码迷惑性强、代码执行时间开销小和迷惑不可逆等特点。


部分文件列表

文件名 大小
基于Qt的Python代码迷惑器的设计与实现.pdf 2M

部分页面预览

(完整内容请下载后查看)
Sept.2017  
20179月  
安庆师范大学学报(自然科学版)  
Journal of Anqing Normal University(Natural Science Edition)  
Vol.23 No.3  
233期  
QtPython代码迷惑器的设计与实现  
王一1,2根生*1  
(1.安庆师范大学 计算机与信息学院,安徽 安庆 246133; 2.安徽省高校智能感知与计算重点实验室,安徽 安庆 246133)  
Python源代码编译出的字节码十分便于反编译使用代码迷惑技术可以有效解决此问题。通过使Qt  
编程框架Python源代码进行词法分析和语法分析大写字O0成随机编码将源程序中的模块名、  
类名定义函数名和标识符变量名进行迷惑变换现一Python代码迷惑器。实验对比表明Python迷惑器  
具有图形用户界面码迷惑性强码执行时间开销小和迷惑不可逆等特点。  
关键词代码迷惑器QtPython件安全  
中图分类号TP312 文献标识码A  
DOI10.13757/j.cnki.cn34-1328/n.2017.03.016  
文章编号1007-4260(2017)04-0056-06  
Design and implementation of a python code obfuscator based on Qt  
WANG Yibin1,2 , PEI Gensheng1  
(1. School of Computer and Information, Anqing Normal University, Anqing 246133, China; 2. Key Laboratory of  
Intelligent Perception and Computing of Anhui Province, Anqing 246133, China)  
Abstract: Bytecode compiled by Python source code is very easy to decompile. This problem can be solved  
effectively by using code obfuscation technology. The lexical analysis and parsing of the Python source code is  
used by Qt programming framework. With the capital letters "O" and the number "0" encode the module name,  
class name, custom function name, and identifier variable name in the source program, a Python code  
obfuscatorand is implemented. Experimental comparison shows that the Python code obfuscator has the following  
characteristics, such as GUI(graphical user interface),code with confused, less time cost and irreversible  
confusion, etc.  
Key words: code obfuscator; Qt; Python; software security  
Qt 一种基于跨平台开发图形用户界面  
(GUI)C++框架[1]。但Python语言在执行时, 全问题最为有效的方法之一迷惑器[7]就是利  
代码迷惑技术[3-6]是目前解决代码和软件安  
会将.py 文件编译成为字节码通过 Python 虚  
拟机来执行编译好的字节码Python代码存  
在安全问题。实现对 Python 代码的保护有以下  
用一系列迷惑技术自动化对源程序代码进行分  
对其迷惑处理而使得源代码安全问题  
得到有效解决。目前迷惑技术包括词法迷替  
几种方式(1)发布程序将其打包成二进制代码, 换程序中的类名块名数名和变量名、  
py2exe(2)通过基于 C Python 编译成字节  
.pyc 格式(3)Python 代码迷惑保证程序  
功能和特点不变的情况下Python源代码实现  
迷惑使代码难以分析理解以被反编译[2]。  
控制流迷藏程序执行时的控制流结构(if  
while语句)据迷惑程序中所使用的  
态迷惑器将程序中插入一个解释  
TT 的存在将使得程序在运行时会不断地改  
* 收稿日期2017-05-08  
基金项目安徽省高校自然科学研究重点项KJ2013A177徽省质量工程项014SXZX0112015GXK043。  
作者简介王一宾徽安庆人庆师范大学计算机与信息学院副教授究方向软件安全译理论器学习等。  
E-mail;  
通讯作者裴根生庆师范大学计算机与信息学院硕士研究生究方向为软件安全器学习等E-mail
王一宾根生QtPython码迷惑器的设计与实现  
3期  
· 57 ·  
变自身的代[8]。  
的迷惑后代码流QString中。  
源码替换器将保存QString中的迷惑代码  
流与源 Python 文本代码中要替换的模块名类  
定义函数和标识符变量名进行替换处理。  
1
Python代码迷惑器系统结构  
Python 语言具有丰富和强大的类库为一  
种开源的脚本语言在各种环境种其他语言中  
起到巨大的联结作用[9-10]。目前代码迷惑研究对  
象主要Java语言Python的代码安全研究  
甚少Python语言的代码迷惑技术的研究就  
更少。我们整合利用现有的代码迷惑技术来对  
Python 语言进行代码迷惑保证源程序语义不  
变的情况下Python源代码进行迷惑而实现  
一款高效Python代码迷惑器。  
1.2 Python代码迷惑器运行流程  
针对 Python 代码迷惑器系统结构的 5 个模  
制系统运行流程图2所示。  
1.1 Python代码迷惑器结构框架  
Python代码迷惑器主要实现Python源代码  
的词法迷惑过迷惑后的代码让人难以读懂和  
理解测试可以Python编译器所编译和运行,  
其执行结果与原先源程序代码执行结果相同。  
Python代码迷惑器的结构框架图1所示。  
2 Python代码迷惑器运行流程图  
1 Python代码迷惑器结构框架图  
Python 代码迷惑程序开始运行时先读入  
要迷惑Python源代码过词法分析器进行源  
码文本流的第 1 次扫描除其中的注释和多余  
空行对源代码进行解析分类Python 中的  
关键字算符界符识符变量字和函  
数进行编号并存储使用语法分析器对源码进行  
2 次扫描Python 语法规则对其进一步分  
类存储3 次扫描自定义函数编号存储以  
便后期处理4次扫描惑编码器对已经存储  
QString中的待迷惑部分进行迷惑时源码替  
换器依据迷惑编码器中的代码实现对待迷惑代  
码的替换。当完成 4 次扫描后Python 源代码中  
待迷惑的部分将全部迷惑完毕迷惑后代码全  
部存储起来便后续输出。  
Python代码迷惑器主要由以5个模块组成。  
词法分析器按照 Python 语言的词法规则,  
Python文本代码流解析分类并编号时对  
源码中的注释进行删除处理。将处理好的结果  
存储QString便后面对其分析。  
语法分析器[11]按照 Python 语言的语法规  
存储QString中的词法分析结果进行进一  
步的语法规则分析Python语言中的模块数、  
变量标识符结构进行区分和编号且保Py-  
thon中原有的方法和函数QString中。  
自定义函数变量存储器将语法分析得到的  
函数和变量标识符过算法判断识别出系统定  
义和自定义的函数和变量标识符将自定义的  
函数和变量标识符全部存储QString供给  
迷惑编码器调用。  
2 迷惑算法评价指标  
Christian Collberg 提出了 4 种迷惑算法的性  
能评价体系指标别是效力行成本和  
质量等[7]。  
迷惑编码器调用存储QString中的文本代  
码数据流行特定的编码处理出晦涩难懂  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载