gpt4 book ai didi

swift - Swift应用程序:将二进制文件标记为动态链接器的“受限”

转载 作者:搜寻专家 更新时间:2023-11-01 05:34:14 27 4
gpt4 key购买 nike

我正在寻找一种方法,将二进制代码标记为“受限”,而代码是用swift编写的。
我特别要说的是,将这些标志设置到链接器以防止动态库加载:
-Wl,-sectcreate,__RESTRICT,__restrict,/dev/null
这适用于>=ios10的设备,但不适用于ios9,它会因以下原因崩溃:

Dyld Error Message:
Dyld Message: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /var/containers/Bundle/Application/[...]
Reason: image not found

我认为应该有一种方法来“白名单”库。

最佳答案

我用相同的标志创建了一个ipa。该标志将一个“限制加载”命令插入文本区域(只读/可执行)。您可以用otool -l <path_to_binary> | grep -i restrict来验证这一点。
正如你所说,我可以在一个干净的ios 11设备上运行这个程序。
它在ios 9设备上失败,引用了2个dylibs;
然后我用optool删除了链接器标志。我使用AppleSign退出了整个应用程序包。我确认旗子被移走了。我重新安装了ios11。。损失9:。ios9设备上的相同崩溃日志:dylib“找不到映像”。
然后我返回到加载命令,并将有问题的dylib从lc-load-dylib更改为lc-load-dylib。
在ios9设备上加载的应用程序。我必须进一步测试,但这是我到目前为止的结果;也许结果表明“限制”标志不是导致问题的原因?

关于swift - Swift应用程序:将二进制文件标记为动态链接器的“受限”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45351156/

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