gpt4 book ai didi

iOS App 包含开发者路径信息

转载 作者:技术小花猫 更新时间:2023-10-29 10:25:54 25 4
gpt4 key购买 nike

检查一个存档的应用程序,我可以看到在应用程序二进制文件中列出的一些源代码文件的完整路径。并未列出所有源代码文件。

字符串 - the_binary_app | grep "\.m"

揭示

/Users/bbarnhart/myPath/myPath/App/path/path/SourceCodeFile.m

还有一些其他的。我无法确定一些源代码文件的完整路径是如何嵌入到应用程序二进制文件中的。我想删除它们。有任何想法吗?这是build设置还是项目文件轻微损坏?

有些属于库,有些是属于项目的文件。

最佳答案

__FILE__ 宏扩展为当前文件的完整路径。这是您将路径获取到可执行文件的一种可能方式。例如,assert 宏的扩展包括 __FILE__ 宏。

查看您的strings | 的输出grep 管道。对于这些文件中的每一个,在 Xcode 中进入您的项目并打开该文件。然后转到 Related Files doodad 并选择“Preprocess”:

related files doodad

然后在预处理器输出中搜索文件路径。你会发现很多误报,因为会有很多 # 行号/路径指令。你可以忽略这些,因为它们只产生调试输出,它不包含在你的可执行文件中(除非你对你的build设置做了一些奇怪的事情)。您可能会发现将预处理器输出保存到文件,然后打开该文件并通过 grep 或使用正则表达式搜索/替换来删除所有以 # 开头的行来更快>.

查找您的路径显示为字符串常量的其他实例。例如,如果您使用了 assert 宏,您会发现如下内容:

(__builtin_expect(!(argc > 0), 0) ? __assert_rtn(__func__, "/Volumes/b/Users/mayoff/TestProjects/textViewChanged/textViewChanged/main.m", 16, "argc > 0") : (void)0);

在这种情况下,路径最终会嵌入到您的可执行文件中。

如果没有找到您嵌入路径的所有位置,请尝试从相关文件装饰中选择“程序集”。程序集将充满包含您的路径的注释; @ 之后的所有内容都是汇编输出中的注释,因此请忽略它们。

您还将在 .file 指令中看到您的路径。我相信这些只会产生调试符号输出,不会进入您的可执行文件,因此您也可以忽略它们。

您还将在 .section DWARF,... 指令后不久在 .asciz 指令中看到您的路径。这是您可以忽略的更多调试符号内容。

查找您的路径出现在程序集输出中的其余情况。您需要弄清楚如何消除这些情况。你如何做到这一点将取决于路径出现的上下文,所以如果你需要更多帮助,请用你找到的内容更新你的问题。

关于iOS App 包含开发者路径信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18219016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com