看 android 代码是否被混淆

13 篇文章 0 订阅

混淆 参考


4、 常见的不能混淆的android code

 

     一、android系统组件,系统组件有固定的方法被app调用。

     二、被android resource文件引用到的,名字已经固定,也不能混淆,比如自定义的View。

     三、android parcelable,需要使用android序列化。

     四、其他android官方建议不混淆的,如:android.app.backup.BackupAngentHelper,android.preference.Preference,com.android.vending.licensing.ILicensingService

     五、java序列化方法,系统序列化需要固定的方法

     六、本地方法,不能修改本地方法名

    七、annotations注释

    八、数据库驱动

    九、有些resource文件

    十、用到反射的地方

    总结:Android的四大组件,第三方jar包不能混淆

5、如何测试一个apk的代码是否被混淆过

 

    方案一:

         一、 下载dex2jar包,解压

         二、把apk包的后缀名改为.zip

         三、把apk压解压拿到classes.dex文件,并放到dex2jar所在的目录下

         四、运行命令dex2jar.exe  classes.dex

         五、下载jd-gui

         六、把jar包加载到jd.gui,查看源码,源码中的类名,方法名,变量名是否已经改变

 

   方法二:

      一、下载apktool工具

      二、运行apktool.bat d xxx.apk,把apk反编译成smali

      三、如果想要进一步查看源码,可下载smali2java

      四、使用smali文件的文件名进行分析,如果存在1个或1个以上的资源类的smali文件,就可以证明该apk没有被混淆过。如下图所示:


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值