gpt4 book ai didi

ios - 如何反编译iOS应用程序?

转载 作者:可可西里 更新时间:2023-11-01 03:27:57 24 4
gpt4 key购买 nike

我想查看 iOS 应用程序的代码。

我下载的应用程序是.deb。

第一个问题:是否可以在 iOS 上安装 .deb 文件或者我下载了错误的文件?

解压.deb文件后,我得到了一些文件,包括.nib、.storyboard和一些其他文件。

我的主要问题是,如何反编译这些 .nib 文件?

我尝试使用 NibToXibConverter 反编译这些文件,但没有成功。

最佳答案

第一个问题的答案:

我认为您下载了错误的文件。 iOS 的 .deb 文件在越狱社区中很常见,而不是应用程序,我认为所有 Cydia 的东西都打包到 .deb 中。如果您的应用程序是专门为越狱场景制作的,那么您可以尝试使用 Cydia's auto install feature 安装它。在越狱设备上。

回答你的主要问题:

这是关于反编译和修改 iOS 应用程序的一般信息(不特定于 nib,但您可能仍然会发现它很有用)。

iOS 应用程序分布在 .ipa 文件中,这是普通的 zip 文件。它们通常包含一个 Mach-O 文件形式的可执行文件,以及 .plist、声音、图像等资源——您在 xcode 项目中包含的所有资源。反编译可执行文件只能在越狱的 iDevice 上进行,因为它特别针对当前设备进行了加密,并且解密二进制文件的魔法 key 被烧录在设备 CPU 内,据我所知,没有软件可以读取该 key 。这里的加密系统叫做FairPlay .

简而言之,解密该二进制文件的一种方法是将应用程序安装在越狱设备上,然后使用可以从 Cydia 下载的调试器 (gdb) 从命令行启动它。您必须在某处设置一个断点,当您的代码执行在断点处暂停时,您正在执行设备 ram 的内存转储 - 那就是您的解密 bin。

因此,当您拥有解密的二进制文件时,您可以运行一个名为“class-dump”的工具,如果应用程序是用 Objective C 编写的,则可以获取声明的类及其方法的信息。一旦知道这些信息,您就可以更改使用“Cydia Subtstrate”a.k.a“Mobile Substrate”从您的应用程序中使用的某个类中实现给定方法。事实上,这就是所有越狱 iOS 调整的方式。基本上你 Hook 一个方法调用,当那个方法被调用时,它使用你的实现。此外,您的实现可以调用原始实现,如果您想添加一些小代码,这将非常有用。

我不确定这些事情在 Swift 中是否可行,但是如果你正在处理一个混合应用程序,比如用 cordova、phonegap 等完成的应用程序,那么你可以看到它的所有 javascript 源代码,因为它被持久化为“ipa”文件中的资源。此外,如果您有越狱设备并找到应用程序在文件系统上的安装位置(通常是 /var/containers/Bundle/Application/uuid_for_your_app/),您可以直接更改该 javascript 代码。但是,我认为没有办法获得那个补丁版本并重新分发它(如果我错了请纠正我)。

关于ios - 如何反编译iOS应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39931618/

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