Android Security
文章平均质量分 87
分享,探索Android上的各种攻防,安全技术。
Omni-Space
专注Android, Mobile Security and AI
展开
-
【译】Android中的安全数据-初始化向量
目录初始化向量 默认值 自订值 空值 随机加密 使用范例 下一步是什么 安全提示初始化向量初始化向量是加密原语的固定大小输入。通常要求它是随机或伪随机的。IV的重点是允许使用相同的密钥来加密几个不同的消息。在大多数提供程序(包括提供程序和提供程序)中,块算法模式(如CBC中的AES)都是必需的。AndroidKeyStoreBC在API 18上,BC如果在解密过程中未指定IV,则使用默认Java的提供程序密钥Cipher将落入IllegalArgumentExce..翻译 2020-07-02 04:48:38 · 1153 阅读 · 0 评论 -
【译】在Android中保护数据-加密大数据
目录按键大小 该怎么办 默认提供者 对称键 按键包装 使用范例 下一步是什么 安全提示按键大小到目前为止,我们已经尝试加密小的“ Hello World”消息。让我们尝试加密更大的一个,然后再加密250个符号。糟糕,IllegalBlockSizeException:RSA原为没有设计处理大量数据。您只能处理有限长度的消息,这取决于密钥大小。密钥越大,则可以加密越大的消息。请注意,使用大密钥会增加加密时间,并可能影...翻译 2020-07-02 04:46:00 · 485 阅读 · 0 评论 -
【译】Android中的安全数据— Android中的加密(第2部分)
目录锁屏 选择一个钥匙 密钥存储 密钥生成 密钥管理 加密与解密 使用范例 下一步是什么 安全提示锁屏如果要保护数据,请保护设备。为了更加安全,在提供对任何应用程序功能的访问权限之前,我们可以要求用户设置其设备的锁屏(如果尚未设置)。另外,我们将在本系列的稍后部分中介绍的其他一些功能(例如指纹)也需要设置锁定屏幕。还有一项特殊的系统服务-KeyguardManager,可以帮助我们完成此任务。isDeviceSecure方法-检查设备是否用PIN,码...翻译 2020-07-02 04:43:22 · 619 阅读 · 0 评论 -
【译】Android中的安全数据— Android中的加密(第1部分)
目录Java密码体系结构 Android Key Store 样例项目 下一步是什么 安全提示Java密码体系结构Android建立在Java密码体系结构(JCA)的基础上,该体系结构提供了用于数字签名,证书,加密,密钥生成和管理的API。KeyGenerator—提供用于生成对称加密密钥的公共API。KeyPairGenerator—一个引擎类,能够使用初始化时所使用的算法来生成私有密钥及其相关的公共密钥。Secre...翻译 2020-07-02 04:39:06 · 548 阅读 · 0 评论 -
【译】KINIBI TEE: TRUSTED APPLICATION EXPLOITATION
一段时间以来,Android设备和许多嵌入式系统都使用了受信任的执行环境(TEE)来托管一些安全功能(如硬件加密/密钥,DRM,移动支付,生物识别等)。在ARM平台上,TEE是小型操作系统,它们使用ARM TrustZone技术将其执行与标准操作系统(例如Linux)隔离开。TEE操作系统比Rich Execution Environment(智能手机中的REE,Android)简单得多,并...翻译 2020-03-31 01:29:05 · 1265 阅读 · 0 评论 -
BINDER SECCTX PATCH ANALYSIS
在2019年初,Binder内核模块中添加了一项新功能。此修补程序允许在Binder事务中发送调用方SElinux上下文。该功能实际上是CVE-2019-2023的修复程序。此漏洞与不正确使用getpidcon函数有关,从而导致ACL绕过。本文研究此修补程序的详细信息及其对安全性的影响。getpidcon ACL绕过关于getpidcon()使用的问题在Android中由来已久。...翻译 2020-03-31 01:22:16 · 734 阅读 · 0 评论 -
【译】Inside SafetyNet - part 3
自从我上一篇关于Android的SafetyNet的博客文章以来,已经过去了8个月。在那篇文章中,我描述了该系统的2015年末版本(版本代码2495818)。如预期的那样,此后进行了几次更新。我认为我应该在本系列中再写一篇,可能是最后一篇。我将简要介绍该版本与上一版的区别10000700;这是倒数第二个版本。我看到的最新版本是10000801,但是功能上没有很多差异。有关SafetyNet系统...翻译 2020-01-02 06:33:26 · 1339 阅读 · 0 评论 -
Android Logcat Security
0x00 科普development version :开发版,正在开发内测的版本,会有许多调试日志。release version : 发行版,签名后开发给用户的正式版本,日志量较少。android.util.Log:提供了五种输出日志的方法Log.e(), Log.w(), Log.i(), Log.d(), Log.v()ERROR, WARN, INFO, DEBU转载 2016-03-29 14:27:42 · 906 阅读 · 0 评论 -
Android Broadcast Security
0x00 科普Broadcast Recevier 广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播是源自于系统代码的──比如,通知时区改变、电池电量低、拍摄了一张照片或者用户改变了语言选项。应用程序也可以进行广播──比如说,通知其它应用程序一些数据下载完成并处于可用状态。 应用程序可以拥有任意数量的广播接收器以对所有它感兴趣的通知信息予以响应。所有的接收器均继承自B转载 2016-03-29 14:29:55 · 840 阅读 · 0 评论 -
Android Activtity Security
0x00 科普Android每一个Application都是由Activity、Service、content Provider和Broadcast Receiver等Android的基本组件所组成,其中Activity是实现应用程序的主体,它承担了大量的显示和交互工作,甚至可以理解为一个"界面"就是一个Activity。Activity是为用户操作而展示的可视化用户界面。比如说,一个转载 2016-03-29 14:31:51 · 883 阅读 · 0 评论 -
Android Content Provider Security
0x00 科普内容提供器用来存放和获取数据并使这些数据可以被所有的应用程序访问。它们是应用程序之间共享数据的唯一方法;不包括所有Android软件包都能访问的公共储存区域。Android为常见数据类型(音频,视频,图像,个人联系人信息,等等)装载了很多内容提供器。你可以看到在android.provider包里列举了一些。你还能查询这些提供器包含了什么数据。当然,对某些敏感内容提供器,必须转载 2016-03-29 14:32:58 · 613 阅读 · 0 评论 -
Android Service Security
0x00 科普一个Service是没有界面且能长时间运行于后台的应用组件.其它应用的组件可以启动一个服务运行于后台,即使用户切换到另一个应用也会继续运行.另外,一个组件可以绑定到一个service来进行交互,即使这个交互是进程间通讯也没问题.例如,一个service可能处理网络事物,播放音乐,执行文件I/O,或与一个内容提供者交互,所有这些都在后台进行.0x01 知识要点生命周转载 2016-03-29 14:34:20 · 1149 阅读 · 0 评论 -
深入探讨ROP 载荷分析
0x00 简介Exploit-db上看到的感觉还不错,所以就翻译一下,原文题目为《Deep Dive into ROP Payload Analysis》,作者Sudeep Singh。这篇文章的主要目的是介绍漏洞利用中的ROP载荷的分析技术,同时也深入分析一种ROP缓解技术stack pivot检测技术,该技术目前被用于防护软件中。通过分析之前发现的两个攻击样本(CVE-2010转载 2016-03-29 14:39:29 · 1705 阅读 · 0 评论 -
聊一聊Android 6.0的运行时权限
Android 6.0,代号棉花糖,自发布伊始,其主要的特征运行时权限就很受关注。因为这一特征不仅改善了用户对于应用的使用体验,还使得应用开发者在实践开发中需要做出改变。没有深入了解运行时权限的开发者通常会有很多疑问,比如什么是运行时权限,哪些是运行时的权限,我的应用是不是会在6.0系统上各种崩溃呢,如何才能支持运行时权限机制呢。本文讲尝试回答这一些问题,希望读者阅读完成之后,都能找到较为完美转载 2016-03-06 01:33:12 · 590 阅读 · 0 评论 -
Android 安全专项-Xposed 劫持用户名密码实践
Xposed是个强大的工具,可以hook所有的java方法,下面用Xposed来截获App的用户名密码,默认你已经安装好Xposed环境了参考文章:http://blog.csdn.net/beyond296089727/article/details/45766297AS中创建带有Login界面的项目然后一路Next,创建成功后,运行,App界面如下:为了使用转载 2016-03-06 14:03:57 · 1304 阅读 · 0 评论 -
一步一步学ROP之Android ARM 32位篇
0x00 序ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术,可以用来绕过现代操作系统的各种通用防御(比如内存不可执行和代码签名等)。之前我们主要讨论了linux上的ROP攻击:一步一步学ROP之linux_x86篇 http://drops.wooyun.org/tips/6597一步一步学ROP之linux_x64转载 2016-03-06 16:32:42 · 1408 阅读 · 1 评论 -
安卓代码跟踪方式学习笔记
一、代码跟踪的介绍&使用工具代码跟踪常用于调试程序中,跟踪并了解程序的执行轨迹和执行逻辑。这样来说,对Java这样的高级语言来说,我们容易理解也容易调试。但是像一些低级语言,例如ASM、Smali来说难度就很大了,因为反汇编这样的语言,我们需要一次性记住很多乱七八糟的关键词才能成功,因而代码跟踪的技术就诞生了,并且在一些大程序中的运用更为广泛,同时也是现在逆向一些大而复杂的Android转载 2016-03-06 17:00:33 · 834 阅读 · 0 评论 -
也来看看Android的ART运行时
之前因为需要,研究了一下ART的相关源码,也做了一些记录与总结,现在重新整理了一下与大家共同讨论和交流一下。0x00 概述ART是Android平台上的新一代运行时,用来代替dalvik。它主要采用了AOT的方法,在apk安装的时候将dalvikbytecode一次性编译成arm本地指令(但是这种AOT与c语言等还是有本质不同的,还是需要虚拟机的环境支持),这样在运行的时候就无需进行任转载 2016-03-06 17:04:01 · 2104 阅读 · 0 评论 -
一步一步学ROP之gadgets和2free篇
原文: http://drops.wooyun.org/binary/106380x00序ROP的全称为Return-oriented programming(返回导向编程),这是一种高级的内存攻击技术,可以用来绕过现代操作系统的各种通用防御(比如内存不可执行和代码签名等)。上次我们主要讨论了linux_x64的ROP攻击。一步一步学ROP之linux_x86篇http://d转载 2016-03-06 17:06:08 · 2486 阅读 · 0 评论 -
安卓APP动态调试技术
0x00 前言随着智能手机的普及,移动APP已经贯穿到人们生活的各个领域。越来越多的人甚至已经对这些APP应用产生了依赖,包括手机QQ、游戏、导航地图、微博、微信、手机支付等等,尤其2015年春节期间各大厂商推出的抢红包活动,一时让移动支付应用变得异常火热。然后移动安全问题接憧而至,主要分为移动断网络安全和客户端应用安全。目前移动APP软件保护方面还处于初级阶段,许多厂商对APP安全认转载 2016-03-06 17:08:29 · 1353 阅读 · 0 评论 -
Android SO逆向1-ARM介绍
原文: http://drops.wooyun.org/mobile/100090x00 概述把之前学习SO逆向的笔记分享出来,内容比较简单,大牛就可以略过了。0x01 ARM寄存器1.1.通用寄存器1.未分组寄存器:R0~R72.分组寄存器:R8~812R13:SP,常用作堆栈指针,始终指向堆栈的顶部,当一个数据(32位)推入堆栈时,SP(R13的值减4)向下转载 2016-03-06 17:10:53 · 2114 阅读 · 0 评论 -
Android SO逆向2-实例分析
[TOC]这篇文章主要介绍几个简单的例子,来逆向分析so,当然有些破解可以在smali里直接修改,但是这里均采用逆向so的方式。0x01 ARM—HEX转换1.将ARM指令转换为Hex时,可以使用工具Arm_Asm,如下图:2.可以根据ARM参考手册,手动转换。比如add的指令格式如下:当执行add r0,#1时,Rdn为0,imm8为1,所以二进制为00110000转载 2016-03-06 17:17:42 · 3048 阅读 · 0 评论 -
Android Activtity Security
原文地址: http://drops.wooyun.org/tips/39360x00 科普Android每一个Application都是由Activity、Service、content Provider和Broadcast Receiver等Android的基本组件所组成,其中Activity是实现应用程序的主体,它承担了大量的显示和交互工作,甚至可以理解为一个"界面"就是一个Ac转载 2016-03-06 17:20:38 · 870 阅读 · 0 评论 -
Android Hook (1) Dexposed原理
原文地址:http://www.zhaoxiaodan.com/android/Android-Hook(1)-dexposed%E5%8E%9F%E7%90%86.htmldexposed 这个项目相当不错, 之前就想着怎么动态替换jvm中的代码, 一直没有思路; 现在好好学习一下准备源码库因为dexposed其实是用了dvm和art调用class的方式来做的, 而dvm和art的头转载 2016-03-06 17:22:38 · 565 阅读 · 0 评论 -
Android Hook (2) Java2java
原文地址:http://www.zhaoxiaodan.com/android/Android-Hook(2)-java2java.html之前学习了如何做一个简单android的函数勾子, 而这个勾子是用native 的函数去hook java函数, 现在来学习如何封装让他可以实现java hook java不过不管怎么说, 这里已经不算是原理了, 因为原理就是改accessFlags并转载 2016-03-06 17:25:43 · 426 阅读 · 0 评论 -
从Android运行时出发,打造我们的脱壳神器
原文地址: http://drops.wooyun.org/tips/93350x00 前言之前对Android的两个运行时的源码做了一些研究,又加上如火如荼的Android加固服务的兴起,便产生了打造一个用于脱壳的运行时,于是便有了DexHunter的诞生(源码:https://github.com/zyq8709/DexHunter/)。今天,我就通过这篇小文聊聊我的一些简单的转载 2016-03-06 17:50:19 · 2146 阅读 · 0 评论 -
利用xposed绕过安卓SSL证书的强校验
什么是SSL pinninghttps协议验证服务器身份的方式通常有三种,一是根据浏览器或者说操作系统(Android)自带的证书链;二是使用自签名证书;三是自签名证书加上SSL Pinning特性。第一种需要到知名证书机构购买证书,需要一定预算。第二种多见于内网使用。第三种在是安全性最高的,但是需要浏览器插件或客户端使用了SSL Pinning特性。Android应用程序在使用https转载 2016-03-06 17:54:57 · 6328 阅读 · 0 评论 -
Xposed如何实现类中函数的调用
0x01前言之前学习了Xposed如何实现不重新打包APP的条件下,实现函数的Hook,在使用过程中,除了方法的hook,比如我要实现某些函数额调用,不同类中的函数和Native方法的调用。0x02 测试环境1.待测试的APP,这里写了一个测试APP,Mainactivity实现界面,定义两个函数:public String test1()Public S转载 2016-03-07 06:41:26 · 20014 阅读 · 1 评论 -
android中SO文件动态调试
0X00 前言为了增加APK文件的破解难度,很多比较重要的功能都是通过native实现,与反编译不同的是,java的伪代码可以很清楚的得到程序的逻辑关系,但是so文件反编译得到的是汇编代码,使用ida这样的神器可以得到c的伪代码。使用ida实现so的动态调试,可以在关键地方下断点,对于一些变换,比如有的时候输入的内容与经过一些列的变换后的结果比较,这个时候我们不需要关心中间的变换过程,转载 2016-03-07 06:43:43 · 2779 阅读 · 0 评论 -
Android应用安全之Content Provider安全
android平台提供了Content Provider,将一个应用程序的指定数据集提供给其它应用程序。这些数据可以存储在文件系统、SQLite数据库中,或以任何其它合理的方式存储。其他应用可以通过ContentResolver类从该内容提供者中获取或存入数据。Content Provider通过URI(统一资源定位符)来访问数据,URI可以理解为访问数据的唯一地址。限制app对敏感Con转载 2016-03-07 15:32:05 · 2342 阅读 · 0 评论 -
管家病毒查杀模块逆向分析
本文研究的是*管家2.8—3.6版本的杀毒模块功能实现。众所周知,杀毒软件查杀病毒分为主动查杀和被动查杀两种方式。*管家的主动查杀包括快速查收和全盘查杀,而快速查杀和全盘查杀都使用了本地查杀技术和云查杀技术。快速查杀 快速查杀首先获取系统安装的所有应用。创建"/data/data/com.anguanjia.safe/classes.dex"文件,将待扫描的apk解压,获取包中的转载 2016-03-07 15:34:46 · 1021 阅读 · 0 评论 -
Android libcutils库中整数溢出导致的堆破坏漏洞的发现与利用
阅读本文之前,您最好理解Android中的Binder机制、用于图形系统的BufferQueue原理、堆管理器je_malloc的基本原理。此文介绍了如何利用libcutils库中的堆破坏漏洞获得system_server权限,此漏洞是研究Android图形子系统时发现的,对应的CVE号为CVE-2015-1474和CVE-2015-1528。1.漏洞代码的位置本文次涉及的漏洞位于创建转载 2016-03-07 15:41:57 · 1269 阅读 · 0 评论 -
“蜥蜴之尾”——长老木马四代分析报告
随着移动端安全软件对APK的查杀能力趋于成熟以及Google对Android安全性重视的提高,病毒与反病毒的主战场已逐渐从APP层扩展到Linux底层。而且病毒作者也开始把PC端的病毒自我保护手段运用到移动端上,在移动端大量使用了免杀、加密、隐藏、反虚拟机等传统PC端病毒自我保护技术。但是之前一直还未出现过通过感染技术实现自我保护的病毒,此次,360安全团队首次发现了在Android系统中通过感染转载 2016-03-07 15:46:13 · 1972 阅读 · 0 评论 -
利用Cydia Substrate进行Android HOOK (1)
Cydia Substrate是一个代码修改平台。它可以修改任何主进程的代码,不管是用Java还是C/C++(native代码)编写的。而Xposed只支持HOOK app_process中的java函数,因此Cydia Substrate是一款强大而实用的HOOK工具。官网地址:http://www.cydiasubstrate.com/Demo地址:https://github.com转载 2016-03-07 15:49:21 · 1440 阅读 · 0 评论 -
利用Cydia Substrate进行Android HOOK(2)
在前面关于Substrate的介绍中我们已经讲了用Substrate hook java代码,现在我们讲下怎么用它hook native代码。hook native代码我们需要编写Substrate extensions,它跟native库一样被视作标准的android包的一部分, 将作为一个共享库被编译 (使用复合扩展名.cy.so)。一、相关API(1)MSConfig转载 2016-03-07 15:51:12 · 1441 阅读 · 0 评论 -
Apk去签名校验详解
某些apk为了防止重打包,使用了签名校验。所以在破解的时候我们需要破解签名校验。在定位签名校验位置时常用的关键词有sign,signature,checkSign,signCheck,getPackageManager,getPackageInfo,verify,same等。 java层签名校验代码示例: 1 //原签名信息 2 private static final Str转载 2016-03-07 16:09:24 · 25001 阅读 · 0 评论 -
“逃离大厦”游戏的破解
我们要破解一个游戏,首先要对该游戏有所了解,确定破解目标,发掘破解途径。因此,我们先安装该游戏并运行,出现如下界面: 这是一个Berry king游戏的推广广告,告诉我们安装该游戏可获得200金币。关掉该界面,进入游戏商店,我们可以在这里通过金币购买“提示”、“建议”、“大师”和“时间”,如下左图,左上角显示的是游戏者拥有的金币数,初始金币为10转载 2016-03-07 16:14:38 · 576 阅读 · 0 评论 -
Android应用与系统安全防御
Android应用安全防御Android应用的安全隐患包括代码安全、数据安全、组件安全、WebView等几个方面。1. 代码安全代码安全主要是指Android apk容易被反编译,从而面临软件破解,内购破解,软件逻辑修改,插入恶意代码,替换广告商ID等风险。我们可以采用以下方法对apk进行保护:1.1 代码混淆 代码混淆可以在一定程度上增加apk逆向分析的难度。Android转载 2016-03-07 16:17:23 · 1076 阅读 · 0 评论 -
ZjDroid工具介绍及脱壳详细示例
前提条件:1、Root手机一部2、需要通过Xposed installer(http://dl.xposed.info/latest.apk)安装Xposed Framework;一、ZjDroid工具介绍ZjDroid是基于Xposed Framewrok的动态逆向分析模块,逆向分析者可以通过ZjDroid完成以下工作:DEX文件的内存dump基于Dalvik关键指针的内转载 2016-03-07 16:18:46 · 996 阅读 · 0 评论 -
阿里巴巴发布《2015移动安全漏洞年报》
目录[-]第一章 2015年应用漏洞1.1 业界公开的应用漏洞类型和分布1.2 移动应用漏洞分析1.3 典型应用漏洞1.4 应用安全事件1.5 应用漏洞的发展趋势第二章 2015年Android系统漏洞2.1 Android系统漏洞综述2.2 典型Android系统漏洞2.3 Android安全生态和漏洞展望第三章 2015年iOS系统漏洞3.1 iOS系统漏洞综述3.2 典型iOS系统漏转载 2016-03-07 17:54:42 · 606 阅读 · 0 评论