跳过内容

MASTG-TEST-0222: 未启用位置无关代码 (PIC)

概述

此测试用例检查应用程序的本地库在编译时是否未启用位置无关代码 (PIC),这是一种常见的防止内存损坏攻击的缓解技术。

自 Android 5.0(API 级别 21)起,Android 要求所有动态链接的可执行文件都支持 PIE

构建系统维护者指南 - 附加的必需参数:Android 要求从 API 21 开始使用位置无关可执行文件。Clang 默认构建 PIE 可执行文件。如果直接调用链接器或不使用 Clang,则链接时请使用 -pie

步骤

  1. 提取应用内容( 浏览应用包)。
  2. 在每个共享库上运行 获取编译器提供的安全特性,然后 grep "pic" 或所选工具使用的相应关键字。

观察

输出应列出是否启用了 PIC。

评估

如果禁用了 PIC,则测试用例失败。