应用程序加固检测方法、装置、可读介质及电子设备制造方法及图纸

技术编号:32901475 阅读:17 留言:0更新日期:2022-04-07 11:51
本申请提供一种应用程序加固检测方法、装置、可读介质以及电子设备,所述方法包括:获取应用程序的多个源代码文件;分别对各个源代码文件进行解析,得到源代码文件对应的多个字符串和源代码文件中的接口调用数据;通过确定源代码文件对应的各个字符串是否为随机字符串来对源代码文件进行混淆检测,得到源代码文件的混淆检测结果;根据源代码文件的接口调用数据对源代码文件进行逻辑检测,得到源代码文件的逻辑检测结果;根据所有源代码文件的混淆检测结果和逻辑检测结果确定应用程序是否加固。本申请可通过人工智能技术进行混淆检测。本申请技术方案将应用程序划分为多个源代码文件进行混淆检测,细化了检测粒度,提高了加固检测的准确性。测的准确性。测的准确性。

【技术实现步骤摘要】
应用程序加固检测方法、装置、可读介质及电子设备


[0001]本申请属于计算机
,具体涉及一种应用程序加固检测方法、装置、可读介质以及电子设备。

技术介绍

[0002]具有较好的安全性是一款应用程序(Application)能够稳定运行的重要条件之一,代码加固是提高应用安全的一种手段。代码混淆是常用的代码加固方式,代码混淆是将计算机程序的代码,转换成功能上等价,但是难以阅读和理解的形式的行为,因此,检测一款应用程序是否安全,通常通过检测应用程序是否进行了代码混淆来判断。现有的代码混淆检测方法通常是利用是传统的机器学习检测方法:首先提取应用程序的代码文件的文本特征,然后利用支持向量机等传统的二分类模型对文本特征进行分类,最终确定应用程序是否混淆加固。这种检测方式的依赖于特征提取工程,当提取的特征不合适时,检测结果就不准确,稳定性有待提升。
[0003]需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路

