【发布时间】:2011-08-12 15:41:10
【问题描述】:
通过 App Store 购买并安装在用户 iPhone 上的应用程序与原始应用程序包中提交给 Apple 的原始可执行文件相比,应用程序的可执行文件是否逐字节相同?还是不同(例如,使用额外的签名或加密)?
我只关心可执行文件,而不是整个应用程序包。
特别是,诸如...之类的代码
int main(int argc, char* argv[]) {
FILE* file = fopen(argv[0], "rb");
// Read entire contents of executable file; calculate a hash value
// ...
fclose(file);
}
...计算与在 iPhone 外部对提交的原始可执行文件计算相同的哈希?
例如,如上所述计算 SHA256 哈希,然后在 XCode 中使用“构建并运行”以在连接的 iPhone 上运行,产生的结果与通过在 OS X 中的终端运行 openssl sha256 MyAppExecutableFile 计算 SHA256 哈希完全相同。这个表示通过 XCode 安装应用程序的行为不会改变可执行文件。
我的问题是,当应用提交到 App Store、购买和安装时,这是否仍然有效。
【问题讨论】: