使用Swift修改没有源代码的OS X应用程序

时间:2016-12-13 13:11:09

标签: swift macos cocoa

问题如下。

按钮FindName的标题错误,应该是搜索,另一个是窗口标题拼写错误:" DisplayUsrEmail"

我没有应用程序的源代码。

我的主要要求是编写将修改当前应用程序并修复上述问题的小应用程序。

我必须使用Swift编写新的应用程序。

我做了什么:

1)在没有编码的情况下更改按钮的标题非常简单。 (FindName - > Search)我在Info.plist文件中更改了它。

2)在Info.plist中更改应用程序标题(可执行文件)也很容易,但在我的情况下,它不会更改窗口的标题" DisplayUsrEmail&#34 ;

3)我在十六进制编辑器(使用https://hexed.it/)中打开了应用程序unix可执行文件,并在那里找到了标题" DisplayUsrEmail"。但是,当我使用符号' e'添加字节时,应用程序崩溃了。 (" DisplayUsrEmail" - >" DisplayUserEmail")我可以使用相同的字符数更改标题,但它不能解决我的问题。

那么,是否可以编写将修改当前应用程序的新应用程序?如果是,那么工作流程是什么?

enter image description here

2 个答案:

答案 0 :(得分:2)

该应用程序是通过xcode编译的,并且众所周知,无法从已编译的应用程序中检索源代码。

回答你的问题:不,这是不可能的。

答案 1 :(得分:0)

我认为这根本不可能。构建应用程序时,它也会进行编码以防止对其进行任何更改。如果进行了任何更改,macOS将无法(或拒绝)打开该应用程序。这是一项安全功能,可防止用户修改应用程序以绕过应用程序中的安全措施,许可等。由于您已经修改了应用程序,因此当您尝试启动应用程序时,您会看到此安全功能以应用程序崩溃的形式运行。

话虽这么说,但可能只修改UI元素而不影响可执行文件。在应用程序的资源文件夹中,应该有一个扩展名为“.nib”的文件。这是编译的用户界面,它是窗口和按钮拼写错误的地方。如果仅修改此文件,则再次启动应用程序时,UI元素可能是正确的。这个nib文件也可能是代码签名包的一部分,修改它会导致崩溃,就像你修改了可执行文件一样。