[0004]本申请的目的在于提供一种应用程序加固检测方法、装置、可读介质以及电子设备,以解决相关技术中使用传统机器学习检测方法稳定性不高的问题。
[0005]本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
[0006]根据本申请实施例的一个方面,提供一种应用程序加固检测方法,包括:
[0007]获取应用程序的多个源代码文件;
[0008]分别对各个所述源代码文件进行解析,得到所述源代码文件对应的多个字符串;
[0009]通过确定所述源代码文件对应的各个字符串是否为随机字符串来对所述源代码文件进行混淆检测,得到所述源代码文件的混淆检测结果,所述混淆检测结果为混淆代码文件或未混淆代码文件;
[0010]根据所有源代码文件的混淆检测结果确定所述应用程序是否加固。
[0011]根据本申请实施例的一个方面,提供一种应用程序加固检测装置,包括:
[0012]源代码获取模块,用于获取应用程序的多个源代码文件;
[0013]代码解析模块,用于分别对各个所述源代码文件进行解析,得到所述源代码文件对应的多个字符串;
[0014]混淆检测模块,用于通过确定所述源代码文件对应的各个字符串进行混淆检测,得到所述源代码文件的混淆检测结果,所述混淆检测结果为混淆代码文件或未混淆代码文件;
[0015]代码加固确定模块,用于根据所有源代码文件的混淆检测结果确定所述应用程序
是否加固。
[0016]在本申请的一个实施例中,所述字符串包括变量字符串和普通字符串;所述混淆检测模块包括:
[0017]变量字符串检测单元,用于通过简单字符识别算法和随机字符串识别模型对所述变量字符串进行混淆检测,并根据所有变量字符串的混淆检测结果得到变量混淆占比,所述变量混淆占比为所述变量字符串中的随机字符串占比;
[0018]普通字符串检测单元,用于通过所述随机字符串识别模型对所述普通字符串进行混淆检测,并根据所有普通字符串的混淆检测结果得到普通字符串混淆占比,所述普通字符串混淆占比为所述普通字符串中的随机字符串占比;
[0019]混淆结果确定单元,用于根据所述变量混淆占比和所述普通字符串混淆占比确定所述源代码文件的混淆检测结果。
[0020]在本申请的一个实施例中,所述变量字符串检测单元具体用于:
[0021]通过所述简单字符识别算法确定所述变量字符串是否为简单字符串;若所述变量字符串是简单字符串,则确定所述变量字符串为随机字符串;若所述变量字符串不是简单字符串,则通过所述随机字符串识别模型确定所述变量字符串是否为随机字符串;根据确定为随机字符串的变量字符串的数量与变量字符串的总量的比值确定所述变量混淆占比。
[0022]在本申请的一个实施例中,所述混淆结果确定单元具体用于:
[0023]当所述变量混淆占比大于第一预设字符阈值,且所述普通字符串混淆占比大于第二预设字符阈值时,确定所述源代码文件的混淆检测结果为混淆代码文件;当所述变量混淆占比小于第一预设字符阈值,或所述普通字符串混淆占比小于第二预设字符阈值时,确定所述源代码文件的混淆检测结果为未混淆代码文件。
[0024]在本申请的一个实施例中,所述装置还包括:
[0025]样本集获取模块,用于获取样本数据集,所述样本数据集包括样本字符串;
[0026]训练集生成模块,用于对所述样本数据集中的样本字符串进行随机变换和拼接处理,形成训练样本集;
[0027]模型训练模块,用于基于所述训练样本集训练神经网络模型,得到所述随机字符串识别模型。
[0028]在本申请的一个实施例中,所述样本字符串包括汉字拼音、英文单词和分隔符,所述训练样本集包括正样本数据;所述训练集生成模块包括:
[0029]第一随机变换单元,用于对所述汉字拼音进行随机大小写变换,得到扩展汉字拼音;对所述英文单词进行随机大小写变换,得到扩展英文单词;
[0030]第一拼接单元,用于对所述扩展汉字拼音、所述扩展英文单词和所述分隔符进行拼接处理,形成所述训练样本集的正样本数据。
[0031]在本申请的一个实施例中,所述第一随机变换单元用于执行以下操作中的至少一种:
[0032]随机选取n个扩展汉字拼音和n+1个分隔符,将n个扩展汉字拼音和n+1个分隔符进行交替拼接处理;
[0033]随机选取n个扩展英文单词和n+1个分隔符,将n个扩展英文单词和n+1个分隔符进行交替拼接处理;
[0034]随机选取m个扩展汉字拼音、n

