是否有可能编辑和重新编译iOS二进制文件?

我已经决定在这里花了很多时间在Google上面问这个问题。 但是我还是无法得到我的问题的答案。 以下是详细信息:

我有一个应用程序,最近张贴到Cydia。 它已被其他人破解并将其发布到洪stream站点。 有趣的部分是我有一个二进制校验和validation机制,他们能够破解整个东西,他们创build了新的校验文件,根据他们对二进制文件所做的更改。 他们已经编辑了两个函数,并将其反编译并发布到torrent。

所以我用IDA Pro做了一些研究,看到它可以看到函数和类的实际实现。 但为了编辑function,他们必须find该function的地址,并通过hex编辑器进行编辑。 这是我的一部分困惑,有没有人帮助我呢? 我不想让它“不可撼动”:) ..我猜不是那么容易。 :)但我真的想知道他们如何入侵? 🙂

我的问题是如何编辑iOS二进制文件中的函数并重新编译它? 例如,我在我的一个类中有以下方法。

- (id) getSomething { return @"Something"; } 

我想编辑这个函数的返回值。是否有可能?

通常,你不要“重新编译”它。 只需将该文件提供给IDA,查找string,函数调用或任何您正在查找的内容,然后使用hex编辑器或类似语言在汇编级别编辑文件。 在大多数情况下,只需将条件跳转变为无条件跳转或nop(无操作)即可。 如果你想改变返回值,你必须付出更多的努力,但根据我的经验,你可以编辑二进制文件中的字符序列,如果它指定为一个常量或初始值 – 或者你只是写一个完全新的function,将其汇编代码“复制”到原始文件中。 你只需要确保你的新function不会占用比原来更多的空间,或者一切都变得更加复杂。 我希望这就是你要求的,否则只要告诉我们你正在谈论哪个应用程序,我们可以深入了解它:)