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

基于操作码合并的Python程序防逆转算法

更新时间:2019-12-20 21:30:26 大小:1M 上传用户:songhuahua查看TA发布的资源 标签:python 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

由Python编程语言编写的程序,其编译生成的字节码是针对Python虚拟机的具有特定结构的文件,该文件很容易被逆向工具反编译,从而损害开发者的经济利益和个人隐私。传统的防逆转方法存在其处理后的字节码文件易被破解、程序运行效率低等问题。为此,提出一种新的Python字节码文件保护算法。在不影响程序执行结果的前提下,将Python字节码文件中的多个操作码合并为一个新操作码,改变操作码序列的结构和语义,最终达到防逆转的目的。实验结果表明,该算法不仅能防止Python字节码文件被反编译,而且可以减小字节码文件的存储空间,提升程序执行效率。


部分文件列表

文件名 大小
基于操作码合并的Python程序防逆转算法.pdf 1M

【关注B站账户领20积分】

部分页面预览

(完整内容请下载后查看)
44  
5
2018  
5
年 月  
Vol. 44  
No. 5  
Computer Engineering  
May 2018  
·
·
: 1000-3428( 2018) 05-0113-06  
: A  
: TP309  
中图分类号  
安全术  
文章编号  
文献标志码  
Python  
作码的  
程序防逆算法  
1a2  
1a1b2  
顾乃杰  
王小  
( 1.  
a.  
国科学技术大学 计算机科学与技术学院  
; b.  
技术研究院 肥  
230027;  
2.  
计算与通信软件实验肥  
230027)  
:
Python  
Python  
的程字节码是对  
虚拟机的具有定结该文  
容易向工具损害济利传统字节码  
Python  
字节影响行结  
行效率问题 提出一种新的  
Python  
下 将  
, ,  
字节件中码序列义 最终到  
,  
的目的 实验结果表明 止  
Python  
字节而且小字节存储  
空间 提行效率  
: ; ; ; ;  
关键词 字节虚拟并  
: .  
中文引用格式 顾乃的  
Python  
J.  
法  
201844( 5) : 113-118.  
计算机工程  
: WANG XiaoqiangGU Naijie. Python Program Anti-reversal Algorithm Based on Opcode MergingJ.  
英文引用格式  
Computer Engineering201844( 5) : 113-118.  
Python Program Anti-reversal Algorithm Based on Opcode Merging  
1a2  
1a1b2  
WANG Xiaoqiang GU Naijie  
( 1a. School of Computer Science and Technology; 1b. Institute of Advanced Technology,  
University of Science and Technology of ChinaHefei 230027China;  
2. Anhui Province Key Laboratory of Computing and Communication SoftwareHefei 230027China)  
AbstractThe program written by Python programming language is compiled and generated bytecodewhich is a  
specific structure for Python virtual machine. The file is easily decompressed by reverse toolsthereby damaging the  
economic interests and personal privacy of developers. The traditional method of anti-reversal has the problems of easily  
deciphered bytecode files and low program efficiency after processing. To solve the above problema new Python  
bytecode file protection algorithm is proposedwhich mereges multiple opcodes in the Python bytecode file into a new  
opcode without changing the execute result of the programchanges the opcode sequence structure and semanticsand  
achieves the purpose of anti-reversal finally. Experimental results show that the proposed algorithm not only prevents the  
bytecode files from being decompilatedbut also reduces the storage space of the bytecode file and improves the efficiency  
of program execution.  
Key wordsbytecode file; decompile; anti-reversal; virtual machine opcode; opcode merging  
DOI: 10. 19678 /j. issn. 1000-3428. 0046314  
相比  
Python Python  
0
概述  
字节保留了  
件中部  
Python  
是一种对象计算机程序设  
对  
Python  
虚拟机的具有定结特征  
、 、 、  
由于免费 开源  
。  
具有使字节  
从  
20  
90  
就  
纪  
种结特征 反  
1]  
广使用 如工具  
Dropbox、  
码 如 使 用  
uncompyle2  
2]  
3]  
Reddit、  
是 由  
点  
Python  
Decompyle ++ Easy Python Decompiler  
等工具就  
Python  
( . pyc)  
发  
字节件  
Python  
字节不  
将  
Python  
的程序编传统的  
、 、 ,  
数据而  
:
基金项目 自然科学基金  
( 1408085MKL06) ;  
( B07033) 。  
高等学学科计划项目  
:
作者简介 强  
( 1991—) , , ; 。  
、  
男 硕士 主研方向为软件软件检测 顾乃教授 博士生师  
: 2017-03-10  
: 2017-05-16  
修回日期  
E-mail: wxq9102@ mail. ustc. edu. cn  
收稿日期  
114  
2018  
5
15  
日  
大的具有  
1. 4  
作码换  
研究人员替换  
重的患  
问题 本文提出一种并  
Python Python  
正  
领域行了研究 替换技术字节文  
件中每个替换使生  
影响  
码对原  
Python  
字节件对于包含非的  
码  
码序列 以的目的  
字节件时使用新操  
16]  
Dropbox  
2 ,  
来代码序列中从  
替换技术别被虚拟机  
17]  
PC  
应用 码随中实现  
于  
Python  
字节件中码序列长度 改  
短  
18]  
python-obfuscation  
Python  
有工具  
作  
码序列义  
,  
行随替换 技术的中  
1
Python  
节码文防逆方法  
统  
19]  
码  
如果采取式  
1. 1  
淆  
数据流  
计学分析 用  
, ,  
分析因此 该技术的足  
4-5]  
转换碍攻者  
淆  
2
作码并  
法和数据序  
6-7]  
文本中提价值信一种式  
Python  
字节的主原因字  
JavaPython  
Python  
字  
然  
经代编  
保留了  
字节使然  
件中码序列每个义  
, ,  
遵守原来此 代技  
,  
分析因此 码序列  
Python  
,  
字节代  
或隐护  
Python  
对  
字节码  
, ,  
的重又会虚拟行  
对象名  
,  
字节结果影响 此 本文将索  
行效率一  
窥孔化策略 影响字节确  
影响  
Python  
1. 2  
对  
Python  
码集变  
作  
译  
地编是一种将  
相关的技术 为  
Python  
字节件中作  
序和器一  
8]  
码序列最终的目的  
:
2. 1  
念  
Python  
, (  
后借助的工具 如  
写  
9]  
1
义  
码  
Python  
py2exe  
)
Python  
转换将  
1 Byte  
虚拟占  
即  
器编相关的动最后用一  
长度 定了  
Python  
虚拟条指令  
来运序和转换  
Python 2. 7. 9  
前  
110  
虚拟规范中定了  
61  
件  
数的共  
参  
Python  
地编技术对  
了一定的  
49 ,  
数的个 每个占  
2 Byte  
长度  
式  
Python  
在发时  
2
义  
码序列  
器对应的动序和本文  
S
字节码序列 由码和其  
依赖件 导空  
1
构成 码序列结如图 其  
OP ARG OP OP ARG  
ij  
大大加  
码  
数  
1. 3  
水印  
i
ij  
i
i
1 i  
≤ ≤  
n1  
j 2n  
≤ ≤  
字节所  
宿主数据的具有可  
包含数  
、  
的数以用有  
10-11]  
、 、  
使息  
影响宿主数据的可  
用性 使技术字节反  
1
12]  
作码序列示意图  
译  
使权证明  
然理软件的有力凭  
是能或者发  
13]  
Python  
虚拟字节循  
OP  
2
码序列中码  
i
ARG  
ARG OP  
行 对应  
i
字节参数  
, ,  
实际中无容易  
i1  
i2  
14-15]  
, ,  
虚拟再  
变换软件中除  
OP ARG  
字节参数  
( i + 1)  
取下码  
ARG ,  
重复上骤直至操码序列束  
( i + 1) 2  
( i + 1) 1  
技术为  
JavaPython  
字节件提供  
护  

全部评论(0)

暂无评论

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

  • 打赏
  • 30日榜单

推荐下载