Page 282 - 《软件学报》2026年第4期
P. 282

凌祥 等: RMDroid: 基于多模态融合学习的安卓恶意软件鲁棒检测                                             1723


                 为每一个节点初始化一个特征向量. 如表             2  所示, 本文从  Dalvik  指令的操作码和操作数两方面统计控制流图中每
                                                                     {        }
                                                                  cfg  (0) i=n z cfg  (0)
                 个节点的数值统计特征, 最终得到向量化之后的控制流图特征                    x z = {h } i=0  ,E z , 其中  h v i   表示控制流图中节点  v i
                                                                       v i
                                                             (0) i=n z
                 的初始化特征向量,      n z cfg  表示控制流图中节点的总数量,    {h }  cfg  表示控制流图中所有节点初始化特征向量的集合,
                                                             v i  i=0
                 E z  则表示控制流图中表示节点邻居关系的边集.


                                             表 2 控制流图中每个节点的初始化特征

                                  种类              基于操作码的节点特征                    特征描述
                                                        move                数据操作指令总数量
                                                         ret               返回或终止指令总数量
                                                       monitor                锁指令总数量
                                                        inst               类实例操作指令总数量
                                                        array               数组操作指令总数量
                                                        jmp                  跳转指令总数量
                               操作码特征
                                                        comp                 比较指令总数量
                                                        field                字段操作总数量
                                                        call                方法调用指令总数量
                                                        trans               数据转换指令总数量
                                                        arith               数据运算指令总数量
                                                        logic               逻辑运算指令总数量
                                                        string              字符串常量总数量
                               操作数特征
                                                        const                数字常量总数量

                  2.3   基于深度学习模型的多模态特征学习
                                                                                                 api
                                       z 的多模态初始化特征信息                       img                  x z 、控制
                    在提取到待测安卓软件                              (灰度图模态特征      x z 、API 调用序列模态特征
                            x z ) 的基础上, 为了充分地学习待测安卓软件   中每一种模态特征的深层语义信息, 本文利用深度
                             cfg
                 流图模态特征                                         z
                                                    {  img  api  cfg }  img  api  cfg
                                                           ⃗
                                                        ⃗
                                                    ⃗
                 学习模型来学习相应多模态特征向量集              H z = h z ,h z ,h z  , 其中  ⃗ h z 、 ⃗ h z   和  ⃗ h z   分别代表所学习得到的灰度图模
                 态特征向量、API 调用序列模态特征向量和控制流图模态特征向量. 下面将分别介绍利用深度学习模型学习灰度
                 图、API 调用序列和控制流图这         3  种模态特征向量的具体实现方法.
                  2.3.1    基于卷积神经网络的灰度图特征学习方法
                                                          img
                    为了充分地学习待测安卓软件           z 在灰度图模态     x z   上的深层语义信息, 本文采用图像识别领域最常用且最经
                                                              img
                 典的深度残差网络       ResNet 来学习相应的灰度图特征向量         ⃗ h z . 深度残差网络  ResNet 是由微软研究院提出的一种
                 基于卷积神经网络的残差神经网络架构, 不仅通过增加深度学习网络深度来提高准确性, 而且可以缓解深度神经
                 网络中增加网络深度带来的梯度消失和梯度爆炸问题, 在多项计算机视觉竞赛任务中取得优异的成绩                                 [62] .
                    此外, 安卓软件的代码规模会影响所提取灰度图的尺寸, 因此, 为了避免灰度图尺寸过大而导致的训练效率下
                 降以及尺寸过小导致特征信息不足的问题, 如公式                 (1) 所示, 本文首先利用    ZeroPS 函数将待测安卓软件   的灰度
                                                                                                  z
                           img                                                                      512×512
                 图模态特征    x z   进行标准化补零和归一化处理, 并将最大维度设置为               512 (即  max = 512), 从而得到维度为  R
                                img
                 的标准灰度图形式       ¯ x z .

                                                         img
                                              ¯ x img  = ZeroPS(x ;max = 512) ∈ R 512×512             (1)
                                               z         z
                                                          img
                                             ⃗ img  = ResNet34(¯ x ;c = 1,odim = d) ∈ R d             (2)
                                             h
                                              z           z
                    接着, 如公式    (2) 所示, 进一步将标准灰度图       ¯ x z img  输入到相应的  ResNet34  网络中, 从而能够学习得到最终的灰
                            ⃗ h z . 值得注意的是, 由于所提取的是灰度图而非彩色图, 因此将                      网络中卷积层的通道数
                             img
                 度图特征向量                                                       ResNet34
                 设置为   1 (即设置  c = 1), 并进一步修改  ResNet34  网络中最后一层全连接层的输出维度为            d (即设置  odim = d), 从
                                            ⃗  img      d
                 而使得学习得到的灰度图特征向量            h z   的维度为  R .
   277   278   279   280   281   282   283   284   285   286   287