zoukankan      html  css  js  c++  java
  • Android app如何加密?

    欢迎访问网易云社区,了解更多网易技术产品运营经验。


    Android App包含的内容有dex文件,so文件,res,assets资源文件。对应的加密按此内容分为三大方面:dex保护、so加密、资源保护(res, assets)。

    一、dex保护

    由于未保护的dex文件,是从java编译打包而来,破解成本低较易受到攻击。其保护措施从最基本的加壳,到函数执行体抽取、动态加载,再到当前的vmp虚拟机加固,安全逐步增强。尤其是vmp加固,更是使用了自研虚拟机解释函数体,如果指令加密替换做的好,会让破解者很难受。

    二、so加密

    so文件,由起初的段加密,发展到自定义elf结构的加密方式,能防止IDA查看函数名称,增加破解成本和难度。

    三、资源保护

    res资源文件,通常只采用混淆的方式增加逆向难度。assets资源,一般不处理。但随时H5应用日益增多,部分厂商(易盾、娜迦)有提供assets加密的功能,实现原理不详。

    除了上述三点防护外,还有防反编译、防二次打包、防调试、防模拟器、防xposed功能等。

    a) 防反编译,一般是对市面上的反编译工具(例如apktool)做对抗,利用其漏洞,致使反编译失败;

    b) 防二次打包,一般常用的是在代码里保存签名信息,启动时在native层将当前apk的签名信息与保存的签名进行比对。市面上已有破解工具,可以在常用实现方式上做些升级。

    c) 防调试,通过ptrace进程,阻止破解者再ptrace调试。

    d) 防模拟器,检测/system/bin/su和/system/xbin/su文件。

    e) 防xposed,通过检测XposedHelpers的methodCache,判断是否被hook。


    网易云安全(易盾)提供Android 应用加固服务,感兴趣的同学点击可免费试用


    相关文章:
    【推荐】 10分钟快速构建汽车零售看板

  • 相关阅读:
    url路由配置及渲染方式
    django类视图介绍与类视图装饰器
    什么是数据类型
    python代码的编写和运行
    python环境搭建
    python教程(目录)
    编程语言概念
    面向对象入门
    编程语言
    Tornado框架实现图形验证码功能
  • 原文地址:https://www.cnblogs.com/zyfd/p/10031559.html
Copyright © 2011-2022 走看看