CN110309631B - 一种编程语言结构混淆处理方法、智能终端及存储介质 - Google Patents
一种编程语言结构混淆处理方法、智能终端及存储介质 Download PDFInfo
- Publication number
- CN110309631B CN110309631B CN201910629655.8A CN201910629655A CN110309631B CN 110309631 B CN110309631 B CN 110309631B CN 201910629655 A CN201910629655 A CN 201910629655A CN 110309631 B CN110309631 B CN 110309631B
- Authority
- CN
- China
- Prior art keywords
- function
- template
- code
- array
- programming language
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 28
- 230000006870 function Effects 0.000 claims abstract description 227
- 238000004458 analytical method Methods 0.000 claims abstract description 84
- 238000000034 method Methods 0.000 claims abstract description 15
- 230000001131 transforming effect Effects 0.000 claims abstract description 7
- 230000014509 gene expression Effects 0.000 claims description 58
- 238000012885 constant function Methods 0.000 claims description 22
- 238000004422 calculation algorithm Methods 0.000 claims description 20
- 238000003491 array Methods 0.000 claims description 13
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种编程语言结构混淆处理方法、智能终端及存储介质,所述方法包括:通过词法分析和语法分析,从源代码中提取特征结构;将提取的所述特征结构进行加密或者变换处理生成多个函数模板,并将所述特征结构进行加密处理生成代码模板;将所述函数模板中的源码替换为函数调用、成员函数调用或者变量的形式,并将所述代码模板中的源码替换为解密代码的形式。本发明通过模板替换的方式,混淆了代码结构,API的隐藏可以防止源码泄露,增加了软件保护的强度。
Description
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种编程语言结构混淆处理方法、智能终端及存储介质。
背景技术
JavaScript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类;它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
现有技术中常见的JavaScript代码混淆,主要是对代码进行压缩,函数名称、变量名称、去空格、去注释等,JavaScript代码业务逻辑,代码结构,核心API直接被暴露,有些混淆工具也只是做下简单编码,使其结构改变,但是也能很容易的破解出来,导致源代码泄露,软件被复制。
因此,现有技术还有待于改进和发展。
发明内容
本发明的主要目的在于提供一种编程语言结构混淆处理方法、智能终端及存储介质,旨在解决现有技术中源代码泄露,软件被复制的问题。
为实现上述目的,本发明提供一种编程语言结构混淆处理方法,所述编程语言结构混淆处理方法包括如下步骤:
通过词法分析和语法分析,从源代码中提取特征结构;
将提取的所述特征结构进行加密或者变换处理生成多个函数模板,并将所述特征结构进行加密处理生成代码模板;
将所述函数模板中的源码替换为函数调用、成员函数调用或者变量的形式,并将所述代码模板中的源码替换为解密代码的形式。
可选地,所述的编程语言结构混淆处理方法,其中,所述特征结构包括:字符串、常数、布尔类型、数组、函数调用、实参参数和运算表达式。
可选地,所述的编程语言结构混淆处理方法,其中,所述函数模板包括:字符串函数模板、常数函数模板、布尔类型函数模板、数组函数模板、函数调用函数模板和运算表达式函数模板。
可选地,所述的编程语言结构混淆处理方法,其中,所述字符串函数模板的生成为:通过词法分析和语法分析,提取源码中的字符串,进行拼接、乱序、切割、移位、倒序、截取、编码和算法加密操作生成乱序数组,生成字符串函数函数模板;
所述常数函数模板的生成为:通过词法分析和语法分析,提取源码中的常数进行拼接、乱序、切割、移位、倒序、编码和算法加密操作生成乱序数组,生成常数函数模板;或者通过词法分析和语法分析,提取源码中的常数,进行加、减、乘、除、取余、取模、编码和算法加密,生成常数函数模板;
所述布尔类型函数模板的生成为:通过词法分析和语法分析,提取源码中的布尔类型,生成布尔类型函数模板;
所述数组函数模板的生成为:通过词法分析语法分析,提取源码中的数组,进行拆分,合并、拼接、乱序、切割、移位、倒序、截取、编码和算法加密,生成乱序的字符串、数组、变量或者对象,生成数组函数模板;
所述函数调用函数模板的生成为:通过词法分析和语法分析,提取源码中的全局函数声明,生成函数调用函数模板;
所述运算表达式函数模板的生成为:通过词法分析和语法分析,提取源码中的运算表达式,生成运算表达式函数模。
可选地,所述的编程语言结构混淆处理方法,其中,所述字符串函数模板的函数内部通过将所述乱序数组进行还原,通过函数参数得到一个字符串,函数内部返回所述字符串;
所述常数函数模板通过逆向操作得到一个正常的数组,通过函数参数从所述数组中得到一个常数,函数内部返回所述常数;
所述布尔类型函数模板的函数内部直接返回一个false或者true、表达式运算、或者返回通过JSFuck编码过后的布尔类型;
所述数组函数模板的函数内部将乱序的字符串、数组、变量或者对象进行还原,返回数组;
所述函数调用函数模板的函数内部通过条件判断来调用函数,调用函数返回值,返回给所述函数调用函数模板;
所述运算表达式函数模板的函数内部通过JSFuck编码运算表达语句并直接返回。
可选地,所述的编程语言结构混淆处理方法,其中,所述表达式运算的值为true或者为false。
可选地,所述的编程语言结构混淆处理方法,其中,所述编程语言结构混淆处理方法还包括:
将字符串、常数、布尔类型、数组、函数调用和运算表达式进行拼接、乱序、切割、移位、倒序、截取、编码和算法加密处理的结果,进行反向执行操作生成代码模板;
所述代码模板包括:字符串代码模板、常数代码模板、布尔类型代码模板、数组代码模板、函数调用代码模板以及表达式代码模板。
可选地,所述的编程语言结构混淆处理方法,其中,所述编程语言结构混淆处理方法还包括:
通过提取的字符串、常数、布尔类型、运算表达式进行加密处理,生成随机的解密代码或者随机的解变换代码。
此外,为实现上述目的,本发明还提供一种智能终端,其中,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的编程语言结构混淆处理程序,所述编程语言结构混淆处理程序被所述处理器执行时实现如上所述的编程语言结构混淆处理方法的步骤。
此外,为实现上述目的,本发明还提供一种存储介质,其中,所述存储介质存储有编程语言结构混淆处理程序,所述编程语言结构混淆处理程序被处理器执行时实现如上所述的编程语言结构混淆处理方法的步骤。
本发明通过词法分析和语法分析,从源代码中提取特征结构;将提取的所述特征结构进行加密或者变换处理生成多个函数模板,并将所述特征结构进行加密处理生成代码模板;将所述函数模板中的源码替换为函数调用、成员函数调用或者变量的形式,并将所述代码模板中的源码替换为解密代码的形式。本发明通过模板替换的方式,混淆了代码结构,API的隐藏可以防止源码泄露,增加了软件保护的强度。
附图说明
图1是本发明编程语言结构混淆处理方法的较佳实施例的流程图;
图2为本发明智能终端的较佳实施例的运行环境示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明较佳实施例所述的编程语言结构混淆处理方法,如图1所示,所述编程语言结构混淆处理方法包括以下步骤:
步骤S10、通过词法分析和语法分析,从源代码中提取特征结构。
具体地,所述特征结构包括:字符串、常数、布尔类型、数组、函数调用、实参参数和运算表达式。
其中,字符串:在代码中以双引号,单引号表现出来;常数:小数(浮点类型的数字),整数;布尔类型:表示真或者假的类型:true,false;数组:使用方括号“[]”的类型,或者使用Array对象创建出来;函数调用:函数名称后面加上“()”,表示一个函数调用;实参参数:就是函数调用括号里面的值“()”,比如:add(1,3) 1和3就是实参参数;运算表达式:包括'+'、'-'、'*'、'/'、'%'、'>'、'<'、'>='、'<='、'=='、'!='、'==='、'!==')这些结构。
步骤S20、将提取的所述特征结构进行加密或者变换处理生成多个函数模板,并将所述特征结构进行加密处理生成代码模板。
具体地,所述函数模板包括:字符串函数模板、常数函数模板、布尔类型函数模板、数组函数模板、函数调用函数模板和运算表达式函数模板。
进一步地,生成函数模板:通过提取的字符串、常数、布尔类型、运算表达式进行加密或者变换处理,生成和构建多个函数或者多种变量,这些变量和函数可以放置在代码顶部,或者全局对象中。
(1)字符串函数模板的构建:
通过词法分析和语法分析,提取源码中的点缀表达式转为中括号表达式(var a={},a.num=10;可以将a.num转化为a[“num”]形式),主要目的是增加代码中的字符串,将API(Application Programming Interface,应用程序接口, 是一些预先定义的函数,或指软件系统不同组成部分衔接的约定)进行字符串模板替换,达到隐藏API的目的。
1)通过词法分析和语法分析,提取源码中的字符串进行拼接、乱序、切割、移位、倒序、截取、编码、算法加密操作生成乱序数组。生成一个函数模板,函数内部通过将这个乱序数组进行还原(就是上面操作的逆向操作),通过函数参数(相当于一个key)得到一个字符串,函数内部返回这个字符串;
2)通过词法分析和语法分析,提取源码中的字符串;生成一个函数模板,函数内部直接返回一个字符串,或者把这个字符串进行JSFuck编码进行返回。
(2)常数函数模板的构建:
1)通过词法分析和语法分析,提取源码中的常数进行拼接、乱序、切割、移位、倒序、编码(系统自带的编码、自定义的编码和JSFuck编码)、算法加密操作生成乱序数组;生成一个常数函数模板,常数函数模板内,对上述操作的逆向操作得到一个正常的数组。通过函数参数(相当于key,参数可以多个)从这个数组中得到一个常数,函数内部返回这个常数;
2)通过词法分析和语法分析,提取源码中的常数,生成一个常数函数模板,函数内部直接返回提取的这个常数;
3)通过词法分析和语法分析,提取源码中的常数,进行加、减、乘、除、取余、取模、编码、算法加密;生成一个常数函数模板,函数内部进行上述操作的反向操作,得到正确的常数,将这个保存正常常数的变量进行返回;
4)通过词法分析和语法分析,通过提取源码中的常数,生成一个常数函数模板,函数内部返回一个通过JSFuck编码过后的常数。
(3)布尔类型函数模板的构建:
1)通过词法分析和语法分析,提取源码中的布尔类型,生成一个布尔类型函数模板,函数内部直接返回一个false或者true;
2)通过词法分析和语法分析,通过提取源码中的布尔类型,生成一个布尔类型函数模板,函数内部返回一种表达式运算,表达式的值为true或者为false(比如:在函数内部返回(1==2)(5%3==2)的这种表达式);
3)通过词法分析和语法分析,提取源码中的布尔类型,生成一个布尔类型函数模板,函数内部返回通过JSFuck编码过后的布尔类型。
(4)数组函数模板的构建:
通过词法分析语法分析,提取源码中的数组,进行拆分、合并、拼接、乱序、切割、移位、倒序、截取、编码、算法加密,生成乱序的字符串或者数组或者变量或者对象,生成一个数组函数模板,函数内部将上述乱寻的字符串或者数组或者变量或者对象,进行还原,然后函数内部返回这个数组。
(5)函数调用函数模板构建:
前提:函数声明必须在全局作用域中;
通过词法分析和语法分析,提取源码中的全局函数声明,生成一个函数调用函数模板:函数内部进行通过条件判断来调用函数(全局函数声明的函数),调用的函数返回值,就是这个模板的函数的返回值。
(6)运算表达式函数模板构建:
1)通过词法分析和语法分析,提取源码中的运算表达式,生成一个运算表达式函数模板,函数内部,通过JSFuck编码运算表达语句并直接返回;
2)通过词法分析和语法分析,通过提取源码中的运算表达式,生成一个运算表达式函数模板,函数内部, 直接返回运算表达式。
进一步地,生成代码模板:通过提取的字符串、常数、布尔类型、运算表达式进行生加密处理,生成随机的解密代码或者随机的解变换代码;具体包括:
(1)字符串、常数、布尔类型、数组、函数调用、运算表达式代码模板:可将上述函数模板改变为一个自执行函数,替换掉这些结构即可;另外的,可以通过深奥的JavaScript编程风格编码自执行函数;
(2)字符串、常数、布尔类型、数组、函数调用、运算表达式代码模板:通过把字符串、常数、布尔类型、数组、函数调用、运算表达式进行拼接、乱序、切割、移位、倒序、截取、编码、算法加密处理的结果,进行上述操作的反向执行(即可得到原始结构)生成代码模板。
步骤S30、将所述函数模板中的源码替换为函数调用、成员函数调用或者变量的形式,并将所述代码模板中的源码替换为解密代码的形式。
具体地,函数模板替换:将源码中这些结构替换为函数调用的形式,或者成员函数调用的形式,或者变量的形式,对于替换运算表达式的函数,函数参数为运算的符号左右两边的操作数,其他函数的参数为解密当前这个结构的秘钥或者解密需要的参数,函数名称随机且不与源文件名称函数冲突。代码模板替换:直接将源代码中的这些结构替换为解密代码模板。
进一步地,如图2所示,基于上述编程语言结构混淆处理方法,本发明还相应提供了一种智能终端,所述智能终端包括:处理器10、存储器20及显示器30。图2仅示出了智能终端的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
所述存储器20在一些实施例中可以是所述智能终端的内部存储单元,例如智能终端的硬盘或内存。所述存储器20在另一些实施例中也可以是所述智能终端的外部存储设备,例如所述智能终端上配备的插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器20还可以既包括所述智能终端的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述智能终端的应用软件及各类数据,例如所述安装智能终端的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有编程语言结构混淆处理程序40,该编程语言结构混淆处理程序40可被处理器10所执行,从而实现本申请中编程语言结构混淆处理方法。
所述处理器10在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述编程语言结构混淆处理方法等。
所述显示器30在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述智能终端的信息以及用于显示可视化的用户界面。所述智能终端的部件10-30通过系统总线相互通信。
在一实施例中,当处理器10执行所述存储器20中编程语言结构混淆处理程序40时实现以下步骤:
通过词法分析和语法分析,从源代码中提取特征结构;
将提取的所述特征结构进行加密或者变换处理生成多个函数模板,并将所述特征结构进行加密处理生成代码模板;
将所述函数模板中的源码替换为函数调用、成员函数调用或者变量的形式,并将所述代码模板中的源码替换为解密代码的形式。
所述特征结构包括:字符串、常数、布尔类型、数组、函数调用、实参参数和运算表达式。
所述函数模板包括:字符串函数模板、常数函数模板、布尔类型函数模板、数组函数模板、函数调用函数模板和运算表达式函数模板。
所述字符串函数模板的生成为:通过词法分析和语法分析,提取源码中的字符串,进行拼接、乱序、切割、移位、倒序、截取、编码和算法加密操作生成乱序数组,生成字符串函数函数模板;
所述常数函数模板的生成为:通过词法分析和语法分析,提取源码中的常数进行拼接、乱序、切割、移位、倒序、编码和算法加密操作生成乱序数组,生成常数函数模板;或者通过词法分析和语法分析,提取源码中的常数,进行加、减、乘、除、取余、取模、编码和算法加密,生成常数函数模板;
所述布尔类型函数模板的生成为:通过词法分析和语法分析,提取源码中的布尔类型,生成布尔类型函数模板;
所述数组函数模板的生成为:通过词法分析语法分析,提取源码中的数组,进行拆分,合并、拼接、乱序、切割、移位、倒序、截取、编码和算法加密,生成乱序的字符串、数组、变量或者对象,生成数组函数模板;
所述函数调用函数模板的生成为:通过词法分析和语法分析,提取源码中的全局函数声明,生成函数调用函数模板;
所述运算表达式函数模板的生成为:通过词法分析和语法分析,提取源码中的运算表达式,生成运算表达式函数模。
所述字符串函数模板的函数内部通过将所述乱序数组进行还原,通过函数参数得到一个字符串,函数内部返回所述字符串;
所述常数函数模板通过逆向操作得到一个正常的数组,通过函数参数从所述数组中得到一个常数,函数内部返回所述常数;
所述布尔类型函数模板的函数内部直接返回一个false或者true、表达式运算、或者返回通过JSFuck编码过后的布尔类型;
所述数组函数模板的函数内部将乱序的字符串、数组、变量或者对象进行还原,返回数组;
所述函数调用函数模板的函数内部通过条件判断来调用函数,调用函数返回值,返回给所述函数调用函数模板;
所述运算表达式函数模板的函数内部通过JSFuck编码运算表达语句并直接返回。
所述表达式运算的值为true或者为false。
将字符串、常数、布尔类型、数组、函数调用和运算表达式进行拼接、乱序、切割、移位、倒序、截取、编码和算法加密处理的结果,进行反向执行操作生成代码模板;
所述代码模板包括:字符串代码模板、常数代码模板、布尔类型代码模板、数组代码模板、函数调用代码模板以及表达式代码模板。
通过提取的字符串、常数、布尔类型、运算表达式进行加密处理,生成随机的解密代码或者随机的解变换代码。
本发明还提供一种存储介质,其中,所述存储介质存储有编程语言结构混淆处理程序,所述编程语言结构混淆处理程序被处理器执行时实现如上所述的编程语言结构混淆处理方法的步骤。
综上所述,本发明提供一种编程语言结构混淆处理方法、智能终端及存储介质,所述方法包括:通过词法分析和语法分析,从源代码中提取特征结构;将提取的所述特征结构进行加密或者变换处理生成多个函数模板,并将所述特征结构进行加密处理生成代码模板;将所述函数模板中的源码替换为函数调用、成员函数调用或者变量的形式,并将所述代码模板中的源码替换为解密代码的形式。本发明通过模板替换的方式,混淆了代码结构,API的隐藏可以防止源码泄露,增加了软件保护的强度。
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (7)
1.一种编程语言结构混淆处理方法,其特征在于,所述编程语言结构混淆处理方法包括:通过词法分析和语法分析,从源代码中提取特征结构;
将提取的所述特征结构进行加密或者变换处理生成多个函数模板,并将所述特征结构进行加密处理生成代码模板;
所述函数模板包括:字符串函数模板、常数函数模板、布尔类型函数模板、数组函数模板、函数调用函数模板和运算表达式函数模板;
所述字符串函数模板的生成为:通过词法分析和语法分析,提取源码中的字符串,进行拼接、乱序、切割、移位、倒序、截取、编码和算法加密操作生成乱序数组,生成字符串函数模板;
所述常数函数模板的生成为:通过词法分析和语法分析,提取源码中的常数进行拼接、乱序、切割、移位、倒序、编码和算法加密操作生成乱序数组,生成常数函数模板;或者通过词法分析和语法分析,提取源码中的常数,进行加、减、乘、除、取余、取模、编码和算法加密,生成常数函数模板;
所述布尔类型函数模板的生成为:通过词法分析和语法分析,提取源码中的布尔类型,生成布尔类型函数模板;
所述数组函数模板的生成为:通过词法分析语法分析,提取源码中的数组,进行拆分,合并、拼接、乱序、切割、移位、倒序、截取、编码和算法加密,生成乱序的字符串、数组、变量或者对象,生成数组函数模板;
所述函数调用函数模板的生成为:通过词法分析和语法分析,提取源码中的全局函数声明,生成函数调用函数模板;
所述运算表达式函数模板的生成为:通过词法分析和语法分析,提取源码中的运算表达式,生成运算表达式函数模板;
所述字符串函数模板的函数内部通过将所述乱序数组进行还原,通过函数参数得到一个字符串,函数内部返回所述字符串;
所述常数函数模板通过逆向操作得到一个正常的数组,通过函数参数从正常的数组中得到一个常数,函数内部返回所述常数;
所述布尔类型函数模板的函数内部直接返回一个false或者true、表达式运算、或者返回通过JSFuck编码过后的布尔类型;
所述数组函数模板的函数内部将乱序的字符串、数组、变量或者对象进行还原,返回数组;
所述函数调用函数模板的函数内部通过条件判断来调用函数,调用函数返回值,返回给所述函数调用函数模板;
所述运算表达式函数模板的函数内部通过JSFuck编码运算表达语句并直接返回;
将所述函数模板中的源码替换为函数调用、成员函数调用或者变量的形式,并将所述代码模板中的源码替换为解密代码的形式;
通过模板替换的方式,混淆代码结构,API的隐藏防止源码泄露,增加软件保护的强度。
2.根据权利要求1所述的编程语言结构混淆处理方法,其特征在于,所述特征结构包括:字符串、常数、布尔类型、数组、函数调用、实参参数和运算表达式。
3.根据权利要求1所述的编程语言结构混淆处理方法,其特征在于,所述表达式运算的值为true或者为false。
4.根据权利要求2所述的编程语言结构混淆处理方法,其特征在于,所述编程语言结构混淆处理方法还包括:
将字符串、常数、布尔类型、数组、函数调用和运算表达式进行拼接、乱序、切割、移位、倒序、截取、编码和算法加密处理的结果,进行反向执行操作生成代码模板;
所述代码模板包括:字符串代码模板、常数代码模板、布尔类型代码模板、数组代码模板、函数调用代码模板以及表达式代码模板。
5.根据权利要求4所述的编程语言结构混淆处理方法,其特征在于,所述编程语言结构混淆处理方法还包括:
通过提取的字符串、常数、布尔类型、运算表达式进行加密处理,生成随机的解密代码或者随机的解变换代码。
6.一种智能终端,其特征在于,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的编程语言结构混淆处理程序,所述编程语言结构混淆处理程序被所述处理器执行时实现如权利要求1-5任一项所述的编程语言结构混淆处理方法的步骤。
7.一种存储介质,其特征在于,所述存储介质存储有编程语言结构混淆处理程序,所述编程语言结构混淆处理程序被处理器执行时实现如权利要求1-5任一项所述的编程语言结构混淆处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910629655.8A CN110309631B (zh) | 2019-07-12 | 2019-07-12 | 一种编程语言结构混淆处理方法、智能终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910629655.8A CN110309631B (zh) | 2019-07-12 | 2019-07-12 | 一种编程语言结构混淆处理方法、智能终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110309631A CN110309631A (zh) | 2019-10-08 |
CN110309631B true CN110309631B (zh) | 2021-04-06 |
Family
ID=68080049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910629655.8A Active CN110309631B (zh) | 2019-07-12 | 2019-07-12 | 一种编程语言结构混淆处理方法、智能终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110309631B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111552478B (zh) * | 2020-04-30 | 2024-03-22 | 上海商汤智能科技有限公司 | 用于生成cuda程序的设备、方法和存储介质 |
CN112506521B (zh) * | 2020-12-17 | 2024-05-14 | 北京轩宇信息技术有限公司 | 一种面向数据流模型的高阶调用代码生成方法及装置 |
CN113282892A (zh) * | 2021-04-16 | 2021-08-20 | 南方电网数字电网研究院有限公司 | 代码混淆方法、装置、计算机设备和存储介质 |
CN117150563B (zh) * | 2023-10-27 | 2024-02-20 | 国建大数据科技(辽宁)有限公司 | 一种软件开发数据加密保护方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918917A (zh) * | 2019-03-19 | 2019-06-21 | 北京智游网安科技有限公司 | 防止h5源码泄漏的方法、计算机设备和存储介质 |
-
2019
- 2019-07-12 CN CN201910629655.8A patent/CN110309631B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918917A (zh) * | 2019-03-19 | 2019-06-21 | 北京智游网安科技有限公司 | 防止h5源码泄漏的方法、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110309631A (zh) | 2019-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110309631B (zh) | 一种编程语言结构混淆处理方法、智能终端及存储介质 | |
CN110096338B (zh) | 智能合约执行方法、装置、设备及介质 | |
US10409966B2 (en) | Optimizing and protecting software | |
CN108614960B (zh) | 一种基于前端字节码技术的JavaScript虚拟化保护方法 | |
US9058489B2 (en) | Marking documents with executable text for processing by computing systems | |
US9607160B2 (en) | Method and apparatus for providing string encryption and decryption in program files | |
US9880820B2 (en) | Programming language with extensions using dynamic keywords | |
US10216488B1 (en) | Intercepting and injecting calls into operations and objects | |
KR20150122149A (ko) | 컴파일러 기반 난독화 기법 | |
CN109948308A (zh) | 代码安全保护方法、装置、电子设备和计算机可读存储介质 | |
CN112052433B (zh) | 一种Jar文件的虚拟化保护方法、终端及存储介质 | |
CN111736840A (zh) | 小程序应用的编译方法、运行方法、存储介质及电子设备 | |
CN108027721B (zh) | 用于使用控件来配置通用程序的技术 | |
CN103177199A (zh) | 网页应用代码保护方法及系统和执行的提速方法及系统 | |
CN112597454A (zh) | 代码混淆方法、代码运行方法、装置、介质与设备 | |
CN103176807A (zh) | 网页应用执行的提速方法及系统 | |
CN103927164B (zh) | 一种脚本混淆方法及系统 | |
CN112948773B (zh) | 脚本加密与解密方法、终端设备及可读存储介质 | |
US20170300305A1 (en) | Executable guidance experiences based on implicitly generated guidance models | |
CN113704706B (zh) | 代码加固方法、装置 | |
CN102693238B (zh) | Widget应用方法、系统及多媒体终端 | |
CN114297704A (zh) | 数据脱敏方法、装置、存储介质及电子设备 | |
KR20080021071A (ko) | 컴퓨팅 환경에서 표현식을 번역하는 방법, 소프트웨어 및시스템 | |
US20140068552A1 (en) | Infrastructure for automatically generating boilerplate code using annotations and code-generators | |
CN111782239B (zh) | 软件打包和源码版本信息获取方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |