[发明专利]一种基于LLVM的函数校验方法及相关装置有效
申请号: | 201910982787.9 | 申请日: | 2019-10-16 |
公开(公告)号: | CN112668004B | 公开(公告)日: | 2022-06-21 |
发明(设计)人: | 周志刚 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/60;G06F8/41 |
代理公司: | 北京众达德权知识产权代理有限公司 11570 | 代理人: | 徐松 |
地址: | 430000 湖北省武汉市东湖开*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 llvm 函数 校验 方法 相关 装置 | ||
1.一种基于底层虚拟机LLVM的函数校验方法,其特征在于,包括:
编写功能函数列表,所述功能函数列表包括各功能函数的名称和所述各功能函数对应的校验因子复杂度,所述功能函数为需要插入校验因子以进行校验的函数,所述各功能函数对应的校验因子复杂度与所述各功能函数的重要性正相关;
重载runOnFunction函数后,获取当前函数的名称,并判断所述当前函数是否包含于所述功能函数列表中,所述runOnFunction函数用于在函数中插入所述校验因子;
若是,则记录所述当前函数的内存起始地址和内存结束地址,并在所述当前函数的尾部插入第一调用函数和第二调用函数,所述第一调用函数用于调用所述当前函数对应的目标校验因子的功能,所述第一调用函数的输入参数包括所述当前函数的内存起始地址和内存结束地址,所述第二调用函数用于调用加密校验结果的功能;
在执行到所述当前函数的尾部时,通过所述第一调用函数得到对所述当前函数进行校验的目标校验结果,并通过所述第二调用函数对所述目标校验结果进行加密得到加密校验结果;
将所述加密校验结果上传至服务器,以使得所述服务器根据所述加密校验结果判断所述当前函数是否被修改。
2.根据权利要求1所述的方法,其特征在于,所述获取当前函数的名称,并判断所述当前函数是否包含于所述功能函数列表中包括:
通过调用函数getname()获取所述当前函数的名称;
定义迭代器iterator,并通过所述迭代器iterator查找所述当前函数的名称是否包含于所述功能函数列表中;
若所述当前函数的名称包含于所述功能函数列表中,则获取所述当前函数对应的目标校验因子复杂度;
若所述当前函数的名称不包含于所述功能函数列表中,则返回提示信息,所述提示信息用于提示对所述当前函数不插入所述校验因子。
3.根据权利要求1所述的方法,其特征在于,所述记录所述当前函数的内存起始地址和内存结束地址包括:
通过调用函数begin()获取所述当前函数的第一个代码块curr,并通过调用函数cbegin()反向获取所述当前函数的最后的代码块curr1;
创建用于记录所述内存起始地址的变量startaddress和用于记录所述内存结束地址的变量endaddress;
通过调用函数insertfront()将所述变量startaddress插入到所述代码块curr的起始位置,并将所述变量endaddress插入到所述代码块curr1的结束位置,所述代码块curr的起始位置为所述当前函数的内存起始地址,所述代码块curr1的结束位置为所述当前函数的内存结束地址。
4.根据权利要求3所述的方法,其特征在于,所述在所述当前函数的尾部插入第一调用函数和第二调用函数包括:
通过调用第一创建接口BinaryOperator::Create()构建所述第一调用函数,所述第一创建接口BinaryOperator::Create()的输入参数包括所述目标校验因子、所述当前函数的内存起始地址和所述当前函数的内存结束地址;
通过调用第二创建接口BinaryOperator::Create()构建所述第二调用函数,所述第二创建接口BinaryOperator::Create()的输入参数包括加密函数和所述目标校验结果;
通过调用函数insert()依次将所述第一调用函数和所述第二调用函数插入至所述当前函数的尾部。
5.根据权利要求1所述的方法,其特征在于,所述通过所述第一调用函数得到对所述当前函数进行校验的目标校验结果包括:
根据所述第一调用函数中所述当前函数的内存起始地址和内存结束地址确定所述当前函数;
在所述功能函数列表中确定与所述当前函数的名称对应的目标校验因子复杂度;
在复杂度均为所述目标校验因子复杂度的校验因子集合中,随机选择一个校验因子作为所述目标校验因子;
根据所述目标校验因子对所述当前函数进行校验,得到所述目标校验结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910982787.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种红薯米糖稀的制备方法
- 下一篇:一种原油破乳剂及其制备方法与应用