Android Jar包混淆全攻略
5星 · 超过95%的资源 需积分: 10 54 浏览量
更新于2024-09-11
1
收藏 300KB DOC 举报
"这篇文档详细介绍了如何在Android项目中对jar包进行混淆,包括使用ProGuard工具和配置混淆规则。"
在Android开发中,为了提高应用的安全性,开发者通常会进行代码混淆,使得逆向工程变得困难。对于jar包,混淆同样重要。以下是关于`android jar包混淆`的详细步骤和知识点:
1. **Proguard.pro文件**:混淆jar包的规则通常写在一个名为`proguard.pro`的文件中。这个文件定义了混淆过程中应该遵循的规则,以决定哪些代码应该被保留、哪些应该被删除或重命名。
2. **获取Proguard配置文件**:虽然原始的`proguard.pro`文件可能不易获得,但可以在Android SDK的`tools/proguard/examples`目录下找到示例文件,可以作为基础来创建自己的混淆规则。
3. **Proguard图形界面工具**:Android SDK还提供了一个名为`proguardgui`的图形界面工具,位于`tools/proguard/bin`目录下,通过它,用户可以更直观地加载和编辑混淆规则。
4. **混淆步骤**:
- 首先,你需要指定需要混淆的jar包(`-injars`参数),例如`-injars alibgis_in.jar`。
- 然后,设定混淆后的输出jar包(`-outjars`参数),如`-outjars alibgis_out.jar`。
- 接着,定义混淆规则,例如保留特定类、方法或属性,避免优化某些代码等。
- 最后,运行Proguard工具,执行混淆过程。
5. **混淆规则详解**:
- `-dontskipnonpubliclibraryclassmembers`:不跳过非公共库类成员,意味着所有成员都将被混淆。
- `-dontshrink` 和 `-dontoptimize`:禁止代码缩小和优化,这可能用于防止意外的代码移除或修改。
- `-optimizations`:定义不使用的优化,例如避免字段、类合并等可能导致问题的优化。
- `-optimizationpasses`:指定优化次数,这里设为5次。
- `-useuniqueclassmembernames`:确保类成员使用唯一的名称。
- `-keeppackagenames`:保持原有的包名,不进行混淆。
- `-repackageclasses`:将重命名的类文件放入指定的单一包中。
- `-keepattributes`:保留特定的类属性,如异常信息、内部类等。
- `-keepparameternames`:保持参数名称,方便调试。
- `-dontpreverify`:禁止预验证,通常用于早期的Android版本。
- `-dontnote` 和 `-dontwarn`:忽略特定的警告信息。
- `-keep` 和 `-keepclassmembers`:保留指定的类和类成员,允许在混淆过程中保留它们。
混淆过程中的关键是根据项目的具体需求调整这些规则,确保混淆不会破坏jar包的功能,同时尽可能提高代码的安全性。在完成混淆后,应测试混淆后的jar包以确保其在目标环境中的正确运行。
2017-12-28 上传
2020-08-31 上传
112 浏览量
2019-07-01 上传
347 浏览量
326 浏览量
clunyes
- 粉丝: 0
- 资源: 13
最新资源
- 探索AVL树算法:以Faculdade Senac Porto Alegre实践为例
- 小学语文教学新工具:创新黑板设计解析
- Minecraft服务器管理新插件ServerForms发布
- MATLAB基因网络模型代码实现及开源分享
- 全方位技术项目源码合集:***报名系统
- Phalcon框架实战案例分析
- MATLAB与Python结合实现短期电力负荷预测的DAT300项目解析
- 市场营销教学专用查询装置设计方案
- 随身WiFi高通210 MS8909设备的Root引导文件破解攻略
- 实现服务器端级联:modella与leveldb适配器的应用
- Oracle Linux安装必备依赖包清单与步骤
- Shyer项目:寻找喜欢的聊天伙伴
- MEAN堆栈入门项目: postings-app
- 在线WPS办公功能全接触及应用示例
- 新型带储订盒订书机设计文档
- VB多媒体教学演示系统源代码及技术项目资源大全