Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我可以将序列化与模糊化一起使用吗?_Android_Serialization_Obfuscation_Proguard - Fatal编程技术网

Android 我可以将序列化与模糊化一起使用吗?

Android 我可以将序列化与模糊化一起使用吗?,android,serialization,obfuscation,proguard,Android,Serialization,Obfuscation,Proguard,我想知道它是否会起作用。。。在我的应用程序中,我有一个正在序列化为文件的对象,然后我用它混淆代码,应用程序就上市了。然后我想发布新版本的应用程序。我也这么做。用户运行应用程序更新 问题是-使用第一个版本的app序列化的对象是否在第二个版本中正确反序列化?如果是-为什么?我可以找到几种机制(,)使定制序列化依赖于字段名成为可能-假设默认机制还没有。具有一些示例配置,说明了如何使ProGuard忽略字段名以及序列化使用的所有特殊方法和字段。您真的需要序列化吗?这不是你可以用数据库或自定义文件格式处理

我想知道它是否会起作用。。。在我的应用程序中,我有一个正在序列化为文件的对象,然后我用它混淆代码,应用程序就上市了。然后我想发布新版本的应用程序。我也这么做。用户运行应用程序更新


问题是-使用第一个版本的app序列化的对象是否在第二个版本中正确反序列化?如果是-为什么?

我可以找到几种机制(,)使定制序列化依赖于字段名成为可能-假设默认机制还没有。具有一些示例配置,说明了如何使ProGuard忽略字段名以及序列化使用的所有特殊方法和字段。

您真的需要序列化吗?这不是你可以用数据库或自定义文件格式处理的吗?@jcm,我真正需要的是保护这些数据不被未经授权的读取。如果您告诉我用户无权查看数据库,我甚至担心用户会使用root权限获取/分析/修改该数据。所以我用加密来序列化它。但正如你所说,也许自己的文件格式会更好。如果你想要安全的数据,而不仅仅是它的结构,你需要加密。(当然,我不确定是否有办法在Android上安全地存储加密密钥,但它应该足以抵御偶然的攻击。)@Inerdia是的,我需要混淆和加密。不幸的是,模型可能会随着版本的变化而变化,保存数据非常重要,因此我最终提出了jcm建议,并制定了自己的文件格式。对于这个问题的答案是,如果您不手动映射这些类和包名,它很可能无法正确反序列化。谢谢您的回答。现在我认为这些类不会被混淆。我说得对吗?有没有办法使用ProGuard“手动”混淆这些类?对于可序列化的类,您可以手动混淆类和字段名,我只是不确定这是否有多大帮助。攻击者只需检查序列化数据,并据此猜测其结构和含义。