是否可以查看mac应用程序的来源?

时间:2012-04-22 14:44:09

标签: xcode macos decompiling

看看事情是如何运作但不确定它的合法性会很有用

4 个答案:

答案 0 :(得分:7)

大多数Mac应用都是使用Objective-C中的Cocoa编写的;虽然它是一种编译语言,但意味着有一些信息可以被反编译器使用。

我不确定是否有很多反编译器利用这些信息,至少我没有听说过。

然而,还有另一种选择; F-Script

F-Script可用于附加到可执行文件并探索其界面,虽然不如源代码,但它可以让您清楚地了解可执行文件的构建方式及其运行方式。

至于合法性问题:

IANAL,但据我所知,出于兼容性的目的,逆向工程在许多司法管辖区是合法的,我无法想象反编译可执行文件以查看其代码是非法的,除非特定的EULA明确禁止它

编辑:特别是WRT Steam,它可能不是用Cocoa编写的,而是C#与某种.NET兼容层;如果你想学习如何为Mac OS X制作应用程序,它可能不是一个好的开始。

答案 1 :(得分:2)

如果它是一个开源应用,是的。否则它可以通过decompilation,但输出将是一个真正痛苦的屁股。如果您只想要类别和类的协议和接口,请查看class-dump

我不知道nib反编译器。

反编译是否合法:请律师。这可能(并且可能确实)在每个司法管辖区有所不同。

答案 2 :(得分:2)

到目前为止,我使用过的最好的Mac OS X反汇编程序是Hopper: http://www.hopperapp.com/

它还会尽可能地将程序集转换为C伪代码。它将生成带蓝色线条的代码流程图(真蓝色,喜欢它),真正的红色和虚假路径。

它是Mac OS逆向工程工具。甚至有Youtube个视频会向您展示如何使用它。

答案 3 :(得分:1)

  

是否可以查看mac应用程序的来源?

实际上,没有。当然,您可能能够使用反编译器来查看,但您将获得的输出类型将不容易阅读。如果你问这个问题,这条路线可能对你没有帮助。

  

对GUI以及mac的Steam应用程序如何工作

特别感兴趣

这是一个很好的选择,它的工作方式与大多数其他应用程序的工作方式相同。它可能使用自定义控件看起来与主要使用标准Cocoa控件的典型应用程序不同。但在下面,几乎所有为MacOS X编写的GUI应用程序都将使用Cocoa提供的运行循环,响应程序链和视图层次结构。主要的例外是主要使用OpenGL或WebKit等替代框架构建的应用程序。

找出具体的Steam应用程序您想做的事情。看看Cocoa提供的工具,看看你是否可以自己解决这个问题;如果没有,请在这里询问。