CN105354449A - 一种面向Lua语言的加扰混淆方法和解密方法 - Google Patents

一种面向Lua语言的加扰混淆方法和解密方法 Download PDF

Info

Publication number
CN105354449A
CN105354449A CN201510740424.6A CN201510740424A CN105354449A CN 105354449 A CN105354449 A CN 105354449A CN 201510740424 A CN201510740424 A CN 201510740424A CN 105354449 A CN105354449 A CN 105354449A
Authority
CN
China
Prior art keywords
lua
code
scrambling
obscure
data dictionary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201510740424.6A
Other languages
English (en)
Other versions
CN105354449B (zh
Inventor
文伟平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Devsource Technology Co Ltd
Original Assignee
Beijing Devsource Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Devsource Technology Co Ltd filed Critical Beijing Devsource Technology Co Ltd
Priority to CN201510740424.6A priority Critical patent/CN105354449B/zh
Publication of CN105354449A publication Critical patent/CN105354449A/zh
Application granted granted Critical
Publication of CN105354449B publication Critical patent/CN105354449B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公布了种面向Lua语言的加扰混淆方法和解密方法,通过代码预处理方法、混淆方法和调用栈转换方法,针对代码进行词法分析,建立数据字典:将单词序列组合成语法短语,得到抽象语法树;通过最小词汇排序法进行初级混淆;通过控制流混淆方法进行高级混淆;使得混淆后的Lua源代码在语义上不发生改变的同时还无法被理解,以达到保护程序代码而又不影响程序的正常执行的目的。解密时,通过读取Lua源程序代码,根据数据字典中存储的对应关系进行源代码的逆向,获得解密后的Lua代码,即加扰混淆之前的Lua源程序代码。本发明可以有效地对Lua源程序进行版权保护,防止Lua源程序被逆向或篡改。

Description

一种面向Lua语言的加扰混淆方法和解密方法
技术领域
本发明涉及一种程序加扰混淆方法,尤其涉及一种面向Lua语言的加扰混淆方法和解密方法。
背景技术
随着计算机技术应用日益普及,软件产业得以飞速发展,与此同时,攻击者利用软件逆向技术对软件的各种攻击和未授权使用以及盗版复制等行为也越来越多。逆向分析技术可以被用来在不知道应用程序源代码的情况下分析应用程序的功能流程、篡改应用程序的数据代码等,逆向分析技术如果被不加限制的恶意使用,利用者可以分析获取应用程序的核心技术,也可以篡改应用程序的签名和作者信息,还可以将恶意代码注入到已有的应用程序中并通过二次打包进行伪装,这些行为都极大的危害了应用程序开发者的利益,严重损害了广大用户的隐私安全。随着iOS平台移动的游戏开发成为热点,使得轻量级的小体积的动态脚本语言Lua在2011年6月首次突破了TIOBE编程语言的前十名。由于Lua的语法简洁美观和最快的运行速度,使得Lua已成为嵌入式脚本语言的最佳选择。Lua代码高效的运行速率取决于Lua代码是在操作系统和移动终端上编译并运行的,这样,该动态脚本语言在娱乐和用户体验的iOS平台的发展空间是非常大的。
代码混淆技术是近几年才发展并兴起的一种新技术。第一次对代码混淆进行系统研究是在上世纪90年代末开始的,是Java语言的迅速发展引起了对混淆技术的研究热潮。这是因为Java目标代码—字节代码(bytecode)很容易被反编译为Java源代码,这就迫切要求有效的保护字节代码的方法。第一次对混淆转换进行了详细的总结和分类的是Collberg,他在《ATaxonomyofObfuscationTransformations.DepartmentofComputerScience》中第一次对混淆转换进行了详细的总结和分类,也首次提出了混淆转换的有效性与性能的若干评价标准。他将混淆转换分为四类:外形混淆转换、控制混淆转换、数据混淆转换和预防性混淆转换。
ChenxiWang在《Asecurityarchitectureforsurvivabilitymechanisms:[dissertation]》中实现了在C语言源代码上的多种控制混淆转换与数据混淆转换;还给出了混淆转换造成的性能过载以及混淆转换对静态分析工具IBMNPICtool以及RutgerPAFtoolkit的有效性。
Hohhl提出用带有时间限制的黑盒(time-limitedblackbox)方法来保护移动Agent。这里的黑盒就是指混淆转换过的Agent程序。对移动Agent进行逆向工程,做出有意义的发现或修改需要一定的时间,据此,限制移动Agent在目的主机上运行的时间。在派发移动Agent的之前,需要对其进行混淆转换,这增加了逆向工程的代价,从而延长在目的主机上的运行时间。
CullenLinn在《ObfuscationofexecutablecodetoimproveresistancetostaticDisassembly》中从另一个角度研究了目标代码混淆技术,通过对反汇编过程的分析,采用一种混淆方法能够阻挠逆向工程,使得获取程序的汇编指令非常困难或不能正确得到程序的汇编指令。
综上所述,现有的加扰混淆方法大多是针对C语言和Java语言的,缺少面向Lua语言的成熟的混淆方法。
发明内容
为了克服上述现有技术的不足,本发明提供一种面向Lua语言的加扰混淆方法和解密方法,包括代码预处理、混淆算法和调用栈转换,该方法能够保证混淆后的Lua源代码在语义上不发生改变,不影响程序的正常执行;同时使得混淆后的Lua源代码难以理解,可起到保护版权,防止他人剽窃软件中的智力成果或对软件进行有目的的篡改的作用。
本发明提供的技术方案是:
一种面向Lua语言的加扰混淆方法,通过代码预处理方法、混淆方法和调用栈转换方法,使得混淆后的Lua源代码在语义上不发生改变的同时还无法被理解,以达到保护程序代码而又不影响程序的正常执行的目的;包括如下步骤:
A.进行代码预处理,执行如下操作:
A1)进行代码预处理设置;
A2)针对代码进行词法分析,根据构词规则识别单词,建立数据字典:
A3)针对词法分析得到的单词序列进行语法分析,将单词序列组合成语法短语,得到抽象语法树;
A4)根据A2)建立的数据字典和A3)形成的抽象语法树进行遍历,获取遍历结果;
B.对Lua源程序进行加扰混淆,执行如下操作:
B1)设置混淆参数;混淆参数包括混淆等级和混淆后源文件的输出路径;
B2)读取步骤A2)建立的数据字典;
B3)通过最小词汇排序法进行初级混淆,将初级混淆前和初级混淆后的名称存储在数据字典中;
B4)通过控制流混淆方法进行高级混淆,改变源程序的执行流程,在数据字典中保存高级混淆前后的调用栈信息;
B5)获得加扰混淆后的Lua代码,保存代码,结束操作。
上述面向Lua语言的加扰混淆方法中,步骤A2)所述进行词法分析,建立数据字典,具体是:从左到右逐个字符读入Lua源程序,根据构词规则识别单词,建立得到所述Lua源程序的数据字典。
上述面向Lua语言的加扰混淆方法中,步骤A4)所述抽象语法树包括所述抽象语法树的头结点chunk和整个抽象语法树对象;步骤A4)所述遍历结果包括抽象语法树对象CommonTree对象的所有节点,对应Lua源代码中的所有模块名。
上述面向Lua语言的加扰混淆方法中,步骤B3)所述进行初级混淆,具体是,根据Lua源文件路径递归读取目录下的文件,读取步骤A2)得到的所述Lua源程序的数据字典,采用最小词汇排序法产生单词对Lua源程序中的名称进行替换;同时将混淆前和混淆后的相应名称均存储在数据字典中。
上述面向Lua语言的加扰混淆方法中,所述名称包括变量名、函数名、参数名和表名。
本发明同时还提供一种针对使用上述面向Lua语言的加扰混淆方法进行加扰混淆后的Lua源程序代码进行解密的方法,通过读取Lua源程序代码,根据数据字典中存储的对应关系进行源代码的逆向,具体执行如下操作:
C1)读取所述Lua源程序代码的数据字典;
C2)根据数据字典,针对混淆词汇进行逆向,将混淆后的名称替换为混淆前的名称;
C3)根据数据字典,读取并解析调用栈信息;
C4)转换调用栈信息,得到转换后的调用栈信息,即获得解密后的Lua程序代码。
上述针对使用加扰混淆方法进行加扰混淆后的Lua源程序代码进行解密的方法中,步骤C3)所述读取并解析调用栈信息,具体包括:根据数据字典获得混淆后的调用栈信息;根据调用栈信息解析名称;将混淆后的名称转化为混淆前的名称。
与现有技术相比,本发明的有益效果是:
本发明提供一种面向Lua语言的加扰混淆方法和解密方法,包括代码预处理、混淆算法和调用栈转换,利用本发明提供的技术方案,能够保证混淆后的Lua源代码在语义上不发生改变,不影响程序的正常执行;同时使得混淆后的Lua源代码难以理解,可以有效地对Lua源程序进行版权保护,防止其被逆向或篡改。
附图说明
图1是本发明实施例的整体流程框图。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
本发明提供一种面向Lua语言的加扰混淆方法,该方法能够保证混淆后的Lua源代码在语义上不发生改变,不影响程序的正常执行;同时使得混淆后的Lua源代码难以理解,可起到保护版权,防止他人剽窃软件中的智力成果或对软件进行有目的的篡改的作用。
图1是本发明实施例提供的面向Lua语言的加扰混淆方法的整体流程框图,包括进行预处理、加密或解密流程;操作步骤包括进行预处理、进行加扰混淆或逆向和转换调用栈等。
首先对Lua源代码进行预处理,然后根据用户选择的功能项(加密或解密)执行操作,其具体实施方式如下:
A.进行预处理,一方面可以读取并保存Lua源代码中的所有模块名,避免混淆后的Lua源文件无法运行;另外也可以生成符号表和抽象语法树,为混淆步骤提供便利。在对Lua源代码进行预处理时,执行如下操作:
A1)进行预处理设置;
A2)进行词法分析,建立数据字典:
从左到右一个字符一个字符地读入Lua源程序,对构成源程序的字符流进行扫描,然后根据构词规则识别单词,建立数据字典;
A3)语法分析:对词法分析得到的单词序列进行语法分析,将单词序列组合成各类语法短语,从而得到抽象语法树,包括抽象语法树的头结点chunk和整个抽象语法树对象;
A4)遍历:根据选择的功能项和A2)建立的数据字典,对A3)语法分析阶段形成的抽象语法树进行遍历,并获取遍历结果;
遍历结果包括CommonTree对象的所有节点;保存Lua源代码中的所有模块名。
通过预处理,得到Lua源代码模块CommonTree对象的所有节点,保存Lua源代码中的所有模块名;然后可根据用户选择的功能项(加密或解密)执行操作。加密保证混淆后的Lua源代码在语义上不发生改变,不影响程序的正常执行;同时使得混淆后的Lua源代码难以理解,可起到保护版权,防止他人剽窃软件中的智力成果或对软件进行有目的的篡改的作用。
B.在加密时,对Lua源程序进行加扰混淆时,执行如下操作:
B1)设置混淆参数;
混淆参数包括混淆等级和混淆后源文件的输出路径等
B2)读取步骤A2)建立的数据字典;
B3)通过最小词汇排序法进行初级混淆;
具体地,根据Lua源文件路径递归读取目录下的文件,读取数据字典,采用最小词汇排序法产生单词对Lua源程序中的变量名、函数名、参数名、表名等进行替换,将混淆前和混淆后的名称存储在数据字典中;
B4)通过控制流混淆方法进行高级混淆,改变源程序的执行流程,在数据字典中保存混淆前后的调用栈信息;
B5)获得加扰混淆后的Lua代码,保存代码,结束操作。
使用上述面向Lua语言的加扰混淆方法对Lua语言代码进行加密后,得到了加密后的Lua代码;若需要对加密后的Lua代码进行调试,则要对代码进行解密。
C.对代码进行解密,即进行加密的逆向,具体是读取Lua源代码,根据数据字典中存储的对应关系进行源代码的逆向,执行如下操作:
C1)读取数据字典;
C2)混淆词汇逆向;
根据数据字典,将输入的混淆后的名称替换为混淆前的名称;
C3)读取并解析调用栈信息;
根据数据字典,数据字典保存了混淆后的调用栈信息;根据调用栈信息解析函数名,将混淆后的函数名转化为混淆前的函数名的名称;
C4)转换调用栈信息,得到转换后的调用栈信息,获得解密后的Lua代码,即加扰混淆之前的Lua源程序代码。
下面通过实例对本发明做进一步说明。
实施例:
为混淆某文件夹下的500个Lua源代码文件,首先对其进行预处理操作,对Lua源代码进行词法分析、语法分析,得到数据字典和抽象语法树。数据字典中保存变量名、函数名、参数名、表名等,抽象语法树保存源代码的抽象语法结构。根据功能项需求,选择进行加密或者解密过程。
在加密过程中,递归地读取Lua源代码文件,采用最小词汇排序法对Lua源代码进行初级混淆,最小词汇排序法具体是:根据字符串在数组中的位置k,将k对26取余,设所得余数为num,将第num个小写字母添加到新字符头部,每次取余后k除26后取整得到新的k,重复以上操作直到k<1,最后用新得到的字符串代替原字符串;将新得到的字符串和原字符串都保存到数据字典中;
最小词汇排序法的源代码如下所示:
接下来对Lua源程序进行控制流混淆,具体步骤是:输入一个抽象语法树,根据在最小词汇法中得到的变量名(为上述的字符串),利用不透明谓词构造函数,得到不透明谓词P,在抽象语法树中选取合适的插入点O,插入不透明谓词P,从而对控制流进行混淆,可改变源程序的执行流程。
通过上述方法,即得到了加密后的Lua代码。
如果程序员想对加密后的Lua代码进行调试,那么要对代码进行解密。解密的步骤具体是:读取数据字典,根据数据字典中存储的对应关系进行源代码的逆向,还原源代码的变量名、函数名、参数名、表名等;然后读取调用栈信息,解析,将混淆后的栈名转化为混淆前的名称;完成解密,集将加密后的代码还原成源代码。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

