[发明专利]程序转换方法、装置及设备有效
申请号: | 201910773628.8 | 申请日: | 2019-08-21 |
公开(公告)号: | CN110471662B | 公开(公告)日: | 2023-04-25 |
发明(设计)人: | 彭义海 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F8/40 | 分类号: | G06F8/40;G06F21/52 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 朱颖;刘芳 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 转换 方法 装置 设备 | ||
1.一种程序转换方法,其特征在于,包括:
获取待转换的程序,所述待转换的程序在运行时会调用第一文件中的危险函数,所述危险函数为存在安全漏洞的函数;
获取所述待转换的程序中的第一包含语句;
根据所述第一包含语句指示的被包含的第一文件,获取与所述第一文件对应的第二文件的路径;
根据所述第二文件的路径,生成第二包含语句;
将所述待转换的程序中的第一包含语句修改为第二包含语句,得到转换后的程序;其中,所述第一包含语句用于指示在程序中包含所述第一文件,所述第二包含语句用于指示在程序中包含第二文件,所述转换后的程序在运行时会调用所述第二文件中的安全函数,所述安全函数是对所述危险函数中的安全漏洞进行处理后的函数。
2.根据权利要求1所述的方法,其特征在于,所述获取所述待转换的程序中的所述第一包含语句,包括:
根据包含语句对应的关键字,获取所述待转换的程序中的每个包含语句;
针对每个所述包含语句,获取所述包含语句指示的被包含文件的名称,根据所述被包含文件的名称,确定所述包含语句是否为第一包含语句。
3.根据权利要求1或2所述的方法,其特征在于,所述待转换的程序中还包括调用语句,所述调用语句用于指示调用所述危险函数;所述得到转换后的程序之后,还包括:
获取所述转换后的程序中的所述调用语句;
根据所述第二包含语句指示的被包含的第二文件,以及所述调用语句所指示调用的危险函数,将所述转换后的程序中的所述调用语句替换为与所述危险函数对应的安全函数,得到函数替换后的程序;
根据所述函数替换后的程序,对所述转换后的程序中的语句进行修正。
4.根据权利要求3所述的方法,其特征在于,所述根据所述函数替换后的程序,对所述转换后的程序中的语句进行修正,包括:
根据所述函数替换后的程序,确定所述转换后的程序中的所述第二包含语句指示的被包含的第二文件是否被正确包含;
若确定未被正确包含,则根据所述被包含的第二文件的路径信息,对所述转换后的程序中的第二包含语句进行修正。
5.根据权利要求3所述的方法,其特征在于,所述根据所述函数替换后的程序,对所述转换后的程序中的语句进行修正,包括:
根据所述函数替换后的程序,确定所述转换后的程序中的所述调用语句是否正确调用所述安全函数;
若确定未正确调用所述安全函数,则根据所述安全函数的定义,对所述转换后的程序中的调用语句进行修正。
6.根据权利要求4或5所述的方法,其特征在于,对所述转换后的程序中的语句进行修正之后,还包括:
根据所述修正的内容,生成所述修正对应的日志信息;
将修正后的所述转换后的程序以及所述日志信息进行输出。
7.根据权利要求1或2所述的方法,其特征在于,所述第一文件为标准函数库中的标准文件,所述危险函数为所述标准文件中的标准函数;所述安全函数与所述标准函数的定义相同。
8.一种程序转换装置,其特征在于,包括:
获取模块,用于获取待转换的程序,所述待转换的程序在运行时会调用第一文件中的危险函数,所述危险函数为存在安全漏洞的函数;
转换模块,用于将所述待转换的程序中的第一包含语句修改为第二包含语句,得到转换后的程序;其中,所述第一包含语句用于指示在程序中包含所述第一文件,所述第二包含语句用于指示在程序中包含第二文件,所述转换后的程序在运行时会调用所述第二文件中的安全函数,所述安全函数是对所述危险函数中的安全漏洞进行处理后的函数;
所述转换模块还用于:
获取所述待转换的程序中的所述第一包含语句;
根据所述第一包含语句指示的被包含的第一文件,获取与所述第一文件对应的第二文件的路径;
根据所述第二文件的路径,生成所述第二包含语句。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910773628.8/1.html,转载请声明来源钻瓜专利网。