是否可以编辑和重新编译在iOS二进制?(Is it possible to edit and rec

2019-07-29 09:28发布

我已经决定了很多与谷歌的时间支出后,在这里问这个问题。 但我不能能得到我的问题的答案。 这里如下细节:

我有一个应用程序,并发布到Cydia的最近。 它已经破解别人,并张贴在BT网站。 有趣的是我有一个内部的二进制校验核查机制,他们能够破解全部的东西,他们根据他们的二进制所作的更改创建新的校验和文件。 他们已经编辑两种功能,并反编译,并张贴到种子。

所以我做了一些研究与IDA Pro和看到它是可以看到实际执行的函数和类。 但为了编辑功能,他们必须找到函数的地址,并通过十六进制编辑器进行编辑。 这部分是混乱的我,有没有人帮我在这? 我不想让它“牢不可破的” :) ..它不是那么容易,我猜。 :)不过我真的想了解他们是如何破解? :)

我的问题是如何在编辑功能在iOS二进制和重新编译它? 例如,我在我的课之一下面的方法。

- (id) getSomething {

   return @"Something";
}

我想编辑的返回值这个function.Is这可能吗?

Answer 1:

通常情况下,你不“重新编译”它。 只给该文件IDA,查找字符串,函数调用或任何你正在寻找,然后使用十六进制编辑器或类似的编辑在汇编级的文件。 在大多数情况下,这是不够的,只是改变一个条件跳转到一个无条件跳转或NOP(无操作)。 如果你想改变返回值,你要多放一点精力投入到它,但以我的经验,你可以编辑字符序列正确的二进制文件中,如果它被指定为一个常量或初始值 - 或者你只是写全新的功能与“复制”它的汇编代码到原始文件。 你只需要确保你的新功能并不需要更多的空间比原来的 - 或者一切都变得复杂得多。 我希望这是你问的是什么,否则只是告诉我们哪些应用程式,你所谈论的,我们可以更深入地观察它:)



文章来源: Is it possible to edit and recompile an iOS Binary?