微信资源混淆使用

随着公司上市,我们app在安全方面有更高的要求,目前我们只使用了ProGuard来保护代码的安全,对资源文件的保护力度不大,但是资源文件是存在比较大的安全隐患的。那资源会有哪些安全隐患呢?

通过运行下面命令就能进行反编译;

apktool d -s xxx.apk

                             

通过上图中的目录结构,我们可以看到这个应用的资源文件大概有:anim、drawable、layout、menu、values等等,我们可以通过修改这些文件夹下的资源文件,并通过apktool进行回编译(apktool b 命令)就能创建一个经过修改过的APK应用,例如我们修改下图中红色横线所标示的layout文件,就能往原有APK的支付信息(根据资源名称猜测这个layout的意图)中添加一些我们自己的东西;

 

网上看,微信和美团在资源保护方面都有自己的实现。对比了这两家资源混淆实现方案,发现微信的方案不会影响编译流程,更加简单。所以决定在我们的app中使用微信的资源混淆。

微信资源混淆:

微信资源混淆有两种方案:https://my.oschina.net/bugly/blog/536064

(1)使用jar包

       Java -jar AndResGuard-cli-1.1.16.jar oldapk -config config.xml -out res_proguard -signature release.keystore testres testres testres

      

      --config,指定具体config文件的路径;
      --out,指定生成文件具体的输出路径,其中混淆的mapping会在输出文件夹中以resource_mapping_(输入apk的名称).txt命名。
      --signature,指定签名信息,若在命令行设置会覆盖config.xml中的签名信息,顺序为签名文件路径、storepass、keypass、storealias。  

      --mapping, 指定旧的mapping文件,保证同一资源文件在不同版本混淆后的名称保持一致。若在命令行设置会覆盖config.xml中的信息。
      --7zip,指定7zip的路径,若已添加到环境变量则不需要设置。此处必须为全路径,例如linux: /shwenzhang/tool/7za,Windows需要加上.exe 结尾。
      --zipalign,指定zipalign的路径,若已添加到环境变量则不需要设置。此处必须为全路径,例如linux: /shwenzhang/sdk/tools/zipalign,Windows需要加上.exe结尾。
      --repackage,如果想要出渠道包等需求,我们可能希望利用7zip直接重打包安装包。
 

     如何写config配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<resproguard>
    <!--defaut property to set  -->
    <issue id="property">
        <!--whether use 7zip to repackage the signed apk, you must install the 7z command line version in window -->
        <!--sudo apt-get install p7zip-full in linux -->
        <!--and you must write the sign data fist, and i found that if we use linux, we can get a better result -->
        <seventzip value="false"/>
        <!--the sign data file name in your apk, def
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值