[发明专利]一种程序编译方法、装置及系统有效
申请号: | 201910456368.1 | 申请日: | 2019-05-29 |
公开(公告)号: | CN110147238B | 公开(公告)日: | 2022-11-11 |
发明(设计)人: | 张铮;趙玉风;邬江兴;王晓梅;王立群;李卫超;马博林;刘镇武;刘浩;张高斐;潘传幸;李方云 | 申请(专利权)人: | 中国人民解放军战略支援部队信息工程大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F21/12 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 牛亭亭;王宝筠 |
地址: | 450001 *** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序 编译 方法 装置 系统 | ||
1.一种程序编译方法,其特征在于,包括:
获得待编译的程序代码,所述程序代码中包括至少一个存根函数的调用地址;
获得所述程序代码的编辑脚本,所述编辑脚本与所述存根函数的调用地址相关;
解析所述编辑脚本中所述存根函数的调用地址在所述程序代码中的位置信息和所述存根函数的调用地址替换目标函数的调用地址时的修改信息;
基于所述位置信息和所述修改信息,重构所述程序代码中所述目标函数的调用地址;
基于所述目标函数的调用地址,对所述程序代码进行编译,得到所述程序代码的可执行文件。
2.根据权利要求1所述的方法,其特征在于,所述待编译的程序代码预先通过以下处理生成:
获得原始的程序代码,所述程序代码中包括至少一个目标函数的调用地址;
对所述原始的程序代码进行代码优化处理;
对所述目标函数的调用地址使用相应的存根函数的调用地址进行替换,以得到待编译的程序代码。
3.根据权利要求2所述的方法,其特征在于,对所述目标函数的调用地址使用相应的存根函数的调用地址进行替换,包括:
分别对所述程序代码中的每个所述目标函数的调用地址替换为其各自对应的存根函数的调用地址;
其中,每个所述存根函数的调用地址不同。
4.根据权利要求2所述的方法,其特征在于,对所述目标函数的调用地址使用相应的存根函数的调用地址进行替换,包括:
对所述程序代码中的所述目标函数的调用地址进行分组;
将属于同一分组的所述目标函数的调用地址替换为该分组对应的存根函数的调用地址;
其中,属于不同分组的所述目标函数的调用地址所对应的存根函数的调用地址不同。
5.根据权利要求2所述的方法,其特征在于,所述程序代码的编辑脚本预先根据所述存根函数的调用地址与所述目标函数的调用地址之间的替换操作信息生成。
6.根据权利要求5所述的方法,其特征在于,还包括:
获得随机变量;
相应的,根据所述存根函数的调用地址与所述目标函数的调用地址之间的替换操作信息,生成所述程序代码的编辑脚本,包括:
根据所述存根函数的调用地址与所述目标函数的调用地址之间的替换操作信息,结合所述随机变量,生成所述程序代码的编辑脚本。
7.一种程序编译装置,其特征在于,包括:
代码获得单元,用于获得待编译的程序代码,所述程序代码中包括至少一个存根函数的调用地址;
脚本获得单元,用于获得所述程序代码的编辑脚本,所述编辑脚本与所述存根函数的调用地址相关;
地址重构单元,用于利用所述编辑脚本和所述存根函数的调用地址,重构出所述程序代码中被所述存根函数的调用地址替换的目标函数的调用地址;
代码编译单元,用于基于所述目标函数的调用地址,对所述程序代码进行编译;
所述地址重构单元具体用于,解析所述编辑脚本中所述存根函数的调用地址在所述程序代码中的位置信息和所述存根函数的调用地址替换目标函数的调用地址时的修改信息;基于所述位置信息和所述修改信息,重构所述程序代码中所述目标函数的调用地址。
8.一种程序编译系统,其特征在于,包括:
编辑引擎,用于获得待编译的程序代码,所述程序代码中包括至少一个存根函数的调用地址;获得所述程序代码的编辑脚本,所述编辑脚本与所述存根函数的调用地址相关;解析所述编辑脚本中所述存根函数的调用地址在所述程序代码中的位置信息和所述存根函数的调用地址替换目标函数的调用地址时的修改信息;基于所述位置信息和所述修改信息,重构所述程序代码中所述目标函数的调用地址;
编译器,用于基于所述目标函数的调用地址,对所述程序代码进行编译。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军战略支援部队信息工程大学,未经中国人民解放军战略支援部队信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910456368.1/1.html,转载请声明来源钻瓜专利网。