混淆 Android 代码和资源

访客 250 0

一:代码混淆的重要性

可以这样改写: 一种方法是在app的build.gradle文件中进行配置,将minifyEnabled设置为true,并使用proguardFiles指定混淆规则文件proguard-rules.pro。

ProGuard的优点在于,它直接支持混淆,并且无需用户关注混淆规则和生成的名称。

不足之处:对于希望自定义混淆后名称的方式,该方法并不适用。

另一种方法是通过使用混淆字典来实现。

在app目录下,首先创建一个名为dic.txt的文件,用于配置混淆字符。然后,在proguard-rules.pro文件中进行以下配置即可。

请使用以下指令来指定混淆字典: - 指定字段、方法名的混淆字典:-obfuscationdictionary dic.txt - 指定类名的混淆字典:-classobfuscationdictionary dic.txt - 指定包名的混淆字典:-packageobfuscationdictionary dic.txt

优点:可以根据需要自定义混淆后的名称,以实现两款应用使用不同的混淆规则。 缺点:需要进行混淆字典的配置。 相关文章:请参考在这篇博文中,作者详细解释了Android混淆工具Proguard的使用方法和原理。他首先介绍了Proguard的作用和优势,然后逐步讲解了如何配置和运行Proguard来保护Android应用程序的代码安全性。通过使用Proguard,开发者可以有效地减小APK文件大小、提高应用程序的性能,并增加反编译难度。此外,作者还分享了一些常见问题和解决方案,帮助读者更好地理解并正确使用Proguard工具。总之,这篇博文对于想要学习并掌握Android混淆技术的开发者来说是一份非常有价值的指南。 文章链接:https://blog.si-yee.com/2019/04/12/Android%E6%B7%B7%E6%B7%86-Proguard-%E8%AF%A6%E8%A7%A3/。

 

二:资源错乱

一种方法:采用微信开源的AndResGuard工具

开放源代码地址:https://github.com/shwenzhang/AndResGuard/blob/master/README.zh-cn.md

使用方法:

在项目的Gradle文件中添加以下依赖项:

在app的gradle中添加以下配置:

```groovy
dependencies {
    classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.19'
}

andResGuard {
    mappingFile = null
    use7zip = false
    useSign = true
    keepRoot = true
    mergeDuplicatedRes = false

    whiteList = [
        // for your icon
        R.drawable.icon,
        // for fabric
        R.string.com.crashlytics.*,
        // for google-services
        R.string.google_app_id,
        R.string.gcm_defaultSenderId,
        R.string.default_web_client_id,
        R.string.ga_trackingId,
        R.string.firebase_database_url
   ]
}
```

请注意,上述代码是对原始段落进行了格式化和修复错误。 

关于白名单(whiteList)的说明:
所有通过getIdentifier方法访问的资源都必须被添加到白名单中。此外,如果布局中使用了androidx.constraintlayout.widget.Group组件,并且在app:constraint_referenced_ids属性中配置了id,那么这些id也需要加入白名单。

以下是一些相关文章的介绍:

请问您需要对整篇文章进行改写,还是只需要对其中的一段话进行改写?如果是前者,请提供具体要求和内容;如果是后者,请提供需要改写的那段话。

在这篇博文中,作者详细解释了Android混淆工具Proguard的使用方法和原理。他首先介绍了Proguard的作用和优势,然后逐步讲解了如何配置和运行Proguard来保护Android应用程序的代码安全性。通过使用Proguard,开发者可以有效地减小APK文件大小、提高应用程序的性能,并增加反编译难度。此外,作者还分享了一些常见问题和解决方案,帮助读者更好地理解并正确使用Proguard工具。总之,这篇博文对于想要学习并掌握Android混淆技术的开发者来说是一份非常有价值的指南。 文章链接:https://blog.si-yee.com/2019/04/12/Android%E6%B7%B7%E6%B7%86-Proguard-%E8%AF%A6%E8%A7%A3/

标签: 字典 资源 方式 文件

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~