mach-o相关内容

如何使用 Xcode 创建动态库 (dylib)?

我在 Xcode 中构建了一些命令行实用程序(纯 C,没有 Cocoa).我希望他们所有人都使用我定制的 libpng 版本,并且我想通过在所有可执行文件之间共享一个库副本来节省空间(我不介意与他们重新分发 .dylib). 我需要做一些魔术来获取 libpng 导出符号吗? "Link Binary With Libraries" 是否静态构建阶段链接? Apple 的文档提到 ..
发布时间:2022-01-11 15:09:41 其他开发

链接器命令错误:“ld:找不到架构 i386 的符号"

我在编译时出错.好像很奇怪.它用作详细视图应用程序,但使用单个视图似乎不起作用.这是错误详细信息: 架构 i386 的未定义符号:“_OBJC_CLASS_$_RssArticle",引用自:RssXmlParser.o 中的 objc-class-refld:找不到架构 i386 的符号clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) 解决方案 尝试以下步骤: ..
发布时间:2021-12-31 22:53:46 移动开发

架构 arm64 的重复符号(Xcode 错误)

我从我的项目中删除了对 GoogleMobileAdsSDKiOS-7.1 的所有引用并添加了 7.4.1.当我在模拟器上运行应用程序时一切正常,但在设备上运行时出现应用程序 Mach-O 链接器错误. 重复符号 l017 在:/Users/ib/Desktop/Monster GoogleAds7.4.1/GoogleMobileAdsSdkiOS- 7.4.1/GoogleMobileAd ..
发布时间:2021-11-17 22:44:26 移动开发

Mach-O 符号存根 (IOS)

我正在尝试了解 Mach-o 文件的工作原理,并且在可用的在线资源方面取得了很大进展(特别是此处的 Apple 页面:http://developer.apple.com/library/mac/#documentation/developertools/conceptual/MachORuntime/Reference/reference.html),但我在理解符号存根的工作方式方面遇到了障碍. ..
发布时间:2021-11-17 22:05:52 移动开发

我正在尝试获取osx中已加载的dylib的基地址

好吧,很长一段时间以来,我一直在尝试在运行时运行Proccesses来获取Loaded OSX Dylibs的基本地址. 在使用task_info之后,我已经在运行时使用dyld_all_image_infos转储了所有附加的Dylib,并在那里找到了名称和ImageLoadADDRESS,mach_header和segment_command. 但是我在运行时无法到达那里的基址. ..
发布时间:2021-05-31 19:18:51 C/C++开发

如何仅使用普通的Apple ID帐户签署dylib?(尚无开发者帐户)

我有一个dylib,为了使其能够在我的机器上运行,我不得不在xcode的目标设置中禁用库验证.是否可以仅出于测试目的而在没有付费开发人员帐户的情况下对其进行签名?任何有关如何执行此操作的链接或教程都会有很大帮助. 解决方案 取决于您获取库的方式. 在Xcode中构建 如果使用Xcode构建,则应该能够启用签名并告诉它使用 Team None 和 Sign在本地运行项目的签名和功 ..
发布时间:2021-05-31 19:05:44 移动开发

从dyld_shared_cache中的__objc_selrefs获取方法名称

我正在尝试制作类似于 dyld_decache 的dyld提取器.和 dsc_extractor .但是我在解析__objc_selrefs部分时遇到了麻烦. 出于测试目的,我使用了libsystem_trace.dylib,并且能够找到并解析其mach_header及其分段和节.但是,在__DATA .__ objc_selrefs部分中,我发现了0x201b8647fc8和0x201b8 ..
发布时间:2021-05-06 19:55:32 移动开发

为什么未对可执行文件中的填充字节进行优化?

当我创建一个小型Mac Mach-O可执行文件时,"Hello World"例如,用C语言编写,由于对齐填充,大小约为48k.但是,与此同时,我可以在.bss部分中定义100k的0-es(例如,通过指定100k个字符的静态数组),并且它仅将几个字节添加到磁盘上的可执行文件中. 我想知道为什么padding(我认为应该在加载后才起作用)也不被“打包".不知何故. 解决方案 您似乎不欣赏 ..
发布时间:2021-04-23 19:57:48 其他开发

为什么有时__LINKEDIT关闭0x1000?

正在解析内存中已经加载的Mach-O二进制文件... 有时候,字符串表,符号表等应位于它们的正确位置,有时会掉0x1000. 例如,我可以运行我的程序,并且 baseOffset + cmd-> symoff 是准确的.然后,我将进行单元测试,并且 baseOffset + cmd-> symoff + 0x1000 是准确的. baseOffset 始终有效,并指向有效的Mach标头 ..
发布时间:2021-04-15 19:31:56 其他开发

.string伪操作的替代方法?

我正在尝试在使用.string伪操作的Mac OS X上运行一个程序集文件,显然无法识别.应该如何替换以下几行,使其在Mac上可以正常工作? ArrayIndexOutOfBoundsException: .long 35 .string "Array index out of bounds exception" 我用来执行汇编文件的行是: gcc -m32 -g3 runtime ..
发布时间:2020-08-11 20:59:47 其他开发

如何创建iPhone Mach-o文件?

如何创建HelloWorld iPhone mach-o文件? 我想在我的越狱iPhone上对其进行测试. 请帮助我! 解决方案 我在网上为您搜索时发现了这一点. http://mobiforge.com/developing/story/getting-从iPhone开发开始 它讨论了如何创建您的第一个"Hello World"应用程序. ..
发布时间:2020-07-08 08:37:43 移动开发

逆向Mach-O 64位x86汇编分析

该问题供英特尔x86组装专家解答.谢谢您的预先努力! 问题规范 我正在分析一个与 Mach-O 64位x86程序集相匹配的二进制文件.我目前正在使用MacOS 64 OS.该程序集来自 objdump . 问题是,当我学习汇编时,可以看到变量名"$ xxx",可以看到ascii中的字符串值,还可以看到被叫者名称,如"call _printf" 但是在这次大会上,我什么都没得 ..
发布时间:2020-07-08 08:37:41 其他开发