计算机科学
杠杆(统计)
学习迁移
模糊测试
人工智能
假阳性悖论
调用图
二进制数
传输(计算)
深层神经网络
机器学习
理论计算机科学
深度学习
程序设计语言
软件
操作系统
算术
数学
作者
Wenyu Zhu,Zhiyao Feng,Zihan Zhang,Jianjun Chen,Zhijian Ou,Min Yang,Chao Zhang
标识
DOI:10.1109/sp46215.2023.10179482
摘要
Recovering binary programs’ call graphs is crucial for inter-procedural analysis tasks and applications based on them. One of the core challenges is recognizing targets of indirect calls (i.e., indirect callees). Existing solutions all have high false positives and negatives, making call graphs inaccurate. In this paper, we propose a new solution Callee combining transfer learning and contrastive learning. The key insight is that, deep neural networks (DNNs) can automatically identify patterns concerning indirect calls. Inspired by the advances in question-answering applications, we utilize contrastive learning to answer the callsite-callee question. However, one of the toughest challenges is that DNNs need large datasets to achieve high performance, while collecting large-scale indirect-call ground truths can be computational-expensive. Therefore, we leverage transfer learning to pre-train DNNs with easy-to-collect direct calls and further fine-tune DNNs for indirect-calls. We evaluate Callee on several groups of targets, and results show that our solution could match callsites to callees with an F1-Measure of 94.6%, much better than state-of-the-art solutions. Further, we apply Callee to two applications – binary code similarity detection and hybrid fuzzing, and found it could greatly improve their performance.
科研通智能强力驱动
Strongly Powered by AbleSci AI