反编译 Mac 应用程序

4 mac macos

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

小智 8

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

请参阅http://developer.apple.com/mac/library/DOCUMENTATION/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html#//apple_ref/doc/uid/10000123i-CH101-SW13以了解有关它们的结构的更多信息.

  • 这是一个很好的总结,但我想补充一点,能够查看应用程序使用的文件与该应用程序是否“开源”无关。您随应用程序获得的许可证应表明它是否是开源的,以及其他使用权利/限制。 (5认同)

mip*_*adi 7

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
Run Code Online (Sandbox Code Playgroud)

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


Bre*_*ong 1

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

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