[发明专利]一种代码改动的检测方法和装置有效
申请号: | 201210504577.7 | 申请日: | 2012-11-30 |
公开(公告)号: | CN103077062A | 公开(公告)日: | 2013-05-01 |
发明(设计)人: | 李俊 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F9/45 | 分类号: | G06F9/45 |
代理公司: | 广州三环专利代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 改动 检测 方法 装置 | ||
1.一种代码改动的检测方法,其特征在于,所述方法包括:
为源代码中待改动的函数添加标记,所述标记用于在所述源代码编译后得到的二进制文件中定位所述待改动的函数;
将所述源代码编译为二进制文件,根据所述标记获取所述待改动的函数在所述二进制文件中的位置信息和重定位信息。
2.如权利要求1所述的方法,其特征在于,所述为源代码中待改动的函数添加标记,包括:
创建包含外部接口的标记,所述标记为:代码或提取信息的宏;
通过所述外部接口将所述标记添加到所述源代码中待改动的函数。
3.如权利要求1所述的方法,其特征在于,所述根据所述标记获取所述待改动的函数在所述二进制文件中的位置信息和重定位信息,包括:
执行所述标记以获取所述待改动函数在所述二进制文件中的信息,将所述信息与二进制文件中的符号表进行对比,根据所述对比的结果得出所述待改动函数在所述二进制文件中的位置信息,所述待改动函数在所述二进制文件中的信息包括:所述待改动函数在所述二进制文件中的函数名、或所述待改动函数在所述二进制文件中的开始地址;
为所述待改动的函数增加编译属性,增加的所述编译属性用于将所述待改动的函数保存到所述二进制文件的独立的段中,根据所述编译属性再次将所述源代码编译为二进制文件,以获取所述待改动的函数在所述二进制文件中的重定位信息。
4.如权利要求3所述的方法,其特征在于,所述将所述信息与二进制文件中的符号表进行对比,根据所述对比的结果获取所述待改动函数在所述二进制文件中的位置信息,包括:
如果所述信息为所述待改动函数在所述二进制文件中的函数名,则将所述待改动函数在所述二进制文件中的函数名与二进制文件中的符号表进行对比,以查询得出所述待改动函数在所述二进制文件中的开始地址;
如果所述信息为所述待改动函数在所述二进制文件中的开始地址,则将所述待改动函数在所述二进制文件中的开始地址与二进制文件中的符号表进行对比,以查询得出所述待改动函数在所述二进制文件中的函数名;
将所述待改动函数在所述二进制文件中的函数名和开始地址作为所述待改动函数在所述二进制文件中的位置信息。
5.一种代码改动的检测装置,其特征在于,所述装置包括:
标记添加单元,用于为源代码中待改动的函数添加标记,所述标记用于在所述源代码编译后得到的二进制文件中定位所述待改动的函数;
编译单元,用于将经过所述标记添加单元添加标记的源代码编译为二进制文件;
信息获取单元,用于根据所述标记添加单元添加的标记获取所述待改动的函数在在所述编译单元编译的二进制文件中的位置信息和重定位信息。
6.如权利要求5所述的装置,其特征在于,所述标记添加单元具体包括:
标记创建子单元,用于创建包含外部接口的标记,所述标记为:代码或提取信息的宏;
添加子单元,用于通过所述外部接口将所述标记创建子单元创建的标记添加到源代码中待改动的函数。
7.如权利要求5所述的装置,其特征在于,所述信息获取单元具体包括:
位置信息获取子单元,用于利用所述标记来获取所述待改动函数在所述二进制文件中的信息,将所述信息与二进制文件中的符号表进行对比,根据所述对比的结果得出所述待改动函数在所述二进制文件中的位置信息,待改动函数在所述二进制文件中的信息包括:待改动函数在所述二进制文件中的函数名、或待改动函数在所述二进制文件中的开始地址;
重定位信息获取子单元,用于为所述待改动的函数增加编译属性,增加的所述编译属性用于将所述待改动的函数保存到所述二进制文件的独立的段中,根据所述编译属性再次将所述源代码编译为二进制文件,以获取所述待改动的函数在所述二进制文件中的重定位信息。
8.如权利要求7所述的装置,其特征在于,所述位置信息获取子单元具体用于:
当利用所述标记获取的所述信息为所述待改动函数在所述二进制文件中的函数名时,将所述待改动函数在所述二进制文件中的函数名与二进制文件中的符号表进行对比,以查询得到所述待改动函数在所述二进制文件中的开始地址;
当利用所述标记获取的所述信息为所述待改动函数在所述二进制文件中的开始地址时,将所述待改动函数在所述二进制文件中的开始地址与二进制文件中的符号表进行对比,以查询得到所述待改动函数在所述二进制文件中的函数名;
将所述待改动函数在所述二进制文件中的函数名和开始地址作为所述待改动函数在所述二进制文件中的位置信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210504577.7/1.html,转载请声明来源钻瓜专利网。