CN111444513B - 一种电网嵌入式终端的固件编译优化选项识别方法及装置 - Google Patents
一种电网嵌入式终端的固件编译优化选项识别方法及装置 Download PDFInfo
- Publication number
- CN111444513B CN111444513B CN201911113611.6A CN201911113611A CN111444513B CN 111444513 B CN111444513 B CN 111444513B CN 201911113611 A CN201911113611 A CN 201911113611A CN 111444513 B CN111444513 B CN 111444513B
- Authority
- CN
- China
- Prior art keywords
- compiling
- identification model
- optimization
- original byte
- byte content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 20
- 238000012360 testing method Methods 0.000 claims description 37
- 238000012549 training Methods 0.000 claims description 36
- 238000004364 calculation method Methods 0.000 claims description 17
- 239000011159 matrix material Substances 0.000 claims description 17
- 238000004422 calculation algorithm Methods 0.000 claims description 11
- 238000011176 pooling Methods 0.000 claims description 8
- 238000010276 construction Methods 0.000 claims 2
- 238000005516 engineering process Methods 0.000 abstract description 5
- 239000013598 vector Substances 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000003860 storage Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E40/00—Technologies for an efficient electrical power generation, transmission or distribution
- Y02E40/70—Smart grids as climate change mitigation technology in the energy generation sector
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S10/00—Systems supporting electrical power generation, transmission or distribution
- Y04S10/50—Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种电网嵌入式终端的固件编译优化选项识别方法,包括:对电网嵌入式终端的固件的源码进行编译,获得在不同编译优化选项下生成的可执行二进制文件;将所述二进制文件的原始字节内容输入预先构建的基于卷积神经网络的编译优化选项识别模型进行识别;所述识别模型经计算后输出所述二进制文件的原始字节内容对应的编译优化选项的编译优化水平,解决目前针对可执行文件中电网嵌入式终端固件的二进制内容的编译优化水平识别技术的需求问题。
Description
技术领域
本申请涉及电网二进制程序漏洞分析和逆向分析领域,具体涉及一种电网嵌入式终端的固件编译优化选项识别方法,同时涉及一种电网嵌入式终端的固件编译优化选项识别装置。
背景技术
现在的编译器例如GCC,Clang,ICC等,有着各种各样的编译优化选项,不同的编译优化选项和不同的编译优化选项的组合对最终生成的电网二进制代码有着不同的影响。编译优化选项主要有5个常用的类别,分别是-O0,-O1,-O2,-O3,-Os。由于无法直接从电网嵌入式终端固件的二进制文件头(如PE头和ELF头)中直接获取源码在编译时采用的编译优化级别,识别不同的编译优化选项对软件安全分析具有重大的意义。例如c/c++中对不同的优化选项有一些未严格定义的实现标准,这种未严格定义的代码优化不同的编译器有着不同的实现方式,而这种实现有可能就会导致生成的电网嵌入式终端固件的二进制代码中包含安全漏洞。不用的编译优化选项对软件安全有着很大程度的影响《The Correctness-Security Gap in Compiler Optimization》。有些源码片段在特定的编译优化选项下生成的电网嵌入式终端固件的二进制代码可能存在漏洞,因此编译优化选项的识别可以用于漏洞发现《Towards optimization-safe systems:analyzing the impact of undefinedbehavior》。
目前缺少一种针对可执行文件中电网嵌入式终端固件的二进制内容的编译优化水平识别技术。
发明内容
本申请提供一种电网嵌入式终端的固件编译优化选项识别方法,用于解决目前针对可执行文件中电网嵌入式终端固件的二进制内容的编译优化水平识别技术的需求问题。
本申请提供一种电网嵌入式终端的固件编译优化选项识别方法,包括:
对电网嵌入式终端的固件的源码进行编译,获得在不同编译优化选项下生成的可执行二进制文件;
将所述二进制文件的原始字节内容输入预先构建的基于卷积神经网络的编译优化选项识别模型进行识别;
所述识别模型经计算后输出所述二进制文件的原始字节内容对应的编译优化选项的编译优化水平。优选的,对电网嵌入式终端的固件的源码进行编译,包括:
使用交叉编译工具对电网嵌入式终端的固件的源码进行编译,所述编译工具包括:arm-linux-gcc,arm-linux-ld工具。
优选的,所述不同编译优化选项,是指定编译器的编译优化水平分别不同。
优选的,所述二进制文件中的原始字节内容,包括:
将所述原始字节内容构成字节矩阵;
若所述原始字节内容不够,则补零对齐。
优选的,所述识别模型,为基于卷积神经网络的编译优化选项识别模型,包括:
数据嵌入层、位置嵌入层、不同卷积核大小的卷积层、池化层和全连接层。
优选的,所述基于卷积神经网络的编译优化选项识别模型的预先构建步骤,包括:
提取所述二进制文件中的原始字节内容;将所述二进制文件对应的编译优化水平作为所述识别模型训练和测试的输入标签;
将部分所述原始字节内容和输入标签作为训练集,对所述模型进行训练;根据训练结果进行算法优化;
将剩余所述原始字节内容和输入标签作为测试集,对所述识别模型进行测试,根据所述识别模型的测试结果获得所述识别模型的正确率;
当所述识别模型的正确率符合预先设定的标准,完成所述识别模型的训练和测试。
优选的,所述将部分所述原始字节内容和输入标签作为训练集,对所述模型进行训练;根据训练结果进行算法优化,包括:
将部分所述原始字节内容和输入标签作为训练集输入所述识别模型;
所述识别模型通过前向计算和梯度计算获得输出标签,所述输出标签为训练结果;
将输入标签与输出标签进行比较,根据比较结果进行算法优化。
优选的,将剩余所述原始字节内容和输入标签作为测试集,对所述识别模型进行测试,根据所述识别模型的测试结果获得所述识别模型的正确率,包括:
将剩余所述原始字节内容和输入标签作为测试集输入所述识别模型;
所述识别模型通过前向计算和梯度计算获得输出标签,所述输出标签为测试结果;
将所有输入标签与输出标签进行比较,获得所述识别模型的正确率。
当所述识别模型的正确率符合预先设定的标准,完成所述识别模型的训练和测试。
本申请同时提供一种电网嵌入式终端的固件编译优化选项识别装置,其特征在于,包括:
二进制文件获取单元,用于对电网嵌入式终端的固件的源码进行编译,获得在不同编译优化选项下生成的可执行二进制文件;
识别单元,用于将所述二进制文件的原始字节内容输入预先构建的基于卷积神经网络的编译优化选项识别模型进行识别
编译优化水平获取单元,所述识别模型经计算后输出所述二进制文件的原始字节内容对应的编译优化选项的编译优化水平。
本申请提供一种电网嵌入式终端的固件编译优化选项识别方法,通过采取卷积神经网络模型结构,提取可执行二进制文件的代码段的原始字节内容和其对应的标签,将部分所述原始字节内容和标签作为训练集对模型进行训练,根据训练结果进行算法优化,将剩余所述原始字节内容作为测试集对模型进行测试,根据输出所有预测结果,获得所述模型的准确率,解决目前针对可执行文件中电网嵌入式终端固件的二进制内容的编译优化水平识别技术的需求问题。
附图说明
图1是本申请实施例提供的一种电网嵌入式终端的固件编译优化选项识别方法的流程示意图;
图2是本申请实施例涉及的基于卷积神经网络的编译优化选项识别系统工作流程图;
图3是本申请实施例涉及的基于卷积神经网络的编译优化选项识别模型详细结构图;
图4是本申请实施例涉及的基于卷积神经网络的编译优化选项识别模型测试结果ROC曲线图;
图5是本申请第五实施例提供的一种电网嵌入式终端的固件编译优化选项识别示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
图1为本申请提供的一种电网嵌入式终端的固件编译优化选项识别方法的流程示意图,下面结合图1对本申请实施例提供的方法进行详细说明。
步骤S101,对电网嵌入式终端的固件的源码进行编译,获得在不同编译优化选项下生成的可执行二进制文件。
使用交叉编译工具对电网嵌入式终端的固件的源码进行编译,所述编译工具包括:arm-linux-gcc,arm-linux-ld工具。获得同一源码在不同编译优化选项下生成的可执行二进制文件,可执行二进制文件为可执行程序。不同编译优化选项,是指定编译器的编译优化水平分别不同。
步骤S102,将所述二进制文件的原始字节内容输入预先构建的基于卷积神经网络的编译优化选项识别模型进行识别。
提取可执行二进制文件中代码段中原始的电网嵌入式终端固件的二进制字节内容,将所述原始字节内容构成字节矩阵,若所述原始字节内容不够,则补零对齐,作为基于卷积神经网络的优化选项识别模型的输入。将每个二进行文件对应的编译优化水平作为训练时的输入标签。
基于卷积神经网络的优化选项识别模型,包括:数据嵌入层、位置嵌入层、不同卷积核大小的卷积层、池化层和全连接层。所述数据嵌入层,用于对输入的所述二进制文件中的指令字节进行编码;所述位置嵌入层,用于对输入指令数据的绝对位置进行嵌入表示;所述不同卷积核大小的卷积层用于捕捉不同长度指令组合的信息;所述池化层将输出全部拼接,输出到全连接层。
神经网络的第一层是嵌入层,用于对输入的所述二进制文件中的指令字节进行编码。使用嵌入层对每个字节进行重新用一个多维的向量进行表示,为了可以寻找并表示某些指令的语义相似性。将输入x=(x1,...,xi,...,xm)嵌入到一个分布的空间w=(w1,...,wj...,wm),wj属于Rf是一个编码矩阵D,属于RVxf的一列,其中V表示输入数据可能的取值个数,由于每个字节最多为2^8种取值,所以这里V=2^8,f表示将一个字节表示f维的向量。
将所有的卷积核宽度大小设置为和上一层嵌入层输出宽度相同,并且进行卷积之后不进行对齐填充,这样进行一次卷积操作之后可以得到一个m-k+1向量而不是矩阵(k表示卷积核宽度,m表示序列长度)。由于在对m×n数据(n表示输入的矩阵的宽度)进行嵌入表示之后得到m×n×h(h表示对每个字节用h维向量进行分布式表示)的矩阵,因此在进行卷积之后会得到一个(m-k+1)×1×1×num_filters的矩阵(num_filters表示每一类卷积核的个数),然后使用max pooling取每个channel的最大值,得到一个1×1×num_filters的矩阵,然后将所有的卷积层的输出进行拼接和reshape,得到一个num_filters×filter_size的向量,作为下一层全连接层的输入。
提取所述二进制文件中的原始字节内容,将所述二进制文件对应的编译优化水平作为所述识别模型训练和测试的输入标签,随机选取部分所述原始字节内容和输入标签作为训练集,输入所述模型,对所述模型进行训练,根据训练结果进行算法优化。将部分所述原始字节内容和输入标签作为训练集输入所述识别模型,所述识别模型通过前向计算和梯度计算获得输出标签,所述输出标签为训练结果,将输入标签与输出标签进行比较,根据比较结果进行算法优化,以及参数优化。
将剩余所述原始字节内容和输入标签作为测试集,对所述识别模型进行测试,根据所述识别模型的测试结果获得所述识别模型的正确率,将剩余所述原始字节内容和输入标签作为测试集输入所述识别模型,所述识别模型通过前向计算和梯度计算获得输出标签,所述输出标签为测试结果,将所有输入标签与输出标签进行比较,获得所述识别模型的正确率,当所述识别模型的正确率符合预先设定的标准,完成所述识别模型的训练和测试。
步骤S103,所述识别模型经计算后输出所述二进制文件的原始字节内容对应的编译优化选项的编译优化水平。
当所述识别模型完成训练和测试后,就可以对电网嵌入式终端的固件的二进制文件的原始字节内容进行编译优化水平的识别,将电网嵌入式终端的固件的二进制文件的原始字节内容输入所述识别模型,就可以得到相应的编译优化选项的编译优化水平。
下面以编译优化选项识别系统BinEye为例,对本发明的实施方法进行详细阐述。BinEye的整个系统架构如图2所示。BinEye是一个完全端到端的系统,直接用编译得到的二进制目标文件,即ELF relocatable文件作为系统的输入。系统自动提取ELF文件的.text段的二进制内容作为神经网络的输入。神经网络首先对输入的二进制内容进行嵌入表示,同时对对应代码段位置进行嵌入表示,然后将二者组合起来作为下一层网络输入,进行卷积和池化操作,最后进过一层全连接层得到输出结果。基于卷积神经网络的编译优化选项识别模型详细结构如图3所示,主要包括数据集生成、数据嵌入表示、位置嵌入表示、卷积池化及输出,使用此结构对BinEye系统进行编译优化选项识别。
1)数据集生成
使用buildroot的交叉编译工具对463种开源组件分别采用-O0、-O1、-O2、-O3、-Os五种不同的编译优化选项进行编译,生成了共计120156个可以利用的目标文件。使用buildroot进行配置的命令是”make menuconfig”,下载组件源码的命令为“make source”。然后通过shell命令全文替换组件源码包中与编译优化级别配置相关的字符串:”-O0、-O1、-O2、-O3、-Os”,将其替换为目标优化级别,然后回到buildroot的根目录下执行make命令,按照指定的优化级别进行源码编译。由于二进制文件是由object文件链接而成的,而object文件又是最小的编译单元,因此本文在构建数据集时只考虑object文件。需要注意的是,即使按照上一步骤指定了编译优化级别,仍然不能保证所有的源码都被成功的配置(因为有的源码的编译优化级别在Makefile中没有指定)。因此本着宁缺毋滥的原则删除掉所有MD5签名一致的文件,以此来确保筛选出的二进制文件有着正确的编译优化级别标签。然后去掉太小的目标文件(小于500KB),最后使用readelf命令提取二进制文件的代码段得到最终的数据集。
2)模型结构
模型主要包括三个部分:数据重表示、卷积和池化、输出部分。模型结构如图3所示。
3)数据嵌入表示
从二进制文件的代码段提取1024*4个字节,作为网络的原始输入。因为的目标架构是精简指令集,每条指令占据固定的4个字节,所以提取1024*4个字节相当于提取了1024条指令。这种数据提取方式同样也适用于所有精简指令集的架构,例如ARM,MIPS,PowerPC等。神经网络第一层是嵌入层,用来对输入的二进制指令字节进行编码。使用嵌入层对每个字节进行重新用一个4维的向量进行表示,为了可以寻找并表示某些指令的语义相似性。将输入x=(x1,...,xi,...,xm)嵌入到一个分布的空间w=(w1,...,wj...,wm),wj属于Rf是一个编码矩阵D,属于RVxf的一列,其中V表示输入数据可能的取值个数,由于每个字节最多为2^8种取值,所以这里V=2^8,f表示将一个字节表示f维的向量。
4)位置嵌入表示
为了让模型可以感知到不同指令之间的顺序关系,对输入指令数据的绝对位置进行嵌入表示p=(p1,...,pm)。其中p_j∈R^f属于位置编码矩阵F∈R^{Vxf}其中的一列,表示将每条指令的对应位置嵌入表示成f维,从而和前面进行嵌入表示的指令数据可以进行组合。值得注意的是,该位置编码矩阵和上一节提到的编码矩阵不同,它是一个硬编码,矩阵中都为常量,即某一个位置对应的编码是固定的,无法进行训练。上一节中的编码矩阵中参数是可以进行训练的。
对于给定某一个位置n,指定嵌入表示的维度为m的情况下,对位置n进行嵌入表示成向量p_n,p_n∈R^{m},则
p_n[k]=(1-n/(S+1))–(k/(m+1))*(1–2*n/(S+1))
其中0<=k<=m,表示位置编码的第k维。S表示指令的总数量,在本文中S=1024。
最后将位置信息和输入的二进制内容信息组合e=(w1+p1,...,wm+pm)作为下一层输入。位置嵌入表示在模型中是非常有用的,它可以给予模型捕捉指令位置信息的能力。
5)卷积池化
将所有的卷积核宽度大小设置为和上一层嵌入层输出宽度相同,并且进行卷积之后不进行对齐填充,这样进行一次卷积操作之后可以得到一个m-k+1向量而不是矩阵(k表示卷积核宽度,m表示序列长度)。由于在对m*n数据(n表示输入的矩阵的宽度)进行嵌入表示之后得到m*n*h(h表示对每个字节用h维向量进行分布式表示)的矩阵,因此在进行卷积之后会得到一个(m-k+1)×1×1×num_filters的矩阵(num_filters表示每一类卷积核的个数),然后使用max pooling取每个channel的最大值,得到一个1×1×num_filters的矩阵,然后将所有的卷积层的输出进行拼接和reshape,得到一个num_filters×filter_size的向量,作为下一层全连接层的输入。
6)输出
模型的最后一部分是全连接层,这样可以增强模型的表达能力。全连接层的输出使用softmax函数得到各个类别的分类概率,定义如下:
其中Vi表示全连接层输出向量的第i个值,C表示总的类别数,由于进行-O0,-O1,-O2/O3,-Os的分类,所以总共有4种类别,C取值为4,其输出结果的曲线如图4所示。
与本申请提供的一种电网嵌入式终端的固件编译优化选项识别方法相对应的,本申请同时提供一种电网嵌入式终端的固件编译优化选项识别装置500,如图5所示包括:
二进制文件获取单元510,用于对电网嵌入式终端的固件的源码进行编译,获得在不同编译优化选项下生成的可执行二进制文件;
识别单元,用于将所述二进制文件的原始字节内容输入预先构建的基于卷积神经网络的编译优化选项识别模型进行识别
编译优化水平获取单元,所述识别模型经计算后输出所述二进制文件的原始字节内容对应的编译优化选项的编译优化水平。
本申请提供一种电网嵌入式终端的固件编译优化选项识别方法,通过采取卷积神经网络模型结构,提取可执行二进制文件的代码段的原始字节内容和其对应的标签,将部分所述原始字节内容和标签作为训练集对模型进行训练,根据训练结果进行算法优化,将剩余所述原始字节内容作为测试集对模型进行测试,根据输出所有预测结果,获得所述模型的准确率,解决目前针对可执行文件中电网嵌入式终端固件的二进制内容的编译优化水平识别技术的需求问题。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
最后应该说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替,其均应涵盖在本发明的权利要求范围当中。
Claims (7)
1.一种电网嵌入式终端的固件编译优化选项识别方法,其特征在于,包括:
对电网嵌入式终端的固件的源码进行编译,获得在不同编译优化选项下生成的可执行二进制文件;
将所述二进制文件的原始字节内容输入预先构建的基于卷积神经网络的编译优化选项识别模型进行识别;所述基于卷积神经网络的编译优化选项识别模型的预先构建步骤,包括:
提取所述二进制文件中的原始字节内容;将所述二进制文件对应的编译优化水平作为所述识别模型训练和测试的输入标签;
将部分所述原始字节内容和输入标签作为训练集,对所述模型进行训练;根据训练结果进行算法优化,包括:将部分所述原始字节内容和输入标签作为训练集输入所述识别模型;所述识别模型通过前向计算和梯度计算获得输出标签,所述输出标签为训练结果;将输入标签与输出标签进行比较,根据比较结果进行算法优化;
将剩余所述原始字节内容和输入标签作为测试集,对所述识别模型进行测试,根据所述识别模型的测试结果获得所述识别模型的正确率;
当所述识别模型的正确率符合预先设定的标准,完成所述识别模型的训练和测试;
所述识别模型经计算后输出所述二进制文件的原始字节内容对应的编译优化选项的编译优化水平。
2.根据权利要求1所述的方法,其特征在于,对电网嵌入式终端的固件的源码进行编译,包括:
使用交叉编译工具对电网嵌入式终端的固件的源码进行编译,所述编译工具包括:arm-linux-gcc,arm-linux-ld工具。
3.根据权利要求1所述的方法,其特征在于,所述不同编译优化选项,是指定编译器的编译优化水平分别不同。
4.根据权利要求1所述的方法,其特征在于,所述二进制文件中的原始字节内容,包括:
将所述原始字节内容构成字节矩阵;
若所述原始字节内容不够,则补零对齐。
5.根据权利要求1所述的方法,其特征在于,所述识别模型,为基于卷积神经网络的编译优化选项识别模型,包括:
数据嵌入层、位置嵌入层、不同卷积核大小的卷积层、池化层和全连接层。
6.根据权利要求1所述的方法,其特征在于,将剩余所述原始字节内容和输入标签作为测试集,对所述识别模型进行测试,根据所述识别模型的测试结果获得所述识别模型的正确率,包括:
将剩余所述原始字节内容和输入标签作为测试集输入所述识别模型;
所述识别模型通过前向计算和梯度计算获得输出标签,所述输出标签为测试结果;
将所有输入标签与输出标签进行比较,获得所述识别模型的正确率。
7.一种电网嵌入式终端的固件编译优化选项识别装置,其特征在于,包括:
二进制文件获取单元,用于对电网嵌入式终端的固件的源码进行编译,获得在不同编译优化选项下生成的可执行二进制文件;
识别单元,用于将所述二进制文件的原始字节内容输入预先构建的基于卷积神经网络的编译优化选项识别模型进行识别;所述基于卷积神经网络的编译优化选项识别模型的预先构建步骤,包括:
提取所述二进制文件中的原始字节内容;将所述二进制文件对应的编译优化水平作为所述识别模型训练和测试的输入标签;
将部分所述原始字节内容和输入标签作为训练集,对所述模型进行训练;根据训练结果进行算法优化,包括:将部分所述原始字节内容和输入标签作为训练集输入所述识别模型;所述识别模型通过前向计算和梯度计算获得输出标签,所述输出标签为训练结果;将输入标签与输出标签进行比较,根据比较结果进行算法优化;
将剩余所述原始字节内容和输入标签作为测试集,对所述识别模型进行测试,根据所述识别模型的测试结果获得所述识别模型的正确率;
当所述识别模型的正确率符合预先设定的标准,完成所述识别模型的训练和测试;
编译优化水平获取单元,所述识别模型经计算后输出所述二进制文件的原始字节内容对应的编译优化选项的编译优化水平。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911113611.6A CN111444513B (zh) | 2019-11-14 | 2019-11-14 | 一种电网嵌入式终端的固件编译优化选项识别方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911113611.6A CN111444513B (zh) | 2019-11-14 | 2019-11-14 | 一种电网嵌入式终端的固件编译优化选项识别方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111444513A CN111444513A (zh) | 2020-07-24 |
CN111444513B true CN111444513B (zh) | 2024-03-12 |
Family
ID=71653857
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911113611.6A Active CN111444513B (zh) | 2019-11-14 | 2019-11-14 | 一种电网嵌入式终端的固件编译优化选项识别方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111444513B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112433706B (zh) * | 2020-11-27 | 2023-03-14 | 海光信息技术股份有限公司 | 编译选项调优方法、装置、处理器芯片及服务器 |
CN114676026B (zh) * | 2022-03-28 | 2023-03-10 | 明阳产业技术研究院(沈阳)有限公司 | 一种处理器性能测试方法、装置、设备和介质 |
CN116880811A (zh) * | 2022-03-28 | 2023-10-13 | 中兴通讯股份有限公司 | 确定编译优化选项的方法、电子设备、可读存储介质 |
CN117075958B (zh) * | 2023-10-16 | 2024-01-23 | 广东优力普物联科技有限公司 | 一种适应多机型的固件生成方法、存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740477A (zh) * | 2016-03-18 | 2016-07-06 | 中国科学院信息工程研究所 | 针对大规模嵌入式设备固件的函数搜索方法和搜索引擎 |
CN108008960A (zh) * | 2017-11-09 | 2018-05-08 | 北京航空航天大学 | 一种面向关键软件二进制文件的特征码生成方法 |
CN109740347A (zh) * | 2018-11-23 | 2019-05-10 | 中国科学院信息工程研究所 | 一种针对智能设备固件的脆弱哈希函数的识别与破解方法 |
-
2019
- 2019-11-14 CN CN201911113611.6A patent/CN111444513B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740477A (zh) * | 2016-03-18 | 2016-07-06 | 中国科学院信息工程研究所 | 针对大规模嵌入式设备固件的函数搜索方法和搜索引擎 |
CN108008960A (zh) * | 2017-11-09 | 2018-05-08 | 北京航空航天大学 | 一种面向关键软件二进制文件的特征码生成方法 |
CN109740347A (zh) * | 2018-11-23 | 2019-05-10 | 中国科学院信息工程研究所 | 一种针对智能设备固件的脆弱哈希函数的识别与破解方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111444513A (zh) | 2020-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111444513B (zh) | 一种电网嵌入式终端的固件编译优化选项识别方法及装置 | |
CN111639344B (zh) | 一种基于神经网络的漏洞检测方法及装置 | |
CN112418292B (zh) | 一种图像质量评价的方法、装置、计算机设备及存储介质 | |
CN113064586B (zh) | 一种基于抽象语法树增广图模型的代码补全方法 | |
CN110704842A (zh) | 一种恶意代码家族分类检测方法 | |
CN112597063B (zh) | 缺陷代码定位的方法、装置以及存储介质 | |
CN110543895B (zh) | 一种基于VGGNet和ResNet的图像分类方法 | |
CN116361801B (zh) | 基于应用程序接口语义信息的恶意软件检测方法及系统 | |
CN114047929B (zh) | 基于知识增强的用户定义函数识别方法、装置及介质 | |
CN112764738A (zh) | 基于多视图程序特征的代码自动生成方法及系统 | |
CN110162972B (zh) | 一种基于语句联合编码深度神经网络的uaf漏洞检测方法 | |
CN111160096A (zh) | 禽蛋异常的识别方法、装置及系统、存储介质、电子装置 | |
CN112148602B (zh) | 一种基于历史优化特征智能学习的源代码安全分析方法 | |
CN111091839A (zh) | 语音唤醒方法、装置、存储介质及智能设备 | |
CN113076545A (zh) | 一种基于深度学习的内核模糊测试序列生成方法 | |
CN108831561A (zh) | 流感预测模型的生成方法、装置及计算机可读存储介质 | |
Yang et al. | Understand code style: Efficient cnn-based compiler optimization recognition system | |
Chouaib et al. | Feature selection combining genetic algorithm and adaboost classifiers | |
CN116797248A (zh) | 基于区块链的数据溯源管理方法及其系统 | |
CN114067286A (zh) | 基于序列化可形变注意力机制的高位相机车辆重识别方法 | |
CN109147868A (zh) | 蛋白质功能预测方法、装置、设备及存储介质 | |
CN116361788A (zh) | 一种基于机器学习的二进制软件漏洞预测方法 | |
CN116627490A (zh) | 一种智能合约字节码相似性检测方法 | |
Lee et al. | Latent L-systems: Transformer-based tree generator | |
CN115686923B (zh) | 一种软件源代码缺陷自动修复方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |