Function signature recovery is important for many binary analysis tasks such as control-flow integrity enforcement, clone detection, and bug finding. Existing works try to substitute learning-based methods with rule-based methods to reduce human effort.They made considerable efforts to enhance the system's performance, which also bring the side effect of higher resource consumption. However, recovering the function signature is more about providing information for subsequent tasks, and both efficiency and performance are significant. In this paper, we first propose a method called Nimbus for efficient function signature recovery that furthest reduces the whole-process resource consumption without performance loss. Thanks to information bias and task relation (i.e., the relation between parameter count and parameter type recovery), we utilize selective inputs and introduce multi-task learning (MTL) structure for function signature recovery to reduce computational resource consumption, and fully leverage mutual information. Our experimental results show that, with only about the one-eighth processing time of the state-of-the-art method, we even achieve about 1% more prediction accuracy over all function signature recovery tasks.
翻译:功能签名回收对于许多二进制分析任务非常重要, 如控制流完整性执行、 克隆检测和错误发现。 现有的工作试图以基于规则的方法替代学习方法, 以减少人类的努力。 他们做了大量的努力来提高系统的性能, 这也带来了更高的资源消耗的副作用。 但是, 功能签名的恢复更是为了为随后的任务提供信息, 效率和性能都很重要 。 在本文中, 我们首先提出一种名为 Nimbus 的方法, 以有效功能签名恢复, 最能减少整个过程资源消耗而不造成性能损失。 由于信息偏差和任务关系( 参数计数和参数类型恢复之间的关系), 我们使用选择性的投入和引入多任务学习( MTL) 结构来恢复功能签名, 以减少计算资源消耗, 并充分利用共同信息。 我们的实验结果表明, 仅使用最先进的方法的八分之一处理时间, 我们甚至在所有功能签名恢复任务上实现了约1%的预测准确度。