2017-09-24 46 views
0

我想知道的是可以提取和编辑已签名的apk吗?攻击者能否再次压缩apk并攻击受害者?可以提取并编辑已签名的apk吗?

我知道我们可以使用proguard来隐藏代码,但有些人说apk仍然可以通过逆向工程提取和修改。

我主要关心的是我想加密我的java文件,因为我的java文件中有一些验证数据。

任何人都可以给我一个防弹的方法来保护java文件无法访问。

编辑 -

找到几个老线程堆栈,但他们从来没有解释有关签署的APK,并保护他们免受剥削得到。

+0

我真的不知道签署的apk但是7zip的总是开了窍 – Vivick

回答

0

是的。加密签名不​​是加密。签署证明,谁签名知道一个秘密密钥。假设密钥保持安全,您可以确定由同一个密钥签署的两个文件来自同一个人。通过某些形式的公钥和私钥签名,它可以用来证明签名者的身份。这并不能防止读取该数据,尽管它确实提供了对应用程序的伪造副本的保护(假定用户注意签名)。

没有办法做你想做的事情。最后,应用程序必须由处理器或解释器运行。这意味着它需要被转换成处理器能够理解的指令。如果你想要安全的东西,不要把它放在客户端设备上。如果您将它发送给需要解密并使用它的设备,则无法保护它。

+0

有什么办法,使其难以反向工程APK?我只是不想让人读我的文件。 –

+1

多种方式,但真正的问题是 - 你为什么在意?如果你的算法是真正的创新,申请专利。你会从中得到真正的保护。如果您担心的是其数据,请不要将其从服务器上移开。如果你担心仅仅是因为你担心复制的代码,实现复制大多数应用程序是trivial-有经验的资深开发可以重写几乎任何应用程序使用的一点点研究。什么让你安全的是继续创新和愿意做的工作,以及围绕你的应用程序建立的业务。 –

+0

哇这么好解释。感谢您解释这个问题。 –

0

任何APK都可以解压缩并读取源代码。但是,您不能编辑它并在没有签名密钥的情况下对其进行签名。

没有办法对源文件进行加密,其中的任何内容都可以被任何人读取。如果预计秘密,认证数据不应该存储在应用程序中。

0

已签名的apks可以很容易地被反向设计。您绝不应将验证数据放在源代码中。对此没有防弹解决方案。但是,通过编码,您可以使攻击者很难,而不是将您的关键数据放在明显的地方。

+0

我可以只加密认证文件吗?其余文件正常? –

+0

不能加密的Java文件。您可以加密文本文件,但您需要将解密密钥保存在应用程序中。所以这不是一个解决方案。唯一可行的解​​决方案是从后端服务器执行身份验证。 –

+0

是的,我明白这一点。 –

0

你应该用另一种方式来使用你的信息,我读过一些关于建立一个二进制文件,存储在lib目录下的.so文件里,我不知道它究竟是如何年代proccess因为我没有”但是你可以研究另一种方法,在Java源代码上存储私有数据并不安全。

相关问题