恭喜中国科学院信息工程研究所龚晓锐获国家专利权
买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
龙图腾网恭喜中国科学院信息工程研究所申请的专利一种面向C++二进制文件的控制流图生成方法及电子装置获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN114527961B 。
龙图腾网通过国家知识产权局官网在2025-07-01发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202011321203.2,技术领域涉及:G06F8/30;该发明授权一种面向C++二进制文件的控制流图生成方法及电子装置是由龚晓锐设计研发完成,并于2020-11-23向国家知识产权局提交的专利申请。
本一种面向C++二进制文件的控制流图生成方法及电子装置在说明书摘要公布了:本发明提供一种面向C++二进制文件的控制流图生成方法及电子装置,包括:从C++二进制文件中提取虚函数表与符号表;依据所述符号表获取每一虚函数表中的析构函数,并将虚函数表与相应析构函数进行配对;对每一虚函数表进行交叉引用查询,得到构造函数;通过构造函数、析构函数与直接或间接调用构造函数或析构函数的函数,生成控制流图。本发明采用过程间的方法来解决数据间接引用的问题,从而可以识别虚继承;以构造函数或析构函数为起点,从整体角度进行分析,构造对象内存布局,从而可以抵抗构造函数内联带来的影响;只对构造函数和析构函数及其相关的函数生成控制流图,适用于分析大型的C++二进制文件。
本发明授权一种面向C++二进制文件的控制流图生成方法及电子装置在权利要求书中公布了:1.一种面向C++二进制文件的控制流图生成方法,其步骤包括: 1从C++二进制文件中提取虚函数表与符号表; 2依据所述符号表获取每一虚函数表中的析构函数,并将虚函数表与相应析构函数进行配对;其中,依据所述符号表获取每一虚函数表中的析构函数,包括: 遍历每一虚函数表中的函数,得到具有虚函数表内存覆写操作的第一函数; 依据所述符号表,获取第一函数的第一后面指令或调用第一函数的上层函数的第二后面指令中具有delete操作的第一函数,得到析构函数;其中,所述第一后面指令为该第一函数后面的指令,所述第二后面指令为调用该第一函数的上层函数的后面的指令; 3对每一虚函数表进行交叉引用查询,得到构造函数;其中,所述对每一虚函数表进行交叉引用查询,得到构造函数,包括: 交叉引用查询每一虚函数表,排除掉析构函数,获取第三函数; 遍历第三函数,获取具有虚函数表内存覆写操作的第四函数; 获取第四函数的第一前序指令和调用第四函数的上层函数的第二前序指令中具有new操作的第四函数,得到构造函数;其中,所述第一前序指令为该第四函数前面的指令,所述第二前序指令为调用第四函数的上层函数的前面的指令; 4通过构造函数、析构函数与直接或间接调用构造函数或析构函数的函数,生成控制流图;其中,所述通过构造函数、析构函数与直接或间接调用构造函数或析构函数的函数,生成控制流图,包括: 根据跳转语句,对构造函数地址与析构函数地址组成的集合中每一函数进行基本块划分; 将包含直接跳转语句或条件跳转语句的基本块,与跳转目标所在的基本块连接; 将包含非系统调用的call指令的基本块与相应call指令指向函数地址所在的基本块连接,其中将不存在集合中的相应call指令指向函数地址所在的基本块,添加进集合; 若跳转语句的跳转目标地址在已分析基本块中,且不是已分析基本块的起始地址或结束地址,则将该已分析基本块对于跳转目标地址进行分割; 分别对循环结构的走向循环路径分支与无返回的路径结构的走向路径分支进行标记。
如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人中国科学院信息工程研究所,其通讯地址为:100093 北京市海淀区闵庄路甲89号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。