Page 196 - 《软件学报》2026年第6期
P. 196
陈永威 等: 基于异质图匹配网络的恶意软件相似性度量方法 2515
文中对二进制代码相似性分析判别能力较高的统计特征, 从函数汇编代码中提取统计信息和函数间的结构信息.
具体提取过程为: 对于本地函数和静态链接库函数节点, 选择了 6 种指令统计特征和 2 种 CG 统计特征作为图节
点的特征向量, 提取示例参考图 4(b), 具体特征属性如表 1 所示. 对于动态导入函数节点, 并不能通过静态反汇编
获得其汇编代码, 考虑到动态导入函数名称在不同程序中保持一致, 所以利用其函数名生成的 8 维数值编码 (通过
哈希算法生成), 作为其图节点的特征表示.
汇编代码 调用关系
.text: 00401435 本地函数
静态链接库函数
sub_401435
call sub_4014EB 动态导入函数
··· sub_401435
···
.text: 004014EB
1
1
sub_4014EB
2 1
lstrlenW __alloca_probe
sub_4014EB
call __alloca_probe (a) 图结构生成示例
call esi ; lstrlenW
1
2 指令统计特征
sub_4014EB [0,1,15,4,22,2,3,1]
call esi ; lstrlenW CG统计特征
(b) 图节点特征统计示例
···
.text: 00401650
__alloca_probe
···
···
.text: 0040180A lstrlenW
图 4 异质图构建及特征提取示意图
表 1 本地函数和静态链接库函数节点提取特征
类型 属性
字符常量数量
数值常量数量
转移指令数量
指令属性
控制指令数量
指令总数
算术指令数量
图节点出度
函数调用图属性
图节点入度
3.1.3 异质图匹配网络构建
现有恶意软件相似性度量方法中对函数调用图语义的学习仅考虑单图节点间的信息交互, 本文多考虑了捕获
恶意软件间丰富的跨图间语义. 基于跨图交互的图相似性度量 [22] 已经应用于函数相似性度量方面, 但并不适合直
接用于恶意软件间的相似性度量, 主要包括两方面原因: (1) 跨图交互方法在每次信息传递过程中, 图中的每个节
点都需要与对比图中所有节点间计算相似性, 以便确定隐式邻居, 但恶意软件函数调用图的图节点数量较大 (平均
节点数在 500 个左右), 其隐式邻居的计算开销过高. (2) 跨图交互方法用于同质的图结构, 忽略恶意软件函数调用
图中不同节点的异质特点. 为了兼顾函数调用图中节点的异质特点以及降低新增的跨图边带来的计算开销, 本文

