gpt4 book ai didi

android - 在 Android 中使用 R8 和 Proguard 时如何保护数据模型类免于逆向工程?

转载 作者:行者123 更新时间:2023-11-30 04:55:32 25 4
gpt4 key购买 nike

现在,在对 android 应用程序 APK 文件进行逆向工程时,我可以在纯文本中看到数据模型类,因为我使用了 @keep 注释。如果没有注释,应用程序会崩溃,因为这些文件正在被 R8 删除。

如何通过确保在逆向工程中看不到数据模型文件来保护它们?

最佳答案

最近我遇到了同样的问题,我的特定问题是我有一套过时的 proguard 规则。请注意,2019 年 10 月 4 日,Gson 更新了他们的混淆器规则以将 R8 考虑在内。希望您必须更新它们。

您可以在 https://github.com/google/gson/blob/master/examples/android-proguard-example/proguard.cfg 找到它

# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature

# For using GSON @Expose annotation
-keepattributes *Annotation*

# Gson specific classes
-dontwarn sun.misc.**
#-keep class com.google.gson.stream.** { *; }

# Application classes that will be serialized/deserialized over Gson
-keep class com.google.gson.examples.android.model.** { <fields>; }

# Prevent proguard from stripping interface information from TypeAdapter, TypeAdapterFactory,
# JsonSerializer, JsonDeserializer instances (so they can be used in @JsonAdapter)
-keep class * implements com.google.gson.TypeAdapter
-keep class * implements com.google.gson.TypeAdapterFactory
-keep class * implements com.google.gson.JsonSerializer
-keep class * implements com.google.gson.JsonDeserializer

# Prevent R8 from leaving Data object members always null
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}

还要记得添加您的某些模型类:查看中心的规则,因为它只是一个示例,必须根据您自己的模型进行更改。

关于android - 在 Android 中使用 R8 和 Proguard 时如何保护数据模型类免于逆向工程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59267535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com