Android资源文件混淆

通常我们说的混淆都是指代码混淆,但其实资源文件中也有很多重要的文件,为了防止我们的资源文件被别人用apktools反编译直接获取到,我们可以使用某些工具来为我们的资源文件做混淆,保证我们资源文件的相对安全.
在写这篇博客前,博主已经踩了N多的坑,为了方便更多的人,我把资源文件混淆用到的工具和步骤上传到CSDN供大家参考.

准备工作:
工具下载地址:http://download.csdn.net/detail/fancy_xty/9497154
将下载下来的工具解压,在文件夹中博主已经写好了相应的文字步骤.
注意apk是要已经签名过的apk.
1 下载好工具之后,将一个需要混淆的apk文件和对应的签名文件复制到resgurad-tools目录下

2 用记事本打开config.xml文件
将全部替换为你的包名 com.xxx(快捷键Ctrl+H)

3 跳到config.xml文件末尾

4 保存并关闭config.xml文件,然后把将resgurad-tools文件夹复制到D盘下,或者别的盘也可以
5 Win+R cmd 运行以下命令 (如果复制到别的目录,把路径对应修改即可)
cd /d D:\resgurad-tools
6 把以下命令中的input.apk 替换成你自己的 apk名字运行即可
java -jar andresguard.jar input.apk

7 打开生成的对应的文件夹

生成了两个混淆好的apk文件.
resource_mapping_app-release.txt文件主要就是记录哪些文件被混淆了,还有混淆后的文件路径之类的

到这里混淆资源文件的步骤已经全部完成,现在我们来看看混淆以后的效果,把混淆后的apk文件放到手机安装,提示安装成功,运行看看有没有什么变化, 与混淆前一模一样
最后我们用apktools反编译一下我们混淆后的apk文件
打开根目录,与混淆前的几乎没什么不一样,再打开res文件

全都变成了valuesXXX文件,还找的到你原来的values吗,因为config.xml中默认配置友盟等第三方资源文件不被混淆,所以这些资源文件还是能够看到.再往下看,res目录下除了以values开头的文件夹以外再也没有任何其他的文件夹,那我们的资源文件都到哪里去了呢,
打开目录下面的unknown文件夹下的r文件夹
我们会看到

我们的资源文件全都变成了短字符串,如果不对照mapping文件,我们自己都难以找到原来的资源文件了.

注:如果控制台报错,并且没有生成签名后的安装包,说明操作失败。仔细看看错误, 仔细检查配置是否正确,如果确定配置完全正确,看看错误信息,百度解决。
目前碰到一个 cannot run program “jarsigner”:create process=2,系统找不到指定文件的错误。
原因:可能是jdk没有安装好, 或者是环境有问题。
解决方案:找其他人要一个jarsigner.exe文件替换自己的。 或者换个电脑试下。

文中提到的工具均可以下载,网址:http://download.csdn.net/detail/fancy_xty/9497154

最后,感谢
https://github.com/shwenzhang/AndResGuard/blob/master/README.zh-cn.md
github项目提供者.
如果还需要更深层次的混淆需求或者压缩需求可以参考以下博客
http://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=208135658&idx=1&sn=ac9bd6b4927e9e82f9fa14e396183a8f#rd

最后,对文章中提到的内容有任何疑问,欢迎加群讨论:283272067

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. 不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...
  6. 一款霸榜 GitHub 的开源 Linux 资源监视器!
  7. Android(安卓)JNI编程(七)——使用AndroidStudio编写第一个JNI程序
  8. Eclipse中Android公共库的正确建立及调用方法
  9. Android热更新之AndFix就是个大坑

随机推荐

  1. Android通过调用Webservice实现天气预报
  2. 关于Android studio 使用fastjson报错的
  3. android中padding和margin的区别
  4. ScrollView常用属性汇总
  5. Android平滑移动——Scroller类研究
  6. 声波通信、声波传输原理及源代码
  7. Android Studio连接STF失效
  8. android弹出对话框
  9. Android高效加载大图、多图解决方案,有效
  10. android基础入门(一)――搭建android开发