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

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 应用加固服务,感兴趣的同学点击可免费试用

相关文章:
【推荐】 从加班论客户端开发中的建模
【推荐】 有道云笔记跨平台富文本编辑器的技术演进
【推荐】 如何实现360度的手游安全防护?网易云易盾专家分享最新实践

Android app如何加密?的更多相关文章

  1. wemall app商城源码android开发MD5加密工具类

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供 ...

  2. [转]设计一款Android App总结

    开发工具的选择 开发工具我将选用Android Studio,它是Google官方指定的Android开发工具,目前是1.2.2稳定版,1.3的预览版也已经发布了.Android Studio的优点就 ...

  3. How To Use Proguard in Android APP

    在Android开发完成即将发布给用户使用时,还有最后重要的一步:代码混淆,这时候,Proguard就派上用场了,大家谁也不想辛辛苦苦写的代码太容易被别人反编译过来,而Proguard就是帮我们实现这 ...

  4. 【转载】Android app 安全测试调研及执行

    本文来源于:http://testerhome.com/topics/2209 一.通过在线工具进行测试 1.腾讯金刚审计系统http://service.security.tencent.com 优 ...

  5. Android开发周报:Android L默认加密用户数据

    Android开发周报:Android L默认加密用户数据 新闻 <iCloud前车之鉴,Android L默认开启加密功能>:iCloud 艳照风波再起,第二波女星照片流出,大量女星的裸 ...

  6. wemall doraemon中Android app商城系统工具集合类,包含各种程序中用到的静态方法

    wemall doraemon中Android app商城系统工具集合类,包含各种程序中用到的静态方法,可用于其他商城或者系统的编程参考 package cn.zzu.edu.wemall.utils ...

  7. 【Android开发】如何设计开发一款Android App

    本文从开发工具选择,UI界面.图片模块.网络模块.数据库产品选择.性能.安全性等几个方面讲述了如果开发一个Android应用.现在整理出来分享给广大的Android程序员. 开发工具的选择 开发工具我 ...

  8. Android App的破解技术有哪些?如何防止反编译?

     现在最流行的App破解技术大多是基于一定相关技术的基础:如一定阅读Java代码的能力.有一些Android基础.会使用eclipse的一些Android调试的相关工具以及了解一些smali的语法规范 ...

  9. 菜鸟 学注册机编写之 Android app

    0x00前言 环境及工具: 手机    Nexus 4(己root) 系统版本    Android 5.01 工具    AndroidKiller_V1.2 关于Android平台app注册机的编 ...

随机推荐

  1. XModem协议

    XModem协议介绍: XModem是一种在串口通信中广泛使用的异步文件传输协议,分为XModem和1k-XModem协议两种,前者使用128字节的数据块,后者使用1024字节即1k字节的数据块. 一 ...

  2. vue-cli中的babel配置文件.babelrc详解

    本文介绍vue-cli脚手架工具根目录的babelrc配置文件 介绍 es6特性浏览器还没有全部支持,但是使用es6是大势所趋,所以babel应运而生,用来将es6代码转换成浏览器能够识别的代码 ba ...

  3. 一个电脑同时运行 64bit 和 32bit 的eclipse 如何匹配 jdk环境

    一个电脑同时运行 64bit 和 32bit   的  eclipse 如何匹配 jdk环境 1 eclipse 分 64bit 和 32bit 两种.  64bit的eclipse 只能搭配 64b ...

  4. Linux日志文件查看和搜查命令(错误日志排查定位)

    一.cat命令 cat 命令用于连接文件并打印到标准输出设备上,主要用来查看文件内容,创建文件,文件合并,追加文件内容等功能. 语法格式 cat [-AbeEnstTuv] fileName 参数说明 ...

  5. javascript第四节

    闭包: 块级作用域: 私有变量:

  6. SerialPort缓冲区

    SerialPort缓冲区中有:接收缓冲区,发送缓冲区,输入缓冲区,输出缓冲区,传输缓冲区. 例如: 串口属性:BytesToRead(获取接收缓冲区中数据的字节数)--这里提到的是“接收缓冲区” 串 ...

  7. 【282】◀▶ arcpy.mapping 常用函数说明

    arcpy.mapping 教程入门 arcpy.mapping 指导原则 按字母顺序排序的 arcpy.mpping 类列表 按字母顺序排序的 arcpy.mpping 函数列表 按字母顺序排序的 ...

  8. 利用Sphinx编写文档

    利用Sphinx编写文档 1.Sphinx简介和使用理由 ================= Sphinx是一个用Python语言编写而成的文档编写工具.用Sphinx编写文档的时候,用户只需要编写符 ...

  9. 新浪微博logo已经去掉了“新浪”二字

    如果有一天我能做出一个产品,它的命名就以我所在的行业命名该多好啊,可惜那只是一个梦.但这样的梦新浪微博却实现了,今天我登陆新浪微博的时候发 现logo已经去掉了“新浪”二字,我开始还以为我自己的电脑网 ...

  10. consul watch

    consul watch -type key -key mhc ./key_handler.py [root@mhc consul]# cat key_handler.py #!/usr/bin/py ...