前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >反编译完这些 app ,到底谁的安全等级更能打?

反编译完这些 app ,到底谁的安全等级更能打?

作者头像
陈宇明
发布2020-12-16 11:17:53
8130
发布2020-12-16 11:17:53
举报
文章被收录于专栏:设计模式

码个蛋(codeegg) 第 1075 次推文

作者:星星y

链接:https://www.jianshu.com/p/052ce81ac953

前言

在Android开发中,apk的安全性是一个重要的关注点。每个app应用对于自身的数据和代码安全做了对应的保护。为了调研和学习市场上各类app它们的安全策略,此次反编译了30款apk来调研学习,加入debuggable和networkSecurityConfig属性(加入Charles证书),回编并签名apk,然后启动它,通过日志,抓包,界面展示来看看不同应用的安全策略。同时针对这些应用用了一个粗糙的分数排名(非专业评分,大家看看就好)。

各参数等级与分数说明

反编译Level
  • L1: 资源无混淆,使用原始ApkTool即可实现反编译,回编成apk。
  • L2(5分): 资源混淆,需要修改ApkTool源码,可通过ApkCrack一键完成编译,添加证书,debug信息,回编签名
  • L3(10分): 资源混淆,ApkCrack无法回编,需要继续修改ApkTool源码适配,需要修改异常命名属性名,文件名,异常图片。最终可以回编成apk
  • L4(20分): 可以反编译,无法回编
启动level
  • L1: 正常启动
  • L2(20分): 无法启动,卡住或闪退
http请求Level
  • L1: http请求,抓包简单
  • L2(5分): https请求,无签名,可以修改请求
  • L3(10分): https请求,有参数签名校验,可以查看请求,无法修改
  • L4(15分): https请求,签名校验,响应加密
  • L5(20分): 无法抓取请求
登录Level
  • L1: 可以登录
  • L2(20分): 无法登录
主界面Level
  • L1: 能进入主界面
  • L2(20分): 不能

效果图

抓包

拼多多

ApkCrack反编译过程

ApkCrackUI一键破解

相关日志
apk安全评分

"-"表示当前最高等级,应用无法启动,默认最高等级。

上面app的排名非权威,非正式,非正确,大家且不必认真对待。

小结

不同类型的应用关注的安全等级与安全策略可能会有所不同,大致可能会有以下一些情况:

  • 请求无签名,可以修改参数,安全等级较低,新闻类应用
  • 关键数据加密,比如腾讯漫画只加密类章节数据
  • 主界面有数据,提示非官方应用(拼多多)
  • 主界面有数据,但是无法登录
  • 主界面提示网络错误,签名校验失败(饿了么)
  • 无法进入主界面,可能卡在闪屏页,可能应用闪退。
  • 应用加固,反编译后无法启动,如自如,我爱我家,贝壳,这类应用数据(房源)都很重要,所以要加固代码。

Apk代码保护

反编译完那些apk发现,不是所有的apk会选择最极致的防破解方式(代码混淆,资源混淆,加固等)。为了兼容性与性能,大部分应用不会选择加固方式保护代码。那么代码保护有哪些套路呢?根据上面的app,会有下面一些方案(可以叠加使用)。

  • 代码混淆(gradle配置minifyEnabled可实现,大部分应用都会实现)
  • 资源混淆(使用AndResGuard之类资源混淆库可实现,这类app用ApkTool是无法实现的,回编apk时会报No resource identifier found for attribute,不过可通过ApkCrack回编)
  • 添加一些不符合规则的文件名,或者错误头的文件(因为apktool回编是通过aapt或者aapt2实现的,不合规的文件命名和文件导致资源编译失败,这些app破解时可能需要继续针对性的修改ApkTool源码,手动或者代码方式处理这些文件和文件名,汇编重新签名,破解时长和难度较高)
  • 签名校验。因为原始的apk签名无法获取,反编译后的apk只能通过自己新生成的签名文件签名。所以,签名信息校验变得至关重要,它会帮你识别官方apk与第三方破解(有可能是恶意)的apk。在启动时做签名校验,可以更具校验结果选择不同的安全策略(闪退,安全模式,文字提醒,网络请求失败等)。
  • 应用加固。如果你的app数据极为重要(独家信息),不能完全通过其他方式比如服务端,或者上面三种方式保证数据安全,最稳妥的就是加固应用了。可以选择阿里(聚安全),腾讯(乐固),360(加固宝)等方式加固自身的应用。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码个蛋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 各参数等级与分数说明
    • 反编译Level
      • 启动level
        • http请求Level
          • 登录Level
            • 主界面Level
            • 效果图
              • 抓包
                • ApkCrack反编译过程
                  • 相关日志
                    • apk安全评分
                    • 小结
                    • Apk代码保护
                    相关产品与服务
                    移动应用安全
                    移动应用安全(Mobile Application Security,MS)针对移动应用普遍存在的破解、篡改、重打包等各类安全风险,提供Android应用加固、iOS源码混淆、SDK加固等多种加固技术,拥有丰富的行业经验,已服务于金融、互联网、车联网、物联网,运营商等多个行业。稳定、简单、有效,让移动安全建设不再是一种负担。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档