反编译 Mac 应用程序

反编译 Mac 应用程序

当我下载 Mac 应用程序时,它们都带有 .app 扩展名。当我右键单击并查看包信息时,我看到其中有很多文件。这些文件是什么?这是否意味着这些应用程序是开源的?此外,我该如何反编译应用程序?在 Windows 上,我能够使用十六进制编辑器和反编译软件来干扰内部结构,使应用程序执行新操作。它在 Mac 上如何工作?

答案1

.app 文件夹称为包。它们是应用程序的简单呈现,可以轻松移动或卸载。当 Mac OS 需要显示包含多个文件(框架、首选项窗格、插件等)的一个实体时,它会在每个地方使用包。

http://developer.apple.com/mac/library/DOCUMENTATION/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW13进一步了解它们的结构。

答案2

OS X 上的大多数应用程序分发为捆绑, 哪个看起来类似于文件,但实际上是包含其他文件和文件夹的文件夹。这些“其他”文件和文件夹是应用程序使用的资源。在 OS X 上,资源(图像、声音文件等)作为单独的文件分发,而不是包含所有资源的一个大文件 - 因此您不需要十六进制编辑器来查看这些资源文件。

捆绑包的内容.app通常包含如下项目:

.app/                  <- The app bundle
  Contents/
    _CodeSignature/    <- Used to verify an application
    Frameworks/        <- Frameworks used by and distributed with the application
    Info.plist         <- Application metadata
    Library/           <- Files that enable various OS X functionality
      QuickLook/       <- Custom QuickLook renderers
      Spotlight/       <- Custom Spotlight importers
    MacOS/             <- Contains the actual binary code executed when double-clicking on the application
    PlugIns/           <- Application plugins
    Resources/         <- Resource files, such as icons, UI layouts, sound files, image files

注意每一个OS X 上的应用程序都包含这样的布局,无论它们是否是开源应用程序。

答案3

.app“文件”是包含多个文件的文件夹。您看到的是随程序分发的文件,而不是源代码。

我能想到的最好类比是,如果 Windows 程序以 .zip 文件的形式分发,而您只是将它们放在 C:\Program Files 中来安装它们,而不是提取它们。(因此,您看到的文件就是您在 Windows 上该程序的“Program Files\program name”文件夹中看到的文件)

相关内容