[发明专利]一种用于固件的保护方法有效
申请号: | 201510662037.5 | 申请日: | 2015-10-14 |
公开(公告)号: | CN105354009B | 公开(公告)日: | 2021-01-01 |
发明(设计)人: | 吴晓龙;孙吉平 | 申请(专利权)人: | 北京深思数盾科技股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F21/12 |
代理公司: | 北京金信知识产权代理有限公司 11225 | 代理人: | 黄威;邓玉婷 |
地址: | 100193 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 保护 方法 | ||
本发明公开了一种用于固件的保护方法,所述固件存储在硬件设备中,所述保护方法包括:将所述固件的待保护的代码段中的各条指令打乱顺序;将每条指令与实际应当执行的下一条指令之间的偏移量保存到偏移量表中,将偏移量表保存在所述硬件设备的外部;在每条指令末尾添加跳转指令,所述跳转指令用于根据所述偏移量表在指令顺序打乱后的所述代码段内执行从每条指令到实际应当执行的下一条指令的跳转。通过本发明的用于固件的保护方法,可以保护固件中的关键代码段,增加破解固件的难度,从而提高固件的安全性。
技术领域
本发明涉及软件保护领域,特别涉及一种用于固件的保护方法。
背景技术
固件(Firmware,固件程序)是固化在硬件设备中的软件程序,一般由硬件设备的开发商提供,在硬件设备出厂前下载到硬件中。固件一般存储于硬件设备中的电可擦除只读存储器EEPROM(Electrically Programmable ROM)或FLASH芯片中。
固件是担任着硬件设备系统最基础最底层工作的软件。在硬件设备中,固件就是硬件设备的灵魂。一些硬件设备除了固件以外没有存储其他软件,因此固件也就决定着硬件设备的功能及性能,其重要性不言而喻。
为保护固件安全,有些硬件设备开发商会采用安全芯片,将固件程序存储在安全芯片中,通过高强度的安全芯片来保护技术秘密和数据安全。但是,由于安全芯片成本较高,并且在使用上相对来说较为复杂(例如加密等操作)等原因,目前安全芯片更多地应用在软件保护行业(如加密锁产品)或其他对技术保密有要求的安全产品上,而市场上大部分硬件设备基本上采用的都还是非安全芯片。
一般来讲,对于固件程序,通常可以通过专门的固件读取工具或一些硬件设备来读取固件的二进制代码,之后再反编译成汇编语言,很容易就能获得固件的源码,这样一来,采用非安全芯片存储的固件基本上就没有安全性可言。
发明内容
有鉴于此,本发明提供了一种用于固件的保护方法,以解决目前用单片机或ARM等非安全芯片存储的固件的安全问题。
在本发明提供的用于固件的保护方法中,所述固件存储在硬件设备中,所述保护方法包括:将所述固件的待保护的代码段中的各条指令打乱顺序;将每条指令与实际应当执行的下一条指令之间的偏移量保存到偏移量表中,将偏移量表保存在所述硬件设备的外部;在每条指令末尾添加跳转指令,所述跳转指令用于根据所述偏移量表在指令顺序打乱后的所述代码段内执行从每条指令到实际应当执行的下一条指令的跳转。
作为优选,所述偏移量表还包括入口点信息,所述入口点信息为关联于指令顺序打乱后的所述代码段中实际应当首先执行的指令的偏移量。
作为优选,在紧接所述代码段之前添加入口点跳转指令,其用于根据偏移量表中的所述入口点信息跳转到所述代码段中实际应当首先执行的指令。
作为优选,预先生成所述偏移量表并根据所述偏移量表将固件的所述待保护的代码段中的各条指令打乱顺序。
作为优选,在将所述待保护的代码段中的各条指令打乱顺序之后生成所述偏移量表。
作为优选,根据自定义算法或随机乱序算法自动将所述各条指令打乱顺序。
作为优选,根据用户指令将所述各条指令打乱顺序。
作为优选,所述偏移量表通过文件的方式存储或通过变量的方式记录。
作为优选,将所述偏移量表经过加密后保存在所述硬件设备外部。
作为优选,所述偏移量表中还包括指令顺序打乱后的所述代码段中各指令的实际执行顺序信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京深思数盾科技股份有限公司,未经北京深思数盾科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510662037.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:电动抗剪切流量控制器
- 下一篇:带有预留接口的电动汽车整车控制器