LocalBroadcastManager 的实现原理分析

点评:在Android App漏洞中有一项是隐式Intent调用导致的敏感信息泄露,原理在于应用在发送Intent时没有指定接收的组件,这样系统中任意应用只要设置了相同的intent-filter都接收到这个Intent的数据,导致数据泄露。本文作者提到的LocalBroadcastManager在用于应用内通信时发送的Intent只能由应用内部组件接收,所以安全性更好,效率更高,作者把原理分析的很清楚,推荐大家阅读。

对 LocalBroadcastManager 大家应该都不陌生,相对 BroadcastReceiver,它只能用于应用内通信,安全性更好,同时拥有更高的运行效率。也是需要发送应用内广播时的官方推荐。

 

大家也都知道BroadcastRecei[......]

MORE

Google官方出品的Android App反编绎工具-enjarify

enjarify是由Google官方新出品的基于Python3开发,类似dex2jar的一个将Dalvik字节码转换成相对应的Java字节码开源工具,官方宣称有比dex2jar更优秀的兼容性,准确性及更高的效率。

Introduction

Enjarify is a tool for translating Dalvik bytecode to equivalent Java bytecode. This allows Java analysis tools to analyze Android applications.

Usage and installation

Enjarify is a pure python 3 application, so you can just g[……]

MORE

墨贝科技发布《2015年银行移动应用安全性调查报告》

1. 前言

继银行卡支付,网上支付(PC 端)之后,中国消费者已快速进入了移动支付时 代。据 CNNIC 发布的《第 33 次中国互联网络发展状况统计报告》数据显示:截至 2013 年 12 月,我国手机网民规模达 5 亿,较 2012 年底增加 8009 万人;手机支付用户规模达到 1.25 亿,同比增长了 126.9%,占手机网民总量的 25.1%。可见,手机支付用户的增长速度 远远高于手机网民规模的增长速度。移动支付的时代已经到来,与此同时,移动安全上的 隐患和威胁也被放大。

对银行业来说,为强化移动银行的安全环境,可以通过开展多样化的安全检测来实 现风险防控,保障客户利益。例如,可以对移动银行应用进行安全评估,发现其安全隐 患,通过升级来弥补漏洞;对移动银[……]

MORE

利用Mono for Android开发的恶意软件

近期AVL移动安全团队首次发现一款使用Mono for Android开发的恶意APP,该应用除了使用C#语言开发,还加入了Lua环境,可以执行恶意Lua脚本。

Mono for Android简介

Mono for Android由Novell推出,是业界首个使用Microsoft Visual Studio 为Android平台开发Microsoft.Net应用程序的解决方案,该程序利用C#语法能进行开发基于Android和iOS的应用。

Mono for Android由Mono内核运行时间、原始 Android应用程序接口绑定,用于开发Android应用程序的Visual Studio插件和一个包含有构建、调试和部署应用程序所需的各种工具的软件开发工具包组成。[……]

MORE

Android 9patch 图片解析堆溢出漏洞分析(CVE-2015-1532)

【前言】
日前谷歌公开了一个今年1月份更新的漏洞。这个漏洞修复了一个存在于Android 5.1版本以下图片渲染的问题,可以查看相关链接
9patch是Android上特有的一种图片格式,就是在普通的png图片的基础了增加了一些像素的边框,使之具有可随意拉伸、缩放的功能。

 

【9patch文件格式概述】
前面说到9patch文件是一种特殊png图片,我们先来看下png文件结构。


在png文件的起始处是一个被称为signature的东西,即文件签名,很多人把它叫做文件头,长度为8个字节,这8个字符的值是固定的。


在signature之后是一个chunk块序列,每个chunk块的大小都是不定的,里面存储着图像数据,chunk块的结构如下:[……]

MORE

cve-2014-7911安卓提权漏洞分析

0x00 简介

