CN109408113A - 一种代码文本处理方法、系统及终端设备 - Google Patents
一种代码文本处理方法、系统及终端设备 Download PDFInfo
- Publication number
- CN109408113A CN109408113A CN201811017025.7A CN201811017025A CN109408113A CN 109408113 A CN109408113 A CN 109408113A CN 201811017025 A CN201811017025 A CN 201811017025A CN 109408113 A CN109408113 A CN 109408113A
- Authority
- CN
- China
- Prior art keywords
- character
- chinese character
- chinese
- code text
- code
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/74—Reverse engineering; Extracting design information from source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明适用于计算机技术领域,提供了一种代码文本处理方法、系统及终端设备,包括:对代码文本进行遍历读取,获取所述代码文本中出现的中文字符;根据识别条件,分析各个中文字符对应的字符类别;将所述中文字符按照字符类别替换为英文字符与数字字符的组合。通过对代码文本中出现的中文混淆内容,按不同字符类别使用相应字母字符和数字字符的组合进行字符替换和顺序标记。将复杂的中文字符替换为易识别,易分析的符号,进而增强了程序的可读性,降低了逆向分析难度。有效地解决了经过中文混淆后存在的程序可读性低和逆向分析难度大的问题。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种代码文本处理方法、系统及终端设备。
背景技术
代码混淆(Obfuscated code)亦称花指令,是将计算机程序的代码文本,转换成一种功能上等价,但是难于阅读和理解的形式的行为,是一种增强计算机程序的安全性的手段。代码混淆可以用于计算机程序的源代码文本,也可以用于计算机程序编译而成的中间代码文本。执行代码混淆的程序被称作代码混淆器。目前已经存在许多种功能各异的代码混淆器,中文混淆是代码混淆的一种,以将类名、方法名、变量名等转化为中文生僻字组合来加大反编译后的阅读难度。在逆向过程中因字形过于复杂且组合非常近似,难以进行识别和标记,因此经过中文混淆后的程序存在可读性低,逆向分析难度大的问题。
综上所述,目前经过中文混淆后存在程序可读性低和逆向分析难度大的问题。
发明内容
有鉴于此,本发明实施例提供了一种代码文本处理方法、系统及终端设备,以解决目前经过中文混淆后存在的程序可读性低和逆向分析难度大的问题。
本发明的第一方面提供了一种代码文本处理方法,包括:
对代码文本进行遍历读取,获取所述代码文本中出现的中文字符;
根据识别条件,分析各个中文字符对应的字符类别;
将所述中文字符按照字符类别替换为英文字符与数字字符的组合。
本发明的第二方面提供了一种代码文本处理系统,包括:
获取模块,用于对代码文本进行遍历读取,获取所述代码文本中出现的中文字符;
分类模块,用于根据识别条件,分析各个中文字符对应的字符类别;
替换模块,用于将所述中文字符按照字符类别替换为英文字符与数字字符的组合。
本发明的第三方面提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
对代码文本进行遍历读取,获取所述代码文本中出现的中文字符;
根据识别条件,分析各个中文字符对应的字符类别;
将所述中文字符按照字符类别替换为英文字符与数字字符的组合。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
对代码文本进行遍历读取,获取所述代码文本中出现的中文字符;
根据识别条件,分析各个中文字符对应的字符类别;
将所述中文字符按照字符类别替换为英文字符与数字字符的组合。
本发明提供的一种代码文本处理方法、系统及终端设备,通过对代码文本中出现的中文混淆内容,按不同字符类别使用相应字母字符和数字字符的组合进行字符替换和顺序标记。将复杂的中文字符替换为易识别,易分析的符号,进而增强了程序的可读性,降低了逆向分析难度。有效地解决了经过中文混淆后存在的程序可读性低和逆向分析难度大的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种代码文本处理方法的实现流程示意图;
图2是本发明实施例二提供的对应实施例一步骤S101的实现流程示意图;
图3是本发明实施例三提供的对应实施例一步骤S102的实现流程示意图;
图4是本发明实施例四提供的对应实施例一步骤S103的实现流程示意图;
图5是本发明实施例五提供的一种代码文本处理系统的结构示意图;
图6是本发明实施例六提供的对应实施例五中获取模块101的结构示意图;
图7是本发明实施例七提供的对应实施例五中分类模块102的结构示意图;
图8是本发明实施例八提供的对应实施例五中替换模块103的结构示意图;
图9是本发明实施例九提供的终端设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的系统、系统、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
本发明实施例为了解决目前经过中文混淆后存在的程序可读性低和逆向分析难度大的问题,提供了一种代码文本处理方法、系统及终端设备,通过对代码文本中出现的中文混淆内容,按不同字符类别使用相应字母字符和数字字符的组合进行字符替换和顺序标记。将复杂的中文字符替换为易识别,易分析的符号,进而增强了程序的可读性,降低了逆向分析难度。有效地解决了经过中文混淆后存在的程序可读性低和逆向分析难度大的问题。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
如图1所示,本实施例提供了一种代码文本处理方法,其具体包括:
步骤S101:对代码文本进行遍历读取,获取所述代码文本中出现的中文字符。
需要说明的是,本实施例是对经过中文混淆后的代码文本进行处理,中文混淆是将代码文本中的类名、方法名、变量名等转化为中文生僻字的组合来加大编译后的阅读难度。因此需要对代码文本进行遍历读取,以获取代码文本中出现的中文字符。
在具体应用中,遍历读取该代码文本,通过正则表达式来判断该代码文本中是否包含中文字符,若代码文本中存在中文字符,则提取代码文本中包含的中文字符。
在具体应用中,上述中文字符包括单个中文字符和多个中文字符的组合。
需要说明的是,代码文本中存在的中文字符可能是中文混淆的内容,也可能是注释内容或引用内容,在获取代码文本中出现的中文字符时,同时获取出代码文本中的全部中文字符。再进一步判断中文字符是否包括注释内容或引用内容,若包括,则从上述中文字符中过滤掉上述注释内容和引用内容。
步骤S102:根据识别条件,分析各个中文字符对应的字符类别。
在具体应用中,在获取到代码文本中的中文字符后,需要判断该中文字符是否为注释内容或引用内容,对于注释内容或引用内容由于不是中文混淆的对象,因此不存在字形复杂且相近而导致代码文本难以阅读的问题,所以不需要对其进行字符替换。具体的,可以通过设置正则表达式判断中文字符是否为注释内容或引用内容,并将注释内容和引用内容进行过滤。
在具体应用中,通过设定识别条件,进而分析各个中文字符对应的字符类别。中文混淆是将类名、方法名、变量名变成字形复杂且相似度高的中文生僻字组合。不同的编程语言有不同的编程规则,通过不同的编程规则设定识别条件,以识别上述各个中文字符是否为类名、方法名及变量名,且根据识别条件可以确定各个中文字符对应的字符类别。
需要说明的是,可以通过建立识别条件库,根据不同编程语音的编程规则设定多个识别条件,将设定的多个识别条件存储在识别条件库中,在获取到代码文本中的中文字符后,通过查找和比对上述识别条件库中的识别条件,确定该中文字符满足的识别条件,进而确定该中文字符的字符类别。
步骤S103:将所述中文字符按照字符类别替换为英文字符与数字字符的组合。
在具体应用中,在确定了各个中文字符的字符类别后,根据该中文字符的字符类别,将中文字符替换为英文字符与数字字符的组合。即不同字符类别的中文字符采用不同的英文字符和不同的数字字符的组合进行替换。相同字符类别的中文字符采用相同的英文字符和不同的数字字符的组合进行替换。即相同字符类别的多个不同的中文字符在进行字符替换后,仅仅是数字字符的不同。而不同字符类别的多个不同的中文字符在进行字符替换后,英文字符不相同。
示例性的,“伽依似”的字符类别为变量名,“伽依侠”的字符类别为方法名,则将代码中的全部“伽依似”替换为V1;将脚本文件中的全部“伽依侠”替换为M1;“伽依似”和“侣伽侠”都是变量名,则将代码文本中出现的全部“伽依似”替换为V1;全部“侣伽侠”替换为V2,以此类推。
在一个实施例中,上述代码文本处理方法还包括以下步骤:
步骤S104:获取所述各个中文字符的统一码,所述统一码是指为字符设定的唯一的二进制编码。
在具体应用中,由于中文混淆后的中文字符字形相近,因此通过字符的统一码作为中文字符的识别标识。通过比对中文字符的统一码来确定上述中文字符是否相同。
需要说明的是,统一码(unicode)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了唯一的二进制编码,以满足跨语言、跨平台进行文本识别、转换、处理的要求。基于通用字符集(Universal Character Set)的标准来发展。
在具体应用中,通过查找Unicode字符集就能获取各个中文字符的统一码。由于中文字符包括单个中文字符和多个中文字符的组合,对于多个中文字符的组合,通过获取上述多个中文字符的各个中文字符的统一码。示例性的,当获取到的中文字符为“伽”,则只需获取“伽”的统一码,当获取到的中文字符为“伽依似”,则需要分别获取“伽”、“依”、“似”的统一码,并将统一码的组合作为该中文字符的统一码。
步骤S105:将统一码相同的中文字符识别为同一中文字符,将统一码不同的中文字符识别为不同的中文字符。
在具体应用中,若中文字符的统一码相同,则表明中文字符为同一中文字符,若中文字符的统一码不同,则中文字符不同。
在具体应用中,由于代码文本存在大量的中文字符,因此需要先识别各个中文字符是否为同一中文字符,同一中文字符在进行字符替换时,就用同一个字母字符与数字字符的组合进行替换。
本实施例提供的代码文本处理方法,通过对代码文本中出现的中文混淆内容,按不同字符类别使用相应字母字符和数字字符的组合进行字符替换和顺序标记。将复杂的中文字符替换为易识别,易分析的符号,进而增强了程序的可读性,降低了逆向分析难度。有效地解决了经过中文混淆后存在的程序可读性低和逆向分析难度大的问题。
实施例二:
如图2所示,在本实施例中,实施例一中的步骤S101具体包括:
步骤S201:逐行读取所述代码文本,通过正则表达式判断代码行是否包含中文字符。
在具体应用中,逐行读取代码文本,通过正则表达式判断代码文本各行中是否包含中文字符。中文字符包括用于中文混淆的内容,也包括注释内容和引用内容。
在具体应用中,大多数的程序语言都支持利用正则表达式进行字符串操作,正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
示例性的,将上述正则表达式设置为:NSPredicate*predicate=[NSPredicatepredicateWithFormat:@"SELFMATCHES%@|%@”,@“[\u4e00-\u9fa5],@“[\uDB40DC00-\uDB7FDFFF]”],其中,[\u4e00-\u9fa5]与[\uDB40DC00-\uDB7FDFFF]包含了中文字符的常用字符和生僻字符,通过上述正则表达式就能够判断代码行是否包含中文字符。
还需要说明的是,上述正则表达式可以根据编程语言的编程规则进行设定,如何根据编程语言的编程规则设定正则表达式作为现有技术,在此不再加以赘述。
步骤S202:若所述代码行包含中文字符,则提取所述代码行包含的全部中文字符。
在具体应用中,通过设置正则表达式提取代码行包含的全部中文字符。可以通过JavaScript脚本语言来设置正则表达式,进而提取代码行中包含的全部中文字符。
在具体应用中,上述通过JavaScript脚本语言来设置正则表达式,进而提取代码行中包含的全部中文字符的脚本为:
<script type="text/javascript">
var str="字符提取。";
alert(str.replace(/[^\u4e00-\u9fa5]/gi,""));
</script>
还需要说明的是,上述正则表达式可以根据编程语言的编程规则进行设定,如何根据编程语言的编程规则设定正则表达式作为现有技术,在此不再加以赘述。
步骤S203:从所述中文字符中过滤注释内容和引用内容。
在具体应用中,通过设置正则表达式判断是否存在注释内容或引用内容的中文字符,若存在,则过滤注释内容和引用内容的中文字符。此时获取到的中文字符只是中文混淆的内容。
示例性的,通过JavaScript脚本语言来设置正则表达式,以此来过滤注释内容的脚本为:
String commentsStr="//this is single line comments";
Pattern singleLineCommentP=Pattern.compile("^//.*?$");
Matcher foundSingleLineComment=singleLineCommentP.matcher(commentsStr);
boolean foundSingle=foundSingleLineComment.matches();
System.out.println(foundSingleLineComment);
System.out.println(foundSingle)
其中,注释符为“//”,注释符“//”之后的字符即为注释内容。
还需要说明的是,上述正则表达式可以根据编程语言的编程规则进行设定,如何根据编程语言的编程规则设定正则表达式作为现有技术,在此不再加以赘述。
实施例三:
如图3所示,在本实施例中,实施例一中的步骤S102具体包括:
步骤S301:根据编程规则设定N个识别条件,N为大于1的正整数。
在具体应用中,由于不同的编程语言的编程规则各不相同,预先根据编程规则设定N个识别条件。
步骤S302:根据所述N个识别条件确定所述中文字符的字符类别,若所述中文字符满足同一识别条件,则所述中文字符属于同一字符类别,其中,所述字符类别包括:变量名、类名以及方法名。
在具体应用中,通过不同的编程规则设定的多个识别条件,能够全面且准确地确定上述各个中文字符所属的字符类别。
示例性的,上述识别条件包括:识别中文字符的前一字符或后一字符是否为赋值运算符,若是,则该中文字符的字符类别为变量名;如代码文本为:伽依似=R1;则“伽依似”这一中文字符的字符类别为变量名。
识别中文字符的前一字符是否为左圆括号且其后一字符是否为右圆括号,若是,则该中文字符的字符类型为方法名。如代码文本为:(伽依似);则“伽依似”这一中文字符的字符类别为方法名。
实施例四:
如图4所示,在本实施例中,实施例一中的步骤S103具体包括:
步骤S401:将不同字符类别的中文字符替换为不同英文字符与数字字符的组合。
在具体应用中,通过设置不同的英文字符区分不同字符类别。
示例性的,“伽依似”的字符类别为变量名,“伽依侠”的字符类别为方法名,“依侣伽”的字符类别为类名,则将代码文本中的全部“伽依似”替换为V1;将代码文本中的全部“伽依侠”替换为M1,则将代码文本中全部的“依侣伽”替换为S1。需要说明的是,上述英文字符可以为多个字符,也可以为单个字符,在此不加以限制。
步骤S402:将同一字符类别的多个中文字符替换为相同英文字符与不同数字字符的组合。
在具体应用中,对于同一字符类别的不同中文字符,通过将数字字符按照升序的顺序进行标号,来区分同一字符类别的不同中文字符。
示例性的,“伽依似”和“侣伽侠”都是变量名,则将代码文本中出现的全部“伽依似”替换为V1;全部“侣伽侠”替换为V2,以此类推。需要说明的是,上述数字字符可以为多个字符,也可以为单个字符,在此不加以限制。
步骤S403:同一中文字符用相同的英文字符与相同的数字字符的组合进行字符替换。
在具体应用中,对于代码文本中同一中文字符全部使用同一个英文字符和数字字符的组合进行替换。
实施例五:
如图5所示,本实施例提供一种代码文本处理系统100,用于执行实施例一中的方法步骤,其包括获取模块101、分类模块102以及替换模块103。
获取模块101用于对代码文本进行遍历读取,获取所述代码文本中出现的中文字符。
分类模块102用于根据识别条件,分析各个中文字符对应的字符类别。
替换模块103用于将所述中文字符按照字符类别替换为英文字符与数字字符的组合。
需要说明的是,本发明实施例提供的代码文本处理系统,由于与本发明图1所示方法实施例基于同一构思,其带来的技术效果与本发明图1所示方法实施例相同,具体内容可参见本发明图1所示方法实施例中的叙述,此处不再赘述。
因此,本实施例提供的一种代码文本处理系统,同样能够通过对代码文本中出现的中文混淆内容,按不同字符类别使用相应字母字符和数字字符的组合进行字符替换和顺序标记。将复杂的中文字符替换为易识别,易分析的符号,进而增强了程序的可读性,降低了逆向分析难度。有效地解决了经过中文混淆后存在的程序可读性低和逆向分析难度大的问题。
实施例六:
如图6所示,在本实施例中,实施例五中的获取模块101包括用于执行图2所对应的实施例中的方法步骤的结构,其包括读取单元201、提取单元202及过滤单元203。
读取单元201用于逐行读取所述代码文本,通过正则表达式判断代码行是否包含中文字符。
提取单元202用于若所述代码行包含中文字符,则提取所述代码行包含的全部中文字符。
过滤单元203用于从所述中文字符中过滤注释内容和引用内容。
实施例七:
如图7所示,在本实施例中,实施例五中的分类模块102包括用于执行图3所对应的实施例中的方法步骤的结构,其包括条件设定单元301和分类单元302。
条件设定单元301用于根据编程规则设定N个识别条件,N为大于1的正整数。
分类单元302用于根据所述N个识别条件确定所述中文字符的字符类别,若所述中文字符满足同一识别条件,则所述中文字符属于同一字符类别,其中,所述字符类别包括:变量名、类名以及方法名。
实施例八:
如图8所示,在本实施例中,实施例五中的替换模块103包括用于执行图4所对应的实施例中的方法步骤的结构,其包括第一替换单元401、第二替换单元402以及第三替换单元403。
第一替换单元401用于将不同字符类别的中文字符替换为不同英文字符与数字字符的组合。
第二替换单元402用于将同一字符类别的多个中文字符替换为相同英文字符与不同数字字符的组合。
第三替换单元403用于同一中文字符用相同的英文字符与相同的数字字符的组合进行字符替换。
实施例九:
图9是本发明实施例九提供的终端设备的示意图。如图9所示,该实施例的终端设备9包括:处理器90、存储器91以及存储在所述存储器91中并可在所述处理器90上运行的计算机程序92,例如程序。所述处理器90执行所述计算机程序92时实现上述各个语音合成方法实施例中的步骤,例如图1所示的步骤S101至S103。或者,所述处理器90执行所述计算机程序92时实现上述系统实施例中各模块/单元的功能,例如图5所示模块101至103的功能。
示例性的,所述计算机程序92可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器91中,并由所述处理器90执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序92在所述终端设备9中的执行过程。例如,所述计算机程序92可以被分割成获取模块、分类模块以及替换模块,各模块具体功能如下:
获取模块,用于对代码文本进行遍历读取,获取所述代码文本中出现的中文字符;
分类模块,用于根据识别条件,分析各个中文字符对应的字符类别;
替换模块,用于将所述中文字符按照字符类别替换为英文字符与数字字符的组合。
所述终端设备9可以是桌上型计算机、笔记本、掌上电脑及云端管理服务器等计算设备。所述终端设备可包括,但不仅限于,处理器90、存储器91。本领域技术人员可以理解,图9仅仅是终端设备9的示例,并不构成对终端设备9的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器90可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器91可以是所述终端设备9的内部存储单元,例如终端设备9的硬盘或内存。所述存储器91也可以是所述终端设备9的外部存储设备,例如所述终端设备9上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器91还可以既包括所述终端设备9的内部存储单元也包括外部存储设备。所述存储器91用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器91还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述无线终端中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的系统/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的系统/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,系统或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述设置为分离部件说明的单元可以是或者也可以不是物理上分开的,设置为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并设置为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或系统、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种代码文本处理方法,其特征在于,包括:
对代码文本进行遍历读取,获取所述代码文本中出现的中文字符;
根据识别条件,分析各个中文字符对应的字符类别;
将所述中文字符按照字符类别替换为英文字符与数字字符的组合。
2.根据权利要求1所述的代码文本处理方法,其特征在于,所述对代码文本进行遍历读取,获取所述程序代码中出现的中文字符,包括:
逐行读取所述代码文本,通过正则表达式判断代码行是否包含中文字符;
若所述代码行包含中文字符,则提取所述代码行包含的全部中文字符;
从所述中文字符中过滤注释内容和引用内容。
3.根据权利要求1所述的代码文本处理方法,其特征在于,还包括:
获取所述各个中文字符的统一码,所述统一码是指为字符设定的唯一的二进制编码;
将统一码相同的中文字符识别为同一中文字符,将统一码不同的中文字符识别为不同的中文字符。
4.根据权利要求1所述的代码文本处理方法,其特征在于,所述根据识别条件,分析各个中文字符对应的字符类别,包括:
根据编程规则设定N个识别条件,N为大于1的正整数;
根据所述N个识别条件确定所述中文字符的字符类别,若所述中文字符满足同一识别条件,则所述中文字符属于同一字符类别,其中,所述字符类别包括:变量名、类名以及方法名。
5.根据权利要求1所述的代码文本处理方法,其特征在于,将所述中文字符按照字符类别替换为英文字符与数字字符的组合,包括:
将不同字符类别的中文字符替换为不同英文字符与数字字符的组合;
将同一字符类别的多个中文字符替换为相同英文字符与不同数字字符的组合;
同一中文字符用相同的英文字符与相同的数字字符的组合进行字符替换。
6.一种代码文本处理系统,其特征在于,包括:
获取模块,用于对代码文本进行遍历读取,获取所述代码文本中出现的中文字符;
分类模块,用于根据识别条件,分析各个中文字符对应的字符类别;
替换模块,用于将所述中文字符按照字符类别替换为英文字符与数字字符的组合。
7.根据权利要求6所述的代码文本处理系统,其特征在于,所述获取模块包括:
读取单元,用于逐行读取所述代码文本,通过正则表达式判断代码行是否包含中文字符;
提取单元,用于若所述代码行包含中文字符,则提取所述代码行包含的全部中文字符;
过滤单元,用于从所述中文字符中过滤注释内容和引用内容。
8.根据权利要求6所述的代码文本处理系统,其特征在于,所述分类模块包括:
条件设定单元,用于根据编程规则设定N个识别条件,N为大于1的正整数;
分类单元,用于根据所述N个识别条件确定所述中文字符的字符类别,若所述中文字符满足同一识别条件,则所述中文字符属于同一字符类别,其中,所述字符类别包括:变量名、类名以及方法名。
9.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811017025.7A CN109408113A (zh) | 2018-09-03 | 2018-09-03 | 一种代码文本处理方法、系统及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811017025.7A CN109408113A (zh) | 2018-09-03 | 2018-09-03 | 一种代码文本处理方法、系统及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109408113A true CN109408113A (zh) | 2019-03-01 |
Family
ID=65463719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811017025.7A Pending CN109408113A (zh) | 2018-09-03 | 2018-09-03 | 一种代码文本处理方法、系统及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109408113A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110427328A (zh) * | 2019-08-07 | 2019-11-08 | 北京字节跳动网络技术有限公司 | 文本处理方法、装置、设备及存储介质 |
CN112183116A (zh) * | 2020-09-25 | 2021-01-05 | 深圳市元征科技股份有限公司 | 信息呈现方法、装置、设备及介质 |
CN112241558A (zh) * | 2020-09-03 | 2021-01-19 | 深圳市华阳国际工程设计股份有限公司 | 元素类型名的统一方法、装置以及计算机存储介质 |
CN112329012A (zh) * | 2019-07-19 | 2021-02-05 | 中国人民解放军战略支援部队信息工程大学 | 针对包含JavaScript的恶意PDF文档的检测方法及电子设备 |
CN112363693A (zh) * | 2020-11-09 | 2021-02-12 | 北京字跳网络技术有限公司 | 代码文本的处理方法、装置、设备及存储介质 |
CN113076721A (zh) * | 2021-04-09 | 2021-07-06 | 航天信息(广东)有限公司 | 一种基于XPath的编码长度控制方法以及装置 |
CN113779932A (zh) * | 2021-08-24 | 2021-12-10 | 深圳市明源云科技有限公司 | 数字格式化方法、装置、终端设备及存储介质 |
CN113836498A (zh) * | 2021-09-01 | 2021-12-24 | 浙江岩华文化科技有限公司 | 网页源代码混淆方法、装置、电子装置和存储介质 |
CN117852521A (zh) * | 2024-03-07 | 2024-04-09 | 成都中科合迅科技有限公司 | 一种数据计算结果文件对比方法、系统及对比配置系统 |
CN117852521B (zh) * | 2024-03-07 | 2024-06-07 | 成都中科合迅科技有限公司 | 一种数据计算结果文件对比方法、系统及对比配置系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547116A (zh) * | 2003-12-16 | 2004-11-17 | 艾默生网络能源有限公司 | 软件中语言资源本地化的实现方法 |
CN107329957A (zh) * | 2017-05-18 | 2017-11-07 | 网易(杭州)网络有限公司 | 替换代码中文字符串的方法以及计算机可读存储介质 |
CN107341399A (zh) * | 2016-04-29 | 2017-11-10 | 阿里巴巴集团控股有限公司 | 评估代码文件安全性的方法及装置 |
US20170351847A1 (en) * | 2016-06-03 | 2017-12-07 | Electronic Arts Inc. | Simple obfuscation of text data in binary files |
-
2018
- 2018-09-03 CN CN201811017025.7A patent/CN109408113A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547116A (zh) * | 2003-12-16 | 2004-11-17 | 艾默生网络能源有限公司 | 软件中语言资源本地化的实现方法 |
CN107341399A (zh) * | 2016-04-29 | 2017-11-10 | 阿里巴巴集团控股有限公司 | 评估代码文件安全性的方法及装置 |
US20170351847A1 (en) * | 2016-06-03 | 2017-12-07 | Electronic Arts Inc. | Simple obfuscation of text data in binary files |
CN107329957A (zh) * | 2017-05-18 | 2017-11-07 | 网易(杭州)网络有限公司 | 替换代码中文字符串的方法以及计算机可读存储介质 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112329012B (zh) * | 2019-07-19 | 2023-05-30 | 中国人民解放军战略支援部队信息工程大学 | 针对包含JavaScript的恶意PDF文档的检测方法及电子设备 |
CN112329012A (zh) * | 2019-07-19 | 2021-02-05 | 中国人民解放军战略支援部队信息工程大学 | 针对包含JavaScript的恶意PDF文档的检测方法及电子设备 |
CN110427328A (zh) * | 2019-08-07 | 2019-11-08 | 北京字节跳动网络技术有限公司 | 文本处理方法、装置、设备及存储介质 |
CN112241558A (zh) * | 2020-09-03 | 2021-01-19 | 深圳市华阳国际工程设计股份有限公司 | 元素类型名的统一方法、装置以及计算机存储介质 |
CN112183116B (zh) * | 2020-09-25 | 2023-10-10 | 深圳市元征科技股份有限公司 | 信息呈现方法、装置、设备及介质 |
CN112183116A (zh) * | 2020-09-25 | 2021-01-05 | 深圳市元征科技股份有限公司 | 信息呈现方法、装置、设备及介质 |
CN112363693A (zh) * | 2020-11-09 | 2021-02-12 | 北京字跳网络技术有限公司 | 代码文本的处理方法、装置、设备及存储介质 |
CN113076721A (zh) * | 2021-04-09 | 2021-07-06 | 航天信息(广东)有限公司 | 一种基于XPath的编码长度控制方法以及装置 |
CN113076721B (zh) * | 2021-04-09 | 2024-03-08 | 航天信息(广东)有限公司 | 一种基于XPath的编码长度控制方法以及装置 |
CN113779932A (zh) * | 2021-08-24 | 2021-12-10 | 深圳市明源云科技有限公司 | 数字格式化方法、装置、终端设备及存储介质 |
CN113836498A (zh) * | 2021-09-01 | 2021-12-24 | 浙江岩华文化科技有限公司 | 网页源代码混淆方法、装置、电子装置和存储介质 |
CN117852521A (zh) * | 2024-03-07 | 2024-04-09 | 成都中科合迅科技有限公司 | 一种数据计算结果文件对比方法、系统及对比配置系统 |
CN117852521B (zh) * | 2024-03-07 | 2024-06-07 | 成都中科合迅科技有限公司 | 一种数据计算结果文件对比方法、系统及对比配置系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109408113A (zh) | 一种代码文本处理方法、系统及终端设备 | |
CN104516862B (zh) | 一种选择读取目标文档的编码格式的方法及其系统 | |
CN110262783B (zh) | 一种接口生成方法、装置及终端设备 | |
CN107590291A (zh) | 一种图片的搜索方法、终端设备及存储介质 | |
CN108255602A (zh) | 任务组合方法及终端设备 | |
CN105574156A (zh) | 文本聚类方法、装置及计算设备 | |
CN108038093A (zh) | Pdf文字提取方法和装置 | |
CN106325596A (zh) | 一种书写笔迹自动纠错方法及系统 | |
CN112035355A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN116149669B (zh) | 一种基于二进制文件的软件成分分析方法、装置以及介质 | |
CN108334346A (zh) | 一种业务控制流程的开发方法及装置 | |
CN110096264A (zh) | 一种代码运行方法及装置 | |
CN111625567A (zh) | 数据模型匹配方法、装置、计算机系统及可读存储介质 | |
CN112613040A (zh) | 一种基于二进制程序的漏洞检测方法及相关设备 | |
CN107766036A (zh) | 一种模块的构建方法、构建装置及终端设备 | |
CN111475494A (zh) | 一种海量数据处理方法、系统、终端及存储介质 | |
Hameed et al. | SURAGH: Syntactic Pattern Matching to Identify Ill-Formed Records. | |
CN108427580A (zh) | 配置对命名重复的检测方法、存储介质和智能设备 | |
CN115344504B (zh) | 基于需求规格说明书的软件测试用例自动生成方法及工具 | |
CN112948400A (zh) | 一种数据库管理方法、数据库管理装置及终端设备 | |
Zengler et al. | Encoding the Linux kernel configuration in propositional logic | |
CN108875374B (zh) | 基于文档节点类型的恶意pdf检测方法及装置 | |
CN110874398B (zh) | 违禁词处理方法、装置、电子设备及存储介质 | |
CN114089980A (zh) | 编程处理方法、装置、解释器及非易失性存储介质 | |
CN113344674A (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 |