本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

如何利用Sanitizer解决Android中的Bug?(3)

时间:2017-08-16 03:37来源:118论坛 作者:www.wzatv.cc 点击:
此外,还会生成模块构造函数,即 __sanitizer_cov_trace_pc_guard_init(uint32_t* start, uint32_t* stop)。所有 __sanitizer_cov_ 函数均应由用户提供。您可以按照使用 Guard 跟

此外,还会生成模块构造函数,即 __sanitizer_cov_trace_pc_guard_init(uint32_t* start, uint32_t* stop)。所有 __sanitizer_cov_ 函数均应由用户提供。您可以按照使用 Guard 跟踪计算机中的示例操作:

https://clang.llvm.org/docs/SanitizerCoverage.html#tracing-pcs-with-guards

除了跟踪控制流外,SanitizerCoverage 还可以跟踪数据流。此功能可通过 fsanitize-coverage=trace-cmp 激活,并通过 __sanitizer_cov_trace_* 函数检测所有开关和比较指令来实现。对于整数除法和 GEP 指令,也存在类似的功能,可分别通过 fsanitize-coverage=trace-div 和 fsanitize-coverage=trace-gep 激活。这是一个实验性界面,可能危及线程安全,可能随时更改,但在 Android 构建中提供并可运行此界面。

在擦除器覆盖会话期间,覆盖信息记录在两个文件中,即 .sancov 文件和 sancov.map 文件。前一个文件包含程序的所有仪器测试点,而后一个文件包含在前一个文件中用一系列索引表示的执行跟踪。默认情况下,这两个文件存储在当前工作目录中,系统将为执行过程中运行的每个可执行的共享对象创建一个目录。

结论

ASan、UBSan 和 SanitizerCoverage 仅仅是 LLVM 擦除器在 Android 中应用的开端。目前,正在向 Android 构建系统中集成更多的 LLVM 擦除器。本文所介绍的擦除器可用作代码运行状况和系统稳定性检测工具,Android 安全团队甚至正在用它们来发现和预防安全错误!返回搜狐,查看更多

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容