[发明专利]基于动态链接库的动静融合二进制翻译方法及系统在审
申请号: | 202010345949.0 | 申请日: | 2020-04-27 |
公开(公告)号: | CN111625279A | 公开(公告)日: | 2020-09-04 |
发明(设计)人: | 庞建民;王军;单征;岳峰;李明亮;傅立国;张家豪;谭捷;祝迪;王其涵;郭佳郁 | 申请(专利权)人: | 中国人民解放军战略支援部队信息工程大学 |
主分类号: | G06F8/76 | 分类号: | G06F8/76;G06F9/445 |
代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 周艳巧 |
地址: | 450000 河*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 动态 链接 动静 融合 二进制 翻译 方法 系统 | ||
1.一种基于动态链接库的动静融合二进制翻译方法,其特征在于,包含如下内容:
以函数为单位划分程序,并依据函数特征确定函数执行过程,具体为:首先判定函数是否为第三方库函数,若是,则采用本地相同库函数替换执行,否则判断函数内是否存在间接跳转分支指令,若不存在,则在静态翻译阶段以基本块为单位将源机器代码翻译成目标代码,若存在间接跳转分支指令,则将该函数放在动态翻译执行阶段执行;
静态翻译阶段,静态分析目标可执行程序,生成用于目标程序在动态执行过程中调用的动态链接库;并收集静态翻译后函数的重定位信息,生成重定位信息表;
动态翻译执行阶段,针对静态翻译阶段翻译优化后的函数,依据重定位信息表和动态链接库动态执行。
2.根据权利要求1所述的基于动态链接库的动静融合二进制翻译方法,其特征在于,静态分析目标可执行程序,根据记录信息对翻译后的目标代码进行分析优化,生成用于目标程序在动态执行过程中调用的动态链接库;并收集静态翻译后函数的重定位信息,记录库函数以及其他函数名及地址,生成重定位信息表。
3.根据权利要求1或2所述的基于动态链接库的动静融合二进制翻译方法,其特征在于,重定位信息表中记录每条需要定位的函数名及其在内存中的偏移、重定位类型及回填地址。
4.根据权利要求1所述的基于动态链接库的动静融合二进制翻译方法,其特征在于,动态翻译执行过程中,在函数内部执行时,若执行的函数已经在静态翻译阶段翻译优化后,则依据重定位信息表和动态链接库,优先执行翻译优化后的程序;若该函数未在静态阶段翻译,则直接翻译执行该函数。
5.一种基于动态链接库的动静融合二进制翻译系统,其特征在于,包含:处理模块、静态分析模块和动态执行模块,其中,
处理模块,以函数为单位划分程序,并依据函数特征确定函数执行过程,具体为:首先判定函数是否为第三方库函数,若是,则采用本地相同库函数替换执行,否则判断函数内是否存在间接跳转分支指令,若不存在,则在静态翻译阶段以基本块为单位将源机器代码翻译成目标代码,若存在间接跳转分支指令,则将该函数放在动态翻译执行阶段执行;
静态分析模块,静态分析目标可执行程序,生成用于目标程序在动态执行过程中调用的动态链接库;并收集静态翻译后函数的重定位信息,生成重定位信息表;
动态执行模块,针对静态翻译阶段翻译优化后的函数,依据重定位信息表和动态链接库动态执行。
6.一种服务器,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器执行权利要求1~4任一项所述的方法。
7.一种计算机可读介质,其上存储有被处理器运行的计算机程序,所述计算机程序用于执行权利要求1~4任一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军战略支援部队信息工程大学,未经中国人民解放军战略支援部队信息工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010345949.0/1.html,转载请声明来源钻瓜专利网。