7

我想将我的库注入现有的企业应用程序(ipa 文件)。

我找到了 mach_inject,但这仅适用于 MacOSX。

这是可能的,因为https://www.mocana.com正在这样做。

请帮忙。任何想法,建议都会非常有帮助。

4

4 回答 4

3

目前尚不清楚您要做什么,但 mach_inject 是用户应用程序使用 Mach 端口与 MAC OS 内核交互的一种方式,它与本质上是存档的 IPA 无关 - 类似于 zip 或 Tar。

我怀疑根据您所描述的内容,您有一个希望链接编辑/包含在用户应用程序中的库,但您不希望他们看到您的源代码,反之亦然。我对 Mocana 不熟悉,但根据您的描述,它使用 IPA 进行分发,这是完全可能的,但使用 Facebook SDK 分发的预编译对象模块也是如此。

无论如何,在通过企业分发服务器或应用商店分发之前,需要对整个包进行签名,然后设备才能下载并运行它。

于 2014-02-21T08:06:53.827 回答
2

是的,您将能够将一个库注入到现有的 ipa 中,然后使用您的企业证书将其退出。以下是我如何做到这一点的简要说明

在 MachOView 中查看可执行文件并找到加载命令的地址。然后使用地址编辑十六进制并将加载命令计数增加1(假设我正在注入一个库)我还必须增加命令偏移量。

有一些工具可用于将库注入十六进制,您现在可以使用这些工具在加载命令中引用的新偏移量处注入库。

还可以查看 git 中的dyci-main,它是一个动态库注入项目。

于 2014-09-01T18:10:20.407 回答
1

有一种方法可以解压并退出现有的.ipa请参阅此处的答案如何重新签署 ipa 文件?

所以可以更改内容.ipa,问题的另一部分是编写一些加载原始应用程序并注入动态库的包装器应用程序,我确信这并不容易,但至少应该是可能的。

于 2014-02-26T23:06:31.903 回答
0

.ipa 文件和可执行文件已签名,并且签名必须匹配。如果签名不匹配或无效,iOS 将拒绝运行应用程序。即使您使用凭据重新签署 ipa,签名也不会与可执行文件上的凭据匹配。为了使签名匹配,您需要使用他们的私钥对 .ipa 进行签名,或者他们必须使用您的私钥对可执行文件进行签名。私钥不应该以这种方式使用......

于 2014-02-21T18:38:52.623 回答