Claims (7)

1.一种面向Lua语言的加扰混淆方法,通过代码预处理方法、混淆方法和调用栈转换方法,使得混淆后的Lua源代码在语义上不发生改变的同时还无法被理解,以达到保护程序代码而又不影响程序的正常执行的目的;包括如下步骤:
A.进行代码预处理,执行如下操作:
A1)进行代码预处理设置;
A2)针对代码进行词法分析,根据构词规则识别单词,建立数据字典:
A3)针对词法分析得到的单词序列进行语法分析,将单词序列组合成语法短语,得到抽象语法树;
A4)根据A2)建立的数据字典和A3)形成的抽象语法树进行遍历,获取遍历结果;
B.对Lua源程序进行加扰混淆,执行如下操作:
B1)设置混淆参数;混淆参数包括混淆等级和混淆后源文件的输出路径;
B2)读取步骤A2)建立的数据字典;
B3)通过最小词汇排序法进行初级混淆,将初级混淆前和初级混淆后的名称存储在数据字典中;
B4)通过控制流混淆方法进行高级混淆,改变源程序的执行流程,在数据字典中保存高级混淆前后的调用栈信息;
B5)获得加扰混淆后的Lua代码,保存代码,结束操作。
2.如权利要求1所述面向Lua语言的加扰混淆方法,其特征是,步骤A2)所述进行词法分析,建立数据字典,具体是:从左到右逐个字符读入Lua源程序,根据构词规则识别单词,建立得到所述Lua源程序的数据字典。
3.如权利要求1所述面向Lua语言的加扰混淆方法,其特征是,步骤A4)所述抽象语法树包括所述抽象语法树的头结点chunk和整个抽象语法树对象;步骤A4)所述遍历结果包括抽象语法树对象CommonTree对象的所有节点,对应Lua源代码中的所有模块名。
4.如权利要求1所述面向Lua语言的加扰混淆方法,其特征是,步骤B3)所述进行初级混淆,具体是,根据Lua源文件路径递归读取目录下的文件,读取步骤A2)得到的所述Lua源程序的数据字典,采用最小词汇排序法产生单词对Lua源程序中的名称进行替换;同时将混淆前和混淆后的相应名称均存储在数据字典中。
5.如权利要求4所述面向Lua语言的加扰混淆方法,其特征是,所述名称包括变量名、函数名、参数名和表名。
6.一种针对使用权利要求1~5所述面向Lua语言的加扰混淆方法进行加扰混淆后的Lua源程序代码进行解密的方法,其特征是,所述解密通过读取Lua源程序代码,根据数据字典中存储的对应关系进行源代码的逆向,具体执行如下操作:
C1)读取所述Lua源程序代码的数据字典;
C2)根据数据字典,针对混淆词汇进行逆向,将混淆后的名称替换为混淆前的名称;
C3)根据数据字典,读取并解析调用栈信息;
C4)转换调用栈信息,得到转换后的调用栈信息,即获得解密后的Lua程序代码。
7.如权利要求6所述针对使用加扰混淆方法进行加扰混淆后的Lua源程序代码进行解密的方法,其特征是,步骤C3)所述读取并解析调用栈信息,具体包括:根据数据字典获得混淆后的调用栈信息;根据调用栈信息解析名称;将混淆后的名称转化为混淆前的名称。
CN201510740424.6A 2015-11-04 2015-11-04 一种面向Lua语言的加扰混淆方法和解密方法 Expired - Fee Related CN105354449B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510740424.6A CN105354449B (zh) 2015-11-04 2015-11-04 一种面向Lua语言的加扰混淆方法和解密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510740424.6A CN105354449B (zh) 2015-11-04 2015-11-04 一种面向Lua语言的加扰混淆方法和解密方法

