/System/library/CoreServices/MLTEfile.bundle
我有信心我没有从这个捆绑的服务中受益,并且怀疑许多应用程序.事实上,我通过学习Xcode本身了解到,该软件包无法加载到Xcode的内存空间,因为该软件包不兼容垃圾回收.
所以理想情况下,我想防止这个软体包加载到我的应用程序中.这样做的一个方法是在我自己的应用程序中要求GC,但我不会这样做.任何人都可以想到一种方法来规避系统框架在这个库上调用dlopen()的尝试?
解决方法 感谢Twitter上的一些有用的回复,我可以在这里提供dyld的“插入”功能作为一个潜在的解决方案.搜索“在相关库中插入函数”:https://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/DynamicLibraries/100-Articles/UsingDynamicLibraries.html#//apple_ref/doc/uid/TP40002182-SW10
这里的简单例子:
http://toves.freeshell.org/interpose/
还有一个用于在这里声明介绍的简化宏:
http://www.opensource.apple.com/source/dyld/dyld-97.1/include/mach-o/dyld-interposing.h
我对这里展示的各种方法感到困惑.看来,在DYLD名称表中有一种广告_interpose愿望的机制,一种依赖于使用dlsym(RTLD_NEXT,…)链接到原始的完全(?)不同的机制.在Apple的可下载示例(从第一个文档链接),他们使用dlsym技术,但是如果这隐含地导致插入发生,我不清楚.
总结以上是内存溢出为你收集整理的osx – Mac OS X应用程序可以防止dlopen加载库吗?全部内容,希望文章能够帮你解决osx – Mac OS X应用程序可以防止dlopen加载库吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)