[发明专利]过程间静态程序分析信息提取方法、装置及设备有效
| 申请号: | 201711423522.2 | 申请日: | 2017-12-25 |
| 公开(公告)号: | CN108132799B | 公开(公告)日: | 2021-03-16 |
| 发明(设计)人: | 衷璐洁;莫培弘 | 申请(专利权)人: | 首都师范大学 |
| 主分类号: | G06F8/75 | 分类号: | G06F8/75 |
| 代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 宋扬;刘芳 |
| 地址: | 100048*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 过程 静态 程序 分析 信息 提取 方法 装置 设备 | ||
1.一种过程间静态程序分析信息提取方法,其特征在于,包括:
遍历LLVM IR文件中的指令;
基于所述LLVM IR文件中的br指令和ret指令,从所述LLVM IR文件中提取过程内程序分析信息;
确定所述LLVM IR文件中的call指令是否是函数指针相关的call指令;
其中,若不是,则从所述call指令中提取直接函数调用的信息;
若是,则,根据所述call指令之前的store指令及load指令,提取所述call指令中函数指针的指向信息;
在遍历结束后,基于提取到的过程内程序分析信息,以及所有直接函数调用的信息和函数指针的指向信息,生成过程间静态程序分析信息;
其中,所述从所述call指令中提取直接函数调用的信息,包括:
将所述call指令中的函数的名称与预先存储的库函数名称进行匹配;其中,若匹配,则提取所述call指令的库函数直接调用信息;若不匹配,则提取所述call指令的一般函数直接调用信息,其中一般函数直接调用是指库函数以外的其他函数的直接调用;
相应的,所述根据所述call指令之前的store指令及load指令,提取所述call指令中函数指针的指向信息,包括:
根据所述call指令之前的store指令及load指令,确定所述call指令中函数指针指向的函数,并确定所述函数是否是库函数;其中,若是,则提取所述call指令的函数指针所指向的函数的名称信息以及所述函数为库函数直接调用的信息;若不是,则提取所述call指令的函数指针所指向的函数的名称信息,以及所述函数为一般函数直接调用的信息。
2.根据权利要求1所述的方法,其特征在于,所述基于所述LLVM IR文件中的br指令和ret指令,从所述LLVM IR文件中提取过程内程序分析信息,包括:
基于所述LLVM IR文件中的br指令和ret指令,获取所述LLVM IR文件中函数的基本块,从所述LLVM IR文件中函数的基本块中提取过程内程序分析信息。
3.一种过程间静态程序分析信息提取装置,其特征在于,包括:
遍历模块,用于遍历LLVM IR文件中的指令;
第一提取模块,用于基于所述LLVM IR文件中的br指令和ret指令,从所述LLVM IR文件中提取过程内程序分析信息;
确定模块,用于确定所述LLVM IR文件中的call指令是否是函数指针相关的call指令;
第二提取模块,用于在所述call指令不是函数指针相关的call指令时,从所述call指令中提取直接函数调用的信息;
第三提取模块,用于在所述call指令是函数指针相关的call指令时,根据所述call指令之前的store指令及load指令,提取所述call指令中函数指针的指向信息;
生成模块,用于在遍历结束后,基于提取到的过程内程序分析信息,以及所有直接函数调用的信息和函数指针的指向信息,生成过程间静态程序分析信息;
其中,所述第二提取模块,包括:
匹配子模块,用于将所述call指令中的函数的名称与预先存储的库函数名称进行匹配;
第一提取子模块,用于在匹配时,提取所述call指令的库函数直接调用信息;
第二提取子模块,用于在不匹配时,提取所述call指令的一般函数直接调用信息,其中一般函数直接调用是指库函数以外的其他函数的直接调用;
相应的,所述第三提取模块,具体用于根据所述call指令之前的store指令及load指令,确定所述call指令中函数指针指向的函数,并确定所述函数是否是库函数;其中,若是,则提取所述call指令的函数指针所指向的函数的名称信息以及所述函数为库函数直接调用的信息;若不是,则提取所述call指令的函数指针所指向的函数的名称信息,以及所述函数为一般函数直接调用的信息。
4.根据权利要求3所述的装置,其特征在于,所述第一提取模块,具体用于:
基于所述LLVM IR文件中的br指令和ret指令,获取所述LLVM IR文件中函数的基本块,从所述LLVM IR文件中函数的基本块中提取过程内程序分析信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于首都师范大学,未经首都师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711423522.2/1.html,转载请声明来源钻瓜专利网。





