[发明专利]一种控制流平坦化自动检测方法、装置有效
申请号: | 202110792580.2 | 申请日: | 2021-07-14 |
公开(公告)号: | CN113254068B | 公开(公告)日: | 2021-10-22 |
发明(设计)人: | 齐增田 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F8/74 | 分类号: | G06F8/74 |
代理公司: | 济南舜源专利事务所有限公司 37205 | 代理人: | 张营磊 |
地址: | 215100 江苏省苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 控制 平坦 自动检测 方法 装置 | ||
1.一种控制流平坦化自动检测方法,其特征在于,每一个基本块为一个节点,包括如下步骤:
从入口节点到出口节点按照执行顺序确定支配节点和被支配节点;
将所有支配节点和被支配节点的关系列表输出形成支配关系表;
在支配关系表中查找用于表示节点支配关系和层级关系的中间支配块;
以查找出的所有中间支配块为节点构建支配树;
以构建的支配树为基础,确定支配节点;
计算确定的支配节点支配的基本块的控制流平坦化相似度,若计算的相似度大于或等于设定阈值,判断该基本块所在的代码是被控制流平坦化处理后的代码;
其中,
所述的从入口节点到出口节点按照执行顺序确定支配节点和被支配节点的步骤中,确定支配节点的步骤包括:在入口节点和节点A之间的所有路径,都经过了节点B,那么节点B支配了节点A;节点B为支配节点;
所述的在支配关系表中查找用于表示节点支配关系和层级关系的中间支配块的步骤包括:在支配关系表中查找距离被支配节点最近的支配节点,确认该支配节点为中间支配块;
所述的以构建的支配树为基础,确定支配节点的步骤包括:在支配树中通过查找反向边的方法确定基本块控制流中是否有循环,若有循环,确定支配节点;
所述的计算确定的支配节点支配的基本块的控制流平坦化相似度的步骤包括:计算支配节点支配的基本块的数目;获取支配树中所有基本块的数目;将支配节点支配的基本块的数目,除以支配树中的所有基本块数目,即为该基本块的控制流平坦化相似度。
2.根据权利要求1所述的控制流平坦化自动检测方法,其特征在于,所述的从入口节点到出口节点按照执行顺序确定支配节点和被支配节点的步骤中,确定支配节点的步骤还包括:
若存在一条路径,从入口节点到节点A没有经过节点B,那么节点B没有支配节点A。
3.根据权利要求2所述的控制流平坦化自动检测方法,其特征在于,每个节点都支配了它本身。
4.一种控制流平坦化自动检测装置,其特征在于,每一个基本块为一个节点,所述装置包括查找模块、构建模块、确定模块、计算处理模块、关系表建立模块;
关系表建立模块,用于将所有支配节点和被支配节点的关系列表输出形成支配关系表;
查找模块,用于在支配关系表中查找用于表示节点支配关系和层级关系的中间支配块;具体用于在支配关系表中查找距离被支配节点最近的支配节点,确认该支配节点为中间支配块;
构建模块,用于以查找出的所有中间支配块为节点构建支配树;
确定模块,用于以构建的支配树为基础,在支配树中通过查找反向边的方法确定基本块控制流中是否有循环,若有循环,确定支配节点;其中,确定模块在确定支配节点的过程中,在入口节点和节点A之间的所有路径,都经过了节点B,那么节点B支配了节点A;节点B为支配节点;
计算处理模块,用于计算确定的支配节点支配的基本块的控制流平坦化相似度,若计算的相似度大于或等于设定阈值,判断该基本块所在的代码是被控制流平坦化处理后的代码;
计算处理模块包括数目确认单元、计算单元;
数目确认单元,用于计算支配节点支配的基本块的数目;还用于获取支配树中所有基本块的数目;计算单元,用于将支配节点支配的基本块的数目,除以支配树中的所有基本块数目,即为该基本块的控制流平坦化相似度。
5.根据权利要求4所述的控制流平坦化自动检测装置,其特征在于,计算处理模块还包括判断单元和判定输出单元;
判断单元,用于判断基本块的控制流平坦化相似度是否大于或等于设定阈值;
判定输出单元,用于判定作为支配节点的基本块所在的代码被控制流平坦化处理过。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110792580.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种化工炼化安全生产用气体采样装置
- 下一篇:一种家纺用品加工的床单固定机构