Page 193 - 《软件学报》2026年第6期
P. 193
2512 软件学报 2026 年第 37 卷第 6 期
性度量方法 HGMSim.
(2) 提出基于局部点图匹配的异质图嵌入方法, 其中区分函数调用图的异质节点解决恶意软件函数调用图语
义未充分挖掘的问题, 局部点图匹配解决图结构高度相似的不同家族恶意软件难以区分的问题.
(3) 在多个数据集上实验, 验证所提模型显著优于其他基线方法. 同时, 验证不同反汇编工具生成不同函数调
用图对模型带来的影响.
··· ···
SG1 SG2 SG3 SG4
··· ···
样本 1 局部函数调用图 样本 2 局部函数调用图
(md5: eec55f1295d0cce40bbba7be231fdddb) (md5: 6abf24e3aa3e971e6461bcfea35fe950)
sub_403C83 和 sub_403A43 重复汇编代码 sub_4403F64 和 sub_404BA6 重复汇编代码
push esi ···
sub_403C83 SG1 mov esi, hMem sub_4403F64 SG2
push 0
call sub_403C68
sub_403C68 FreeLibrary sub_405C84 SendMessageW
test esi, esi
jz short loc_403CAF
GlobalFree push edi GetDlgItemTextw SHGetPathFromIDListW
mov edi, esi
push dword ptr [edi+8]
sub_403A43 SG3 mov esi, [esi] sub_404BA6 SG4
call ds:FreeLibrary
push edi
sub_403A28 FreeLibrary call ds sub_405A32 SendMessageW
test esi, esi
jnz short loc_403C96
GlobalFree SHGetPathFromIDListW ···
pop edi GetDlgItemTextW
and hMem, 0
pop esi
retn 10 h
(a) 相似图结构和重复汇编代码示例 1 (b) 相似图结构和重复汇编代码示例 2
图 1 不同家族软件共享代码片段示例
2 相关工作
本节从基于静态分析的恶意软件相似性度量、异质图相似性度量和基于跨图交互的图相似性度量这 3 个方
面展开介绍.
2.1 基于静态分析的恶意软件相似性度量
该类方法主要包括基于程序序列的方法和基于程序图的方法.
(1) 基于程序序列
基于程序序列的方法通常使用恶意软件中的二进制序列、字符串信息、导入地址表中的 API 函数以及反汇
编后的操作码序列等来计算相似性. Oliver 等人 [6] 提出了局部敏感哈希方案 TLSH, 该方法计算的哈希值对二进制
文件的细微修改不敏感, 能有效用于二进制文件的相似性计算. Adkins 等人 [7] 考虑到恶意软件开发者经常使用共
享代码的技术来提升程序开发质量和效率, 于是将滑动窗口方法应用于二进制文件特征提取, 并通过特征散列来
创建可用于相似性度量的指纹. Hsiao 等人 [8] 将恶意软件转换成恶意样本灰度图, 然后利用多层卷积神经网络获得
恶意软件的低维嵌入, 从而进行样本间的相似性度量.
(2) 基于程序图
为了降低混淆等机制对于恶意软件相似性度量的影响, 目前人们倾向于使用对多种语法转换都更加稳健的图
结构 (如 CG、控制流图) 作为相似性度量模型的特征输入. Wu 等人 [9] 通过匹配外部函数名称和本地函数中不同
类型指令的数量构建恶意软件中的相似图结构, 利用相似图结构中的重复边占比来计算两个恶意软件的相似度.

