看看事情是如何运作的,但不确定它的合法性会很有用
4 回答
大多数 Mac 应用程序都是使用 Objective-C 中的 Cocoa 编写的;虽然它是一种编译语言,但这意味着有相当多的信息可供反编译器使用。
我不确定是否有很多利用这些信息的反编译器,至少我没有听说过。
但是,还有另一种选择;F脚本。
F-Script 可用于附加到可执行文件并探索其接口,虽然不如源代码好,但它可以让您非常清楚地了解可执行文件是如何构建的,以及它是如何运行的。
至于合法性问题:
IANAL,但据我所知,出于兼容性目的的逆向工程在许多司法管辖区都是合法的,我无法想象反编译可执行文件以查看其代码是非法的,除非特定的 EULA 明确禁止。
编辑:特别是 WRT Steam,它可能不是用 Cocoa 编写的,而是带有某种 .NET 兼容层的 C#;如果您想学习如何为 Mac OS X 制作应用程序,这可能不是一个好的起点。
到目前为止,我用过的最好的 Mac OS X 反汇编程序是 Hopper,可在此处获得:http: //www.hopperapp.com/
它还将尽其所能将程序集转换为 C 伪代码。它将生成带有蓝线(真正的蓝色,喜欢它)的代码流程图,表示正确的路径,红色的表示错误的路径。
它是 Mac OS 逆向工程工具。甚至还有Youtube视频会向您展示如何使用它。
如果它是一个开源应用程序,是的。否则,可以通过反编译来实现,但输出将是一个真正的痛苦。如果您只想要类别和类的协议和接口,请查看class-dump。
我不知道 nib 反编译器。
反编译是否合法:请教律师。这可能(并且可能确实)因司法管辖区而异。
是否可以查看mac应用程序的来源?
实际上,没有。当然,您可能可以使用反编译器进行查看,但是您将获得的输出类型不容易阅读。如果你问这个问题,这条路线可能对你没有帮助。
对 GUI 以及 mac 版 steam 应用程序的工作方式特别感兴趣
可以肯定的是,它的工作方式与大多数其他应用程序的工作方式大致相同。它可能使用自定义控件看起来不同于主要使用标准 Cocoa 控件的典型应用程序。但在底层,几乎所有为 MacOS X 编写的 GUI 应用程序都将使用 Cocoa 提供的运行循环、响应程序链和视图层次结构。主要的例外是主要使用 OpenGL 或 WebKit 等替代框架构建的应用程序。
具体来说,弄清楚 Steam 应用程序做了哪些您想做的事情。看看 Cocoa 提供的工具,看看你能不能自己弄明白;如果没有,请在这里询问。