m个扩展英文单词和n+1个分隔符,将n个扩展汉字拼音和扩展英文单词和n+1个分隔符进行交替拼接处理;m<n,且n、m为大于0的自然数。
[0035]在本申请的一个实施例中,所述样本字符串包括大写英文字符、小写英文字符和分隔符,所述训练样本集包括负样本数据;所述训练集生成模块包括:
[0036]第二随机变换单元,用于根据所述大写英文字符和所述小写英文字符生成n个字符单元,一个所述字符单元是根据从所述大写英文字符和所述小写英文字符中选取的随机数量的英文字符而构成;
[0037]第二拼接单元,用于将n个字符单元和随机选取的n+1个分隔符进行交替拼接处理,形成所述训练样本集的负样本数据。
[0038]在本申请的一个实施例中,所述模型训练模块包括:
[0039]数据预处理单元,用于对所述训练样本集进行预处理,形成所述神经网络模型的输入数据集;所述预处理包括:确定所述训练样本集中样本数据的最大长度,所述样本数据的长度是指所述样本数据包含的字符数量;将长度小于所述最大长度的样本数据与预设字符拼接,以形成长度达到所述最大长度的输入数据;
[0040]模型训练单元,用于基于所述输入数据集训练所述神经网络模型,得到所述随机字符串识别模型。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用程序加固检测方法,其特征在于,包括:获取应用程序的多个源代码文件;分别对各个所述源代码文件进行解析,得到所述源代码文件对应的多个字符串;通过确定所述源代码文件对应的各个字符串是否为随机字符串来对所述源代码文件进行混淆检测,得到所述源代码文件的混淆检测结果,所述混淆检测结果为混淆代码文件或未混淆代码文件;根据所有源代码文件的混淆检测结果确定所述应用程序是否加固。2.根据权利要求1所述的应用程序加固检测方法,其特征在于,所述字符串包括变量字符串和普通字符串;对所述源代码文件对应的多个字符串进行混淆检测,得到所述源代码文件的混淆检测结果,包括:通过简单字符识别算法和随机字符串识别模型对所述变量字符串进行混淆检测,并根据所有变量字符串的混淆检测结果得到变量混淆占比,所述变量混淆占比为所述变量字符串中的随机字符串占比;通过所述随机字符串识别模型对所述普通字符串进行混淆检测,并根据所有普通字符串的混淆检测结果得到普通字符串混淆占比,所述普通字符串混淆占比为所述普通字符串中的随机字符串占比;根据所述变量混淆占比和所述普通字符串混淆占比确定所述源代码文件的混淆检测结果。3.根据权利要求2所述的应用程序加固检测方法,其特征在于,通过简单字符识别算法和随机字符串识别模型对所述变量字符串进行混淆检测,并根据所有变量字符串的混淆检测结果得到变量混淆占比,包括:通过所述简单字符识别算法确定所述变量字符串是否为简单字符串;若所述变量字符串是简单字符串,则确定所述变量字符串为随机字符串;若所述变量字符串不是简单字符串,则通过所述随机字符串识别模型确定所述变量字符串是否为随机字符串;根据确定为随机字符串的变量字符串的数量与变量字符串的总量的比值确定所述变量混淆占比。4.根据权利要求2所述的应用程序加固检测方法,其特征在于,根据所述变量混淆占比和所述普通字符串混淆占比确定所述源代码文件的混淆检测结果,包括:当所述变量混淆占比大于第一预设字符阈值,且所述普通字符串混淆占比大于第二预设字符阈值时,确定所述源代码文件的混淆检测结果为混淆代码文件;当所述变量混淆占比小于第一预设字符阈值,或所述普通字符串混淆占比小于第二预设字符阈值时,确定所述源代码文件的混淆检测结果为未混淆代码文件。5.根据权利要求2所述的应用程序加固检测方法,其特征在于,在通过简单字符识别算法和随机字符串识别模型对所述变量字符串进行混淆检测之前,所述方法还包括:获取样本数据集,所述样本数据集包括样本字符串;对所述样本数据集中的样本字符串进行随机变换和拼接处理,形成训练样本集;基于所述训练样本集训练神经网络模型,得到所述随机字符串识别模型。6.根据权利要求5所述的应用程序加固检测方法,其特征在于,所述样本字符串包括汉
字拼音、英文单词和分隔符,所述训练样本集包括正样本数据;对所述样本数据集中的样本字符串进行随机变换和拼接处理,形成训练样本集,包括:对所述汉字拼音进行随机大小写变换,得到扩展汉字拼音;对所述英文单词进行随机大小写变换,得到扩展英文单词;对所述扩展汉字拼音、所述扩展英文单词和所述分隔符进行拼接处理,形成所述训练样本集的正样本数据。7.根据权利要求6所述的应用程序加固检测方法,其特征在于,对所述扩展汉字拼音、所述扩展英文单词和所述分隔符进行拼接处理,包括以下情况中的至少一种:随机选取n个扩展汉字拼音和n+1个分隔符,将n个扩展汉字拼音和n+1个分隔符进行交替拼接处理;随机选取n个扩展英文单词和n+1个分隔符,将n个扩展英文单词和n+1个分隔符进行交替拼接处理;随机选取m个扩展汉字拼音、n

m个扩展英文单词和n+1个分隔符,将n个扩展汉字拼音和扩展英文单词和n+1个分隔符进行交替拼接处理;m<n,且n、m为大于0的自然数。8.根据权利要求5所述的应用程序...

【专利技术属性】
技术研发人员:曹钦平邬骏
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1