首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于内核数据重构的异构指令集程序加载方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:北京麟卓信息科技有限公司

摘要:本发明公开了一种基于内核数据重构的异构指令集程序加载方法,在确定Linux系统内核未开启Binfmt_misc相关配置项后,监视系统内与程序加载相关的异常,对于与异构指令集程序相关的异常通过对search_binary_handler函数执行Hook操作或修改系统维护的二进制程序处理器列表的方式,实现采用异构指令集程序加载器完成异构指令集程序的加载,对于不相关异常则将对应的execve函数入口参数添加到挂起程序列表的尾部,并在异构指令集程序加载及根据search_binary_handler函数或二进制程序处理器列表恢复后按照挂起程序列表完成相关程序的加载,从而在不重新编译内核及不修改应用的情况下通过Binfmt_misc机制实现了异构指令集程序的加载。

主权项:1.一种基于内核数据重构的异构指令集程序加载方法,其特征在于,具体包括以下步骤:步骤1、确定系统内核未开启Binfmt_misc相关配置项,将异构指令集程序的程序路径记为目标程序路径,将execve函数加载该异构指令集程序的调用参数记为目标程序参数、环境变量集合记为目标程序环境变量;步骤2、Hook系统调用execve函数监视系统内与异构指令集程序加载相关的异常,当监视到异构指令集程序加载异常时执行步骤3;步骤3、拦截execve函数的返回值使该值不发送到用户态,并获取execve函数的入口参数,若其中第一个参数与目标程序路径相同则执行步骤4,否则将入口参数添加到挂起程序列表的尾部后再执行步骤2;步骤4、构建可动态加载的内核模块记为异构指令集程序加载器,用于加载异构指令集程序的第一数据结构,第一数据结构包含第一环形双向链表及第一加载函数的指针,第一加载函数用于读取并加载异构指令集程序的函数;加载异构指令集程序加载器;步骤5、若内核符号表中存在符号search_binary_handler则执行步骤6,否则执行步骤7;步骤6、对search_binary_handler函数执行Hook操作,实现当该函数被调用时以异构指令集程序加载器作为返回结果,执行步骤8;步骤7、以异构指令集程序加载器为参数调用insert_binfmt函数,根据第一环形双向链表遍历系统的二进制程序处理器列表,将其中与ELF文件相关的加载器作为待设置加载器,将待设置加载器中原有加载函数的指针修改为第一加载函数的指针,执行步骤8;步骤8、以步骤1得到的目标程序路径、目标程序参数及目标程序环境变量为参数再次执行execve函数完成异构指令集程序的加载;当异构指令集程序的进程创建后,若存在符号search_binary_handler则去除search_binary_handler函数的Hook操作,若不存在则将二进制程序处理器列表恢复为未修改状态;禁用对execve函数的第一个参数的判断处理,再根据挂起程序列表按照先进先出的顺序依次读取每个列表项,以每个列表项为参数调用execve函数完成挂起程序的加载。

全文数据:

权利要求:

百度查询: 北京麟卓信息科技有限公司 一种基于内核数据重构的异构指令集程序加载方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。