Source: https://dl.acm.org/doi/pdf/10.1145/3385412.3386017
Authors: Chris Porter, Girish Mururu, Prithayan Barua, Santosh Pande
Download Note: https://jbox.sjtu.edu.cn/l/V1qUSJ
Contributor: fy
Overview
现代软件开发在很大程度上依赖于库,许多库是为支持大量功能而构建的。然而,单个应用程序中,可以只使用少量的库功能。例如,开发一个安卓应用,使用机器学习和人工智能相关工具库,以及Web框架。尽管这些库和框架本身可能非常大,但在实际开发中只用到它们的一小部分API是很常见的。Debloat就是去膨胀,也就是减少可用于构建攻击gadget的代码量,从应用程序或库中删除不需要的代码或死代码。本文采用动态的debloat方法,仅在函数需要被使用时进行加载,显著地削减了函数总量(97%),增强了程序的安全性。