[发明专利]脚本混淆检测方法、装置、计算机设备和存储介质有效
申请号: | 202010271728.3 | 申请日: | 2020-04-09 |
公开(公告)号: | CN111475809B | 公开(公告)日: | 2023-10-20 |
发明(设计)人: | 熊春霖;宋哲;王昆;陈焰;阮琳琦 | 申请(专利权)人: | 杭州奇盾信息技术有限公司;广州奇盾信息技术有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 杭州合信专利代理事务所(普通合伙) 33337 | 代理人: | 刘静静 |
地址: | 310000 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 脚本 混淆 检测 方法 装置 计算机 设备 存储 介质 | ||
1.一种脚本混淆检测方法,其特征在于,包括如下步骤:
生成待检测脚本的抽象语法树;
计算所述抽象语法树中各个节点的权重;
确定抽象语法树中顶层单独节点,所述顶层单独节点为父节点和祖节点均对应程序片段且自身不对应程序片段的节点;
根据各个顶层单独节点的子节点是否对应动态执行命令以及子树中节点的类型判断各个顶层单独节点是否被混淆;
根据所有被混淆的顶层单独节点的节点权重计算待检测脚本的混淆分数,并根据计算得到的混淆分数判断所述待检测脚本是否混淆。
2.一种脚本混淆检测方法,其特征在于,包括如下步骤:
生成待检测脚本的抽象语法树;
遍历所述的抽象语法树,在遍历过程中,针对每一个被遍历的节点进行如下操作:
计算该节点在所述抽象语法树中的权重;
根据该节点的父节点和祖节点对应的语句类型判断当前节点是否为顶层单独节点,所述顶层单独节点为父节点和祖节点均对应程序片段且自身不对应程序片段的节点;
根据判断结果进行如下操作:
若为顶层单独节点,则根据当前顶层单独节点的子节点是否对应动态执行命令以及子树中节点的类型判断当前顶层单独节点是否被混淆;
否则,遍历下一个节点;
根据所有被混淆的顶层单独节点的节点权重计算待检测脚本的混淆分数,并根据计算得到的混淆分数判断所述待检测脚本是否混淆。
3.如权利要求2所述的脚本混淆检测方法,其特征在于,所述遍历所述抽象语法树时采用深度优先的方式遍历所述抽象语法树。
4.如权利要求2或3所述的脚本混淆检测方法,其特征在于,所述的遍历所述抽象语法树时,若判断当前节点为顶层单独节点,则停止遍历该当前节点的子树中的节点。
5.如权利要求1或2所述的脚本混淆检测方法,其特征在于,所述计算所述抽象语法树中各个节点的权重包括根据各个节点对应的语句占整个待检测脚本的权重;
或者,
设定根节点的权重为1;对于任意一个节点,若其权重为ws,子节点的数量为n,则该节点对应的各个子节点权重为ws/n。
6.如权利要求1或2所述的脚本混淆检测方法,其特征在于,所述判断当前顶层单独节点是否被混淆包括:
判断当前顶层单独节点的子节点是否对应动态执行命令;
根据判断结果进行如下操作:
若对应动态执行命令,则继续判断当前顶层单独节点的子树中是否存在变量节点,如果有则认为当前顶层单独节点被混淆,否则认为当前顶层单独节点无混淆;
否则,则继续判断当前顶层单独节点的子树中是否存在表达式节点,若存在,则认为当前顶层单独节点被混淆;否则认为无混淆。
7.如权利要求6所述的脚本混淆检测方法,其特征在于,所述判断当前顶层单独节点的子树中是否存在表达式节点和/或变量节点时采用基于广度优先的方式遍历当前顶层单独节点的子树进行。
8.如权利要求1或2所述的脚本混淆检测方法,其特征在于,所述根据所有被混淆的顶层单独节点的节点权重计算待检测脚本的混淆分数包括:求取所有被混淆的顶层单独节点的节点权重之和作为待检测脚本的混淆分数。
9.如权利要求1或2所述的脚本混淆检测方法,其特征在于,所述根据所有被混淆的顶层单独节点的节点权重计算待检测脚本的混淆分数以判断待检测脚本是否混淆包括:将待检测脚本的混淆分数与预设的阈值比较,则待检测脚本的混淆分数小于预设的阈值,则认为待检测脚本无混淆;否则,认为待检测脚本被混淆。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州奇盾信息技术有限公司;广州奇盾信息技术有限公司,未经杭州奇盾信息技术有限公司;广州奇盾信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010271728.3/1.html,转载请声明来源钻瓜专利网。