2010-05-15 82 views
2

有没有一种方法可以从IPhone应用程序反编译二进制文件。 我jailbroke我的iPhone和惊讶地发现其他应用程序的数据库广泛开放被复制。 所以我导出了我最重要的表格,并将其硬编码到代码中。 而不是从一个数据库加载表到数组我只是生成代码来填充数组,只保留最基本的数据库信息,所以关系仍然工作。 花了一段时间,但现在工作正常。在IPhone上保护文件

我只是想知道我是否安全,是否有人可以轻松地为应用程序反编译二进制文件并提取数据。在Java中,它易于反编译* .class文件,尽管这是字节码,我认为iphone应用程序更低级别。

我知道iPhone SDK s4可以标记文件为安全。任何人都知道这可以通过越狱覆盖或这是一个unix锁吗?

+0

我有兴趣知道问题中引用* decompiling *二进制文件的部分的答案,这些问题目前尚未得到解答。目前有什么工具可用? – izb 2010-05-25 13:05:31

回答

0

说实话苹果无法保证一块砖。 iPhone几乎一直处于牢不可破的状态。用户(阅读黑客:)有更多控制在设备上比开发人员。您无法真正确保设备上的内容安全。如果使用加密,攻击者无法获得密钥。 (他可以控制所有库,并可以挂接他想要的任何函数调用。)

看到开发人员回到Security Though Obscurity是很常见的,我不打算去接受这些想法。如果设备上有数据,则黑客可以并将复制该数据。

+0

是的,我重命名所有的表和字段。 一张桌子上有很多我手动发现的GPS数据,所以不想复制。我提取了该表中的所有数据,并生成了用于填充表存储的NSDictionary的代码,并在应用程序启动时运行该代码。我保持ID字段填写,所以其他关系仍然有效。如果我需要表中的一行,我找到了id,然后在内部NSDictionary中查找它。似乎工作正常。作为设计的一部分,我的下一个应用程序肯定会添加模糊(因此我不确定如何拼写:))。 – 2010-05-17 10:37:19

1

加密数据的缺点,你真的只受到人们缺乏动力的保护。如果有足够动机的人想要查看数据,他们可以。即使您对数据进行加密,如果他们的密钥位于或由您的代码生成,他们也可以找到。

0

我jailbroke我的IPhone,是 惊讶地发现其他应用程序的DBS宽 开放被复制。

不,这没有错。它必须存储在某个地方。

因此,我导出了我最重要的表 并将其硬编码为代码。

坏的举动。

来自特权域的越狱是手机中的漏洞,并不是您的问题。对此你无能为力,甚至加密你的数据也不会拯救你,因为手机上的所有特权代码都能够访问加密密钥。

换句话说:

代码通常不会有敌意,窃取你的货物。唯一的原因是因为用户将不好的代码下载到手机或发生了远程利用。