Publications (2)

Publication Number Publication Date
CN105354449A true CN105354449A (zh) 2016-02-24
CN105354449B CN105354449B (zh) 2018-08-21

Family

ID=55330420

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510740424.6A Expired - Fee Related CN105354449B (zh) 2015-11-04 2015-11-04 一种面向Lua语言的加扰混淆方法和解密方法

Country Status (1)

Country Link
CN (1) CN105354449B (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106775935A (zh) * 2016-12-01 2017-05-31 携程旅游网络技术(上海)有限公司 解释型语言的解析方法及其装置和计算机系统
CN107038354A (zh) * 2016-02-03 2017-08-11 阿里巴巴集团控股有限公司 代码混淆方法、代码运行方法及装置
CN107203707A (zh) * 2016-03-16 2017-09-26 阿里巴巴集团控股有限公司 一种实现程序代码混淆的方法和系统
CN107229848A (zh) * 2017-06-12 2017-10-03 北京洋浦伟业科技发展有限公司 一种代码加固方法和装置
CN107992725A (zh) * 2017-12-29 2018-05-04 北京星河星云信息技术有限公司 一种代码加密、解密方法及装置
CN108182358A (zh) * 2017-12-28 2018-06-19 江苏通付盾信息安全技术有限公司 文件保护方法、装置、计算设备及计算机存储介质
CN108446536A (zh) * 2018-02-12 2018-08-24 北京梆梆安全科技有限公司 一种基于符号执行和单点逻辑的源代码加固方法及装置
CN109033764A (zh) * 2017-06-09 2018-12-18 腾讯科技(深圳)有限公司 反混淆处理方法及终端、计算机设备
CN109614772A (zh) * 2018-11-20 2019-04-12 江苏通付盾信息安全技术有限公司 基于应用安装包文件的代码转换方法及装置
CN109711119A (zh) * 2018-12-29 2019-05-03 360企业安全技术(珠海)有限公司 加密代码的运行方法及装置、存储介质、终端
CN109815651A (zh) * 2019-01-18 2019-05-28 北京智游网安科技有限公司 基于中间代码的iOS应用程序处理方法、系统及介质
CN109992987A (zh) * 2017-12-29 2019-07-09 深圳市融汇通金科技有限公司 基于Nginx的脚本文件保护方法、装置及终端设备
CN110309629A (zh) * 2019-06-18 2019-10-08 阿里巴巴集团控股有限公司 一种网页代码加固方法、装置及设备
CN110555291A (zh) * 2019-08-06 2019-12-10 苏宁云计算有限公司 网页脚本代码保护方法及装置
CN110647329A (zh) * 2019-08-13 2020-01-03 平安科技(深圳)有限公司 代码混淆方法、装置、计算机设备和存储介质
CN111475168A (zh) * 2020-04-14 2020-07-31 中国人民解放军战略支援部队信息工程大学 一种代码编译方法及装置
CN113434148A (zh) * 2021-06-30 2021-09-24 平安普惠企业管理有限公司 防解密客户端开发编译方法、装置、电子设备及存储介质
CN113761486A (zh) * 2021-09-10 2021-12-07 上海熙菱信息技术有限公司 一种基于语法糖解析的一键式代码混淆方法
CN117574334A (zh) * 2023-08-17 2024-02-20 广东工业大学 一种结合md5与序列到序列模型的代码混淆方法及系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110888644B (zh) * 2019-12-06 2023-03-31 成都安恒信息技术有限公司 一种自定义混淆方案的JavaScript代码混淆方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000072112A2 (en) * 1999-05-12 2000-11-30 Fraunhofer Crcg, Inc. Obfuscation of executable code
CN101841515A (zh) * 2009-03-19 2010-09-22 北京理工大学 可变目标的协议数据单元编解码代码自动生成的实现方法
CN103927164A (zh) * 2014-03-10 2014-07-16 珠海市君天电子科技有限公司 一种脚本混淆方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000072112A2 (en) * 1999-05-12 2000-11-30 Fraunhofer Crcg, Inc. Obfuscation of executable code
CN101841515A (zh) * 2009-03-19 2010-09-22 北京理工大学 可变目标的协议数据单元编解码代码自动生成的实现方法
CN103927164A (zh) * 2014-03-10 2014-07-16 珠海市君天电子科技有限公司 一种脚本混淆方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
苏庆等: "混沌不透明谓词在代码混淆中的研究与应用", 《计算机科学》 *

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107038354A (zh) * 2016-02-03 2017-08-11 阿里巴巴集团控股有限公司 代码混淆方法、代码运行方法及装置
CN107203707A (zh) * 2016-03-16 2017-09-26 阿里巴巴集团控股有限公司 一种实现程序代码混淆的方法和系统
CN107203707B (zh) * 2016-03-16 2020-05-12 阿里巴巴集团控股有限公司 一种实现程序代码混淆的方法和系统
CN106775935B (zh) * 2016-12-01 2019-09-24 携程旅游网络技术(上海)有限公司 解释型语言的解析方法及其装置和计算机系统
CN106775935A (zh) * 2016-12-01 2017-05-31 携程旅游网络技术(上海)有限公司 解释型语言的解析方法及其装置和计算机系统
CN109033764A (zh) * 2017-06-09 2018-12-18 腾讯科技(深圳)有限公司 反混淆处理方法及终端、计算机设备
CN107229848A (zh) * 2017-06-12 2017-10-03 北京洋浦伟业科技发展有限公司 一种代码加固方法和装置
CN108182358B (zh) * 2017-12-28 2020-09-29 江苏通付盾信息安全技术有限公司 文件保护方法、装置、计算设备及计算机存储介质
CN108182358A (zh) * 2017-12-28 2018-06-19 江苏通付盾信息安全技术有限公司 文件保护方法、装置、计算设备及计算机存储介质
CN107992725A (zh) * 2017-12-29 2018-05-04 北京星河星云信息技术有限公司 一种代码加密、解密方法及装置
CN109992987A (zh) * 2017-12-29 2019-07-09 深圳市融汇通金科技有限公司 基于Nginx的脚本文件保护方法、装置及终端设备
CN109992987B (zh) * 2017-12-29 2021-04-27 港融科技有限公司 基于Nginx的脚本文件保护方法、装置及终端设备
CN108446536A (zh) * 2018-02-12 2018-08-24 北京梆梆安全科技有限公司 一种基于符号执行和单点逻辑的源代码加固方法及装置
CN108446536B (zh) * 2018-02-12 2021-08-13 北京梆梆安全科技有限公司 一种基于符号执行和单点逻辑的源代码加固方法及装置
CN109614772A (zh) * 2018-11-20 2019-04-12 江苏通付盾信息安全技术有限公司 基于应用安装包文件的代码转换方法及装置
CN109711119A (zh) * 2018-12-29 2019-05-03 360企业安全技术(珠海)有限公司 加密代码的运行方法及装置、存储介质、终端
CN109815651A (zh) * 2019-01-18 2019-05-28 北京智游网安科技有限公司 基于中间代码的iOS应用程序处理方法、系统及介质
CN110309629A (zh) * 2019-06-18 2019-10-08 阿里巴巴集团控股有限公司 一种网页代码加固方法、装置及设备
CN110309629B (zh) * 2019-06-18 2023-10-10 创新先进技术有限公司 一种网页代码加固方法、装置及设备
CN110555291A (zh) * 2019-08-06 2019-12-10 苏宁云计算有限公司 网页脚本代码保护方法及装置
CN110555291B (zh) * 2019-08-06 2021-08-27 苏宁云计算有限公司 网页脚本代码保护方法及装置
CN110647329A (zh) * 2019-08-13 2020-01-03 平安科技(深圳)有限公司 代码混淆方法、装置、计算机设备和存储介质
CN111475168A (zh) * 2020-04-14 2020-07-31 中国人民解放军战略支援部队信息工程大学 一种代码编译方法及装置
CN111475168B (zh) * 2020-04-14 2023-05-05 中国人民解放军战略支援部队信息工程大学 一种代码编译方法及装置
CN113434148A (zh) * 2021-06-30 2021-09-24 平安普惠企业管理有限公司 防解密客户端开发编译方法、装置、电子设备及存储介质
CN113434148B (zh) * 2021-06-30 2024-03-22 广东迅维信息产业股份有限公司 防解密客户端开发编译方法、装置、电子设备及存储介质
CN113761486A (zh) * 2021-09-10 2021-12-07 上海熙菱信息技术有限公司 一种基于语法糖解析的一键式代码混淆方法
CN113761486B (zh) * 2021-09-10 2023-09-05 上海熙菱信息技术有限公司 一种基于语法糖解析的一键式代码混淆方法
CN117574334A (zh) * 2023-08-17 2024-02-20 广东工业大学 一种结合md5与序列到序列模型的代码混淆方法及系统
CN117574334B (zh) * 2023-08-17 2024-05-28 广东工业大学 一种结合md5与序列到序列模型的代码混淆方法及系统

Also Published As

Publication number Publication date
CN105354449B (zh) 2018-08-21

Similar Documents

Publication Publication Date Title
CN105354449A (zh) 一种面向Lua语言的加扰混淆方法和解密方法
CN103544414B (zh) 一种Android系统应用的深度代码混淆方法
CN108595921B (zh) 一种源代码中字符串的混淆方法和装置
US8589897B2 (en) System and method for branch extraction obfuscation
US9053300B2 (en) Device and a method for generating software code
CN110598379B (zh) 一种实现字符串混淆的方法、设备及存储介质
CN110210190A (zh) 一种基于二次汇编的代码混淆方法
Kovacheva Efficient code obfuscation for Android
CN106778101B (zh) 一种基于控制流和外形混淆的Python代码混淆方法
CN108537012B (zh) 基于变量和代码执行顺序的源代码混淆方法及装置
Lu et al. Ropsteg: program steganography with return oriented programming
CN105787305A (zh) 一种抵抗符号执行和污点分析的软件保护方法
Jain et al. Enriching reverse engineering through visual exploration of Android binaries
CN104462990A (zh) 字符串加解密方法和装置
US8775826B2 (en) Counteracting memory tracing on computing systems by code obfuscation
CN107577925B (zh) 基于双重ARM指令虚拟的Android应用程序保护方法
Gui et al. Cross-language binary-source code matching with intermediate representations
KR102001046B1 (ko) 공통 중간 언어를 위한 보안 제공 장치와 방법, 및 보안 실행 장치와 방법
CN112115427A (zh) 代码混淆方法、装置、电子设备及存储介质
EP2856377B1 (en) Identification and execution of subsets of a plurality of instructions in a more secure execution environment
Khoo Decompilation as search
CN101887500B (zh) 基于标签的程序控制流深度混淆方法
KR102430335B1 (ko) 가상화 코드의 난독화를 강화하는 방법 및 그 장치
CN114357391A (zh) 数据加、解密方法及计算机存储介质
CN105095698A (zh) 基于最近执行的程序代码的程序代码模糊处理

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180821

Termination date: 20191104