CVE-2014-7911是由Jann Horn发现的一个有关安卓的提权漏洞,该漏洞允许恶意应用从普通应用权限提权到system用户执行命令,漏洞信息与POC见(1]。漏洞的成因源于在安卓系统(<5.0)中,java.io.ObjectInputStream并未校验输入的java对象是否是实际可序列化的。攻击者因此可以构建一个不可序列化的java对象实例,恶意构建其成员变量,当该对象实例被ObjectInputStream反序列化时,将发生类型混淆,对象的Field被视为由本地代码处理的指针,使攻击者获得控制权。

0x02 漏洞分析

在Jann Horm给出的漏洞信息与POC中(1],向system_server传入的是不可序列化的andr[......]

MORE

Android密码学相关-案例wifi万能钥匙

起因

  • 考虑文章可读性未做过多马赛克,又希望不对厂商造成过多影响,故发布文章距离文章完成已经有些时日,如有出入欢迎指正.(关联漏洞厂商给了低危,想来就厂商看来此风险威胁不大)
  • 作者不擅长加解密方面,很多知识都是临时抱佛脚,现学现卖的.
  • 之前文章有反馈说理论太多容易引起生理不适,这篇直接先上案例看看效果.
  • 乌云主站此类漏洞很少,希望文章能够抛砖引玉带动大家挖掘此类漏洞.
  • 有些好案例但未到解密期限,后续可能会补上(比如签名算法和密码在native层/破解签名加密算法后编写程序fuzz后端漏洞….).

网上盛传wifi万能钥匙侵犯用户隐私默认上传用户wifi密码,导致用户wifi处于被公开的状态

有朋友在drops发文分析此软件:http://dr[……]

MORE

安卓动态调试七种武器之长生剑 – Smali Instrumentation

0x00 序

随着移动安全越来越火,各种调试工具也都层出不穷,但因为环境和需求的不同,并没有工具是万能的。另外工具是死的,人是活的,如果能搞懂工具的原理再结合上自身的经验,你也可以创造出属于自己的调试武器。因此,笔者将会在这一系列文章中分享一些自己经常用或原创的调试工具以及手段,希望能对国内移动安全的研究起到一些催化剂的作用。

目录如下:

安卓动态调试七种武器之长生剑 – Smali Instrumentation

安卓动态调试七种武器之孔雀翎 – Ida

安卓动态调试七种武器之碧玉刀 – Hooking

安卓动态调试七种武器之多情环 – Customized DVM

安卓动态调试七种武器之离别钩 – Customized Kernel[……]

MORE

安卓APP动态调试技术

0x00 前言

随着智能手机的普及,移动APP已经贯穿到人们生活的各个领域。越来越多的人甚至已经对这些APP应用产生了依赖,包括手机QQ、游戏、导航地图、微博、微信、手机支付等等,尤其2015年春节期间各大厂商推出的抢红包活动,一时让移动支付应用变得异常火热。

然后移动安全问题接憧而至,主要分为移动断网络安全和客户端应用安全。目前移动APP软件保护方面还处于初级阶段,许多厂商对APP安全认识不够深入,产品未经过加密处理,使得逆向分析者能够通过逆向分析、动态调试等技术来破解APP,这样APP原本需要账号密码的功能可以被破解者顺利绕过,使得厂商利益严重受损。

对未加壳的APP进行动态调试,通常可以非常顺利且快速地绕过一些登陆限制或功能限制。本文将以安卓APP为例,来详细[……]

MORE

常见Android Native崩溃及错误原因

一、什么是Android的C/C++ NativeCrash

Android上的Crash可以分两种:

1、Java Crash
java代码导致jvm退出,弹出“程序已经崩溃”的对话框,最终用户点击关闭后进程退出。
Logcat 会在“AndroidRuntime”tag下输出Java的调用栈。

2、Native Crash
通过NDK,使用C/C++开发,导致进程收到错误信号,发生Crash,Android 5.0之前进程直接退出(闪退) , Android 5.0之后会弹“程序已崩溃”的对话框。

Logcat 会在“debug”tag下输出dump信息:

  • 错误信号:11是信号量sigNum,SIGSEGV是信号的名字,SEGV_MAPERR是SIGSE[……]

MORE