[发明专利]一种固件代码分析方法及装置有效
申请号: | 202011177682.5 | 申请日: | 2020-10-29 |
公开(公告)号: | CN112394984B | 公开(公告)日: | 2022-09-30 |
发明(设计)人: | 李明春;张苏涛 | 申请(专利权)人: | 北京智联安行科技有限公司 |
主分类号: | G06F8/74 | 分类号: | G06F8/74;G06F8/53;G06K9/62 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 梁少微;王丽琴 |
地址: | 100088 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 分析 方法 装置 | ||
本发明公开了一种固件代码分析方法及装置,其中,该方法包括:预先存储包括多条数据的数据集,每条数据包含固件汇编代码与高级语言或描述性语言语句的对应关系;根据所述数据集训练基于离散特征的朴素贝叶斯算法模型,更新先验概率矩阵,得到训练后的模型;当需要对一固件代码进行分析时,将所述固件代码生成汇编代码输入到所述基于离散特征的朴素贝叶斯算法模型,得到对应的高级语言或描述性语言语句。采用本发明能够快速准确对固件代码进行分析。
技术领域
本发明涉及固件技术领域,特别涉及一种固件代码分析方法及装置。
背景技术
随着智能家居、车联网等的飞速发展,各种智能设备层出不穷,固件的数量呈井喷式上涨,各种潜在安全问题、隐私问题也随之而来,因此大家对于固件的可靠性、安全性也有了更高的要求。掌握固件的逆向分析技术,不仅有助于新手了解固件的执行流程、所包含的功能,还有助于第三方个人/机构对固件进行安全漏洞检测、隐私数据泄露排查等工作。
然而现在市场上的固件标准不一,不同的厂商有各自的实现方式,架构也不尽相同,有x86架构的、有ARM架构的、有MIPS架构的,还有很多其他架构。因此,对于固件的逆向分析技术既有很大的需求又具有很强的挑战性。
目前对于固件的逆向分析,最主要的方案还是通过逆向分析人员,凭借他们的经验对固件程序的汇编代码进行逐句分析,最终形成对整个固件程序的理解。
对于依靠个人逆向分析人员进行的固件逆向分析方案有以下几个缺点:
一、对分析人员要求高
对于市面上的固件程序,如要进行分析,由于缺乏源码,我们只能通过汇编层代码对其进行分析。由于汇编代码相较高级语言晦涩难懂,而且不同架构的固件程序对应的汇编语言又不尽相同。因此,想要掌握市面上大部分固件就必须熟练掌握各种CPU架构对应的汇编语言。
二、分析所需耗时久、成本高
相较于高级语言,汇编语言虽然每句更加简短,但每一条高级语言往往对应着多条汇编语言,而且在出现循环语句以及跳转语句等复杂语句时,对应的汇编语言会更加的复杂。因此,对其进行逆向分析需要固件逆向分析人员拥有足够的耐心以及花费大量的时间从海量的汇编代码中找出相互的联系,从而理清固件的相关信息,这无疑会增加很多成本。
发明内容
有鉴于此,本发明的发明目的是:能够快速准确分析固件代码。
为达到上述目的,本发明的技术方案具体是这样实现的:
本发明提供了一种固件代码分析方法,该方法包括:
预先存储包括多条数据的数据集,每条数据包含固件汇编代码与高级语言或描述性语言语句的对应关系;根据所述数据集训练基于离散特征的朴素贝叶斯算法模型,更新先验概率矩阵,得到训练后的模型;
当需要对一固件代码进行分析时,将所述固件代码生成汇编代码输入到所述基于离散特征的朴素贝叶斯算法模型,得到对应的高级语言或描述性语言语句。
本发明还提供了一种固件代码分析装置,该装置包括:
训练模块,预先存储包括多条数据的数据集,每条数据包含固件汇编代码与高级语言或描述性语言语句的对应关系;根据所述数据集训练基于离散特征的朴素贝叶斯算法模型,更新先验概率矩阵,得到训练后的模型;
处理模块,当需要对一固件代码进行分析时,将所述固件代码生成汇编代码输入到所述基于离散特征的朴素贝叶斯算法模型,得到对应的高级语言或描述性语言语句。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京智联安行科技有限公司,未经北京智联安行科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011177682.5/2.html,转载请声明来源钻瓜专利网。