[发明专利]嵌入式系统固件程序的动态调试方法有效

专利信息
申请号: 202010575716.X 申请日: 2020-06-22
公开(公告)号: CN111752829B 公开(公告)日: 2022-10-14
发明(设计)人: 胡平;顾雪峰;刘杰峰;刘凯;张林森;杨迎化;王伟 申请(专利权)人: 中国人民解放军海军工程大学
主分类号: G06F11/36 分类号: G06F11/36;G06F9/455
代理公司: 北京孚睿湾知识产权代理事务所(普通合伙) 11474 代理人: 刘翠芹
地址: 430033 *** 国省代码: 湖北;42
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 嵌入式 系统 程序 动态 调试 方法
【权利要求书】:

1.一种嵌入式系统固件程序的动态调试方法,其特征在于,其包括如下操作步骤:

步骤1、构建固件程序虚拟运行环境;

步骤11、利用WMware虚拟机工具,在PC机端创建QNX实时操作系统的运行环境;

步骤12、在所述PC机端安装QNX操作系统,构建所述固件程序的虚拟运行环境;

步骤13、将所述固件程序安装到步骤12构建的所述固件程序的虚拟运行环境中;

步骤2、修改所述固件程序的二进制代码,以保证嵌入式主板固件在启动后能够执行到功能代码中;

步骤21、通过阅读所述固件程序反汇编后的汇编代码,根据固件程序的执行顺序,逐行查找出校验和检验功能代码,并修改所述固件程序的二进制代码,跳过所述校验和检验功能代码;

步骤22、通过阅读所述固件程序反汇编后的汇编代码,判断在所述固件程序中是否存在软件防盗版保护,如果存在所述软件防盗版保护,则根据保护的方式和强度,剔除所述软件防盗版保护;

步骤23、计算所述固件程序反汇编后的汇编代码中监控校验代码的字节数,使用jmp指令和多个nop指令替换所述监控校验代码;

步骤24、检查所述固件程序反汇编后的汇编代码中的配置代码,如果所述配置代码存在逻辑判断,影响所述固件程序在虚拟环境中的执行,则修改所述固件程序的二进制代码,使所述固件程序跳过所述配置代码;

步骤25、检查所述固件程序反汇编后的汇编代码中的外设检测与初始化代码,通过跳转指令跳过所述代码,或者保留所述外设检测与初始化代码,通过重定向对外接口,利用接口数据模拟环境构造消息,提供所述检测和初始化代码执行所需的数据;

步骤3、重定向接口地址,构建接口数据软件模拟环境,包括如下步骤:

步骤31、利用所述固件程序反汇编后的汇编代码,定位接口API函数;

步骤32、重定向所述接口API函数的接口地址,扩充代码段和数据段空间,在所述代码段和数据段空间编写代码,实现与信号仿真程序的通信,模拟外部接口数据;

步骤33、在新的空间内插入进程间的交互代码和协议处理代码,通过与新开发的仿真程序进行进程间通信的方式,模拟外部接口通信;

步骤4、破译接口协议,模拟接口协议

步骤41、利用所述固件程序反汇编后的汇编代码,反向跟踪接口变量所有调用位置,根据所述接口的使用方式,人工识别所述接口协议的格式,破译出所述接口协议;

步骤42、根据步骤41破译的所述接口协议,自主开发软件,模拟所述接口协议,驱动固件程序运行;

步骤5、启动所述固件程序,按需插入调试点,开展对所述固件程序的调试

步骤51启动所述固件程序,所述固件程序正常运行;

步骤52、根据工作的目标,在软件中插入调试点,采用屏幕打印和文件输出的方式,观察调试点的状态,实现对所述固件程序的调试。

2.根据权利要求1所述的嵌入式系统固件程序的动态调试方法,其特征在于,所述步骤31中定位接口API函数,包括如下具体步骤:

首先,根据已有的通用的API函数源码构建签名库,然后使用反汇编工具自动分析和识别所述接口API函数;如果识别不出所述接口API函数,则确定所述接口API函数为开发者自定义,则根据所述接口API函数存在的特征,初步定位所述接口API函数;然后,再根据所述接口API函数变量访问的关联关系,确定出整个API函数组。

3.根据权利要求1所述的嵌入式系统固件程序的动态调试方法,其特征在于,所述步骤32中扩充代码段和数据段空间,包括如下具体步骤:

查看所述固件程序反汇编后的汇编代码最后一个字段是否已满,如果已满,则需开辟新的段;如果未满,计算剩余空间是否够用,如不够用,则开辟新的段。

4.根据权利要求3所述的嵌入式系统固件程序的动态调试方法,其特征在于,所述开辟新的段包括扩展最后一个代码段和增加段;

扩展最后一个代码段包括如下操作:修改所述代码段的段头,以改变所述段的大小,并在所述代码段的末端插入“0xFF”字节,然后再修改文件头中的文件大小;

所述增加段包括如下操作:在文件头中修改段的个数,并构建新段的文件头,然后修改最后一个段的段头,修改所述段的大小,插入“0xFF”字节。

5.根据权利要求1所述的嵌入式系统固件程序的动态调试方法,其特征在于,步骤32中扩充LMF格式程序数据段方法为:

直接在文件头中修改数据段地址和大小。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军海军工程大学,未经中国人民解放军海军工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010575716.X/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top