【问题标题】:Object File format on iOS (getting SHA512 hash of installed app)iOS 上的对象文件格式(获取已安装应用程序的 SHA512 哈希)
【发布时间】:2011-01-29 15:00:49
【问题描述】:

在提交我的应用程序以供批准之前,我是否可以知道所有或部分 iOS 应用程序的可执行文件的哈希值?

是否可以在我的应用程序中包含一个魔术常数,以便我可以使用它的大致位置作为获取大多数可执行文件的 SHA512 哈希的起点?我想为我的应用添加额外的可执行验证机制。

编辑:在 Apple Developer 网站上进行一些搜索后,我遇到了 Mach-O 文件格式规范。

【问题讨论】:

  • 您想检查您的应用程序自己的可执行文件吗?这很容易破解——如果可以更改代码,他也可以更改哈希验证部分。您想处理哪些特定威胁?
  • 选择一些蜜罐代码来校验和,并将哈希结果隐藏在某个看似不重要的地方(应用程序高分消息包中的随机填充字节或其他东西)。当然有人可以轻松破解它,但为什么会想到看那里呢?
  • @Eugene - 是的,我想检查我自己的可执行文件。实际上,我要保护的第二部分操作的 Javascript 代码(代码本身是加密的)的加密密钥是基于可执行文件的哈希值 + 一个单独的 IV。还有一些其他的保护措施我在这里无法讨论,但它们基于加密哈希、程序生成的混淆以及服务器的执行时间。

标签: ios hash cryptography


【解决方案1】:

Apple 会加密部分可执行文件,因此在提交之前的任何文件哈希都可能在分布式应用程序上无效。

您可以做的是应用程序在内存中执行时的哈希/校验和部分,方法是获取实时函数指针并将它们用作起始地址。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-27
    • 2017-04-30
    • 2018-12-03
    • 2012-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多