跳过内容

MASTG-TEST-0083:调试符号测试

已弃用测试

此测试已**弃用**,不应再使用。**原因**:MASTG V2 中提供新版本

请查看以下涵盖此 v1 测试的 MASTG v2 测试

概述

静态分析

要验证调试符号的存在,您可以使用来自 binutilsllvm-objdump 的 objdump 来检查所有应用程序二进制文件。

在下面的代码片段中,我们在 TargetApp (iOS 主应用程序可执行文件) 上运行 objdump,以显示包含用 d(调试)标志标记的调试符号的二进制文件的典型输出。有关各种其他符号标志字符的信息,请查看 objdump 手册页

$ objdump --syms TargetApp

0000000100007dc8 l    d  *UND* -[ViewController handleSubmitButton:]
000000010000809c l    d  *UND* -[ViewController touchesBegan:withEvent:]
0000000100008158 l    d  *UND* -[ViewController viewDidLoad]
...
000000010000916c l    d  *UND* _disable_gdb
00000001000091d8 l    d  *UND* _detect_injected_dylds
00000001000092a4 l    d  *UND* _isDebugged
...

为了防止包含调试符号,请通过 XCode 项目的构建设置将 Strip Debug Symbols During Copy 设置为 YES。删除调试符号不仅可以减少二进制文件的大小,还可以增加逆向工程的难度。

动态分析

动态分析不适用于查找调试符号。