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

问题描述 投票:0回答:1

我有一个应用程序,最近发布到 Cydia。它已被其他人破解并发布在种子网站上。我内部有一个二进制校验和验证机制,他们能够根据他们对二进制文件所做的更改创建一个新的校验和文件。他们编辑了两个函数并将其反编译并发布到种子。

我看到可以看到函数和类的实际实现。但是为了编辑函数,他们必须找到该函数的地址并通过 HEX EDITOR 对其进行编辑。我不想让它“无法破解”,但我真的很想知道他们是如何破解的。

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

- (id) getSomething {

   return @"Something";
}

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

ios reverse-engineering ida otool
1个回答
6
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.