- 博客(34)
- 资源 (4)
- 收藏
- 关注

原创 随手可得的Application对象
在Android的开发当中,Application和Context对象应该是我们接触最多的对象了,特别是Context对象。当我们在某个Activity或者Service当中时,由于它们本身就是Context的子类,因此“this”可以等价于Context对象使用。然而,在很多时候这个Context并不是那么随手可得,试想一下以下情况:需要用到Context的SDK,开发者为了使用SDK需要添加C
2015-07-16 23:50:14
8989
3

原创 Android Art Hook 技术方案
Android Art Hook 技术方案 by 低端码农 at 2015.4.13 www.im-boy.net 0x1 开始Anddroid上的ART从5.0之后变成默认的选择,可见ART的重要性,目前关于Dalvik Hook方面研究的文章很多,但我在网上却找不到关于ART Hook相关的文章,甚至连鼎鼎大名的XPosed和Cydia Substrate到目前为止也不支持ART的Hook。
2015-04-14 19:59:03
32430
7

原创 基于Android的ELF PLT/GOT符号重定向过程及ELF Hook实现(by 低端码农 2014.10.27)
基于Android的ELF PLT/GOT符号重定向过程及ELF Hook实现——by 低端码农 2014.10.27引言写这篇技术文的原因,主要有两个:其一是发现网上大部分描述PLT/GOT符号重定向过程的文章都是针对x86的,比如《Redirecting functions in shared ELF libraries》就写得非常不错。虽然其过程跟ARM非常类似,但由于C
2014-10-27 14:40:15
21007
6

原创 进击的Android注入术《一》
写在前面这个系列本来是在公司的一个分享,内容比较多,所以就把这个PPT重新组织整理成博客,希望对大家学习有所帮助。我会先以一个”短信拦截“作为例子,抛出问题,并提出了一种基于”注入“的技术方案达到提高拦截优先级,接着再重点讲解注入的技术细节。最后,我会跟大家分享一个我业余时间开发注入框架——AIM(Android IPC Manager)。当然了,这个框架跟目前的XPosed、CydiaStr
2014-08-09 14:31:40
29646
4
原创 Android BroadcastAnyWhere(Google Bug 17356824)漏洞详细分析
继上次Android的<a href="http://blog.youkuaiyun.com/l173864930/article/details/38755621">LaunchAnyWhere组件安全漏洞</a>后,最近Google在Android 5.0的源码上又修复了一个高危漏洞,该漏洞简直是LaunchAnyWhere的姊妹版——BroadcastAnyWhere。通过这个漏洞,攻击者可以以system用户的身份发送广播,这意味着攻击者可以无视一切的BroadcastReceiver组件访问限制。而且该漏洞影
2014-11-18 14:14:14
8614
1
原创 一个dumpdex的IDA插件
一个DumpDex的IDA插件源码import idaapiimport structdef dumpdex(start, len, target): rawdex = idaapi.dbg_read_memory(start, len) fd = open(target, 'wb') fd.write(rawdex) fd.close()def getdexlen
2014-10-05 14:02:41
8822
1
原创 Hook Java的的一个改进版本
Hook Java的的一个改进版本《注入安卓进程,并Hook java世界的方法》这篇好文相信大家都看这,里面所提到的方法估计大家也都试过。不过里面的所用的方法,我发现有两个可以改进的地方。改进点一:更简单地修改java方法为本地方法 ... // hook method int argsSize = calcMethodArgsSize(method->sh
2014-09-29 11:17:29
20868
9
原创 Binder Proxy技术方案
Binder Proxy技术方案作者 低端码农时间 2014.08.230x0看到有多朋友尝试通过hook系统进程system_process的ioctl,以企图截获系统的IPC通讯。这个方案的弊端是太偏低层了,当截获成功了之后,要解析其中的通讯数据是比较麻烦了. 另外,其中还涉及一堆兼容性的问题,由于不同的Android固件版本,有好些Parcelable结构的字段是有所
2014-08-23 11:39:52
8992
原创 Android LaunchAnyWhere (Google Bug 7699048)漏洞详解及防御措施
开始近日,Google修复一个组件安全的漏洞LaunchAnyWhere(Google Bug 7699048)。这个漏洞属于Intend Based提取漏洞,攻击者利用这个漏洞,可以突破了应用间的权限隔离,达到调用任意私有Activity(exported为false)的目的。该漏洞影响Android 2.3至4.3固件。漏洞分析在分析这个漏洞之前,需要先介绍两个东西。Acc
2014-08-22 13:22:14
12467
原创 Android FakeID(Google Bug 13678484) 漏洞详解
继上一次Masterkey漏洞之后,Bluebox在2014年7月30日又公布了一个关于APK签名的漏洞——FakeID,并打算在今年的Blackhack上公布更详细的细节,不过作者Jeff Forristal在文中已经给出了不少提示,另外申迪的《FakeID签名漏洞分析及利用》也做了相关介绍。由于其中涉及的知识点较多,所以有部分朋友估计还没有看明白,所以我打算写一篇更加详细漏洞分析解说。
2014-08-07 12:45:20
20428
12
原创 Android Intent Scheme URLs攻击
0x0 引言 我们知道,在Android上的Intent-based攻击很普遍,这种攻击轻则导致应用程序崩溃,重则可能演变提权漏洞。当然,通过静态特征匹配,Intent-based的恶意样本还是很容易被识别出来的。然后,最近出现了一种基于Android Browser的攻击手段——Intent scheme URLs攻击。这种攻击方式利用了浏览器保护措施的不足,通过浏览器作为桥梁间接实
2014-07-05 00:33:22
27927
原创 Android框架攻击之Fragment注入
为了适应越来越大的设备屏幕,Android在3.X后引入了Fragment概念,作用是可以在一个屏幕上同时显示多个Activity,以达到充分利用屏幕的目的。关于Fragment的使用说明,可以阅读《Android Fragment完全解析,关于碎片你所需知道的一切》。其中,Fragment有一个很强大的功能,就是可以动态加载。这样可以让整个界面的开发更加灵活,可以根据不同的场景动态加加载不同的Activity。 回到今天的主题——利用Fragment实现注入攻击。从3.X后,android工
2013-12-12 13:34:49
22035
4
翻译 SE for Android 系列之整体概要(二)
所支持的MAC服务MAC和MMAC功能概述:标准的SELinux MAC 策略是基于type enforcement(TE,即类型强制访问)/ multi-level security (MLS,即多级别安全机制),也可以理解为是一种白名单机制;Install MMAC策略中的package和signature基本单元支持通过setinfo标签,来指定应用的context(安全上上
2013-12-11 23:32:36
18681
转载 SEAndroid策略
目录(?)[-]基础知识Policy标记安全上下文SEAndroid中的安全上下文安全上下文标记的四种方式为文件系统和文件系统中的文件标记安全上下文TEType Enforcement转换transition文件和目录无限权限设备App网络IPCMLSMulti-Level Security什么是MLS为何要引入MLSMLS中的相关参量MLS对进程的
2013-12-08 00:12:47
23733
1
转载 Android Superuser 提权漏洞分析
近日,国外安全研究人员揭露多款Android平台下的授权应用管理软件存在3个安全漏洞,利用漏洞可进行root提权,详见链接:http://forum.xda-developers.com/showthread.php?t=2525552。 TSRC也对这3个Android Superuser 提权漏洞进行了分析,具体分析情况请参见下文。 一、Superuser环境变量设置漏洞
2013-12-08 00:00:40
4173
翻译 SE for Android 系列之整体概要(一)
引言由于目前关于SE for Android的介绍相对比较缺泛,因此本文的主要目的就是对整个SE for Android进行详细的介绍,也可以作为相关工具、命令行、策略构建工具以为策略文件格式的使用说明。术语先了解一下三个重要的术语,分别是SE for Android、AOSP和SEAndroid。SE for Android用于描述整套SELinu
2013-12-07 23:31:35
8645
原创 如何在Android 4.4上实现短信拦截
4.4之后,新增了一个default sms的机制,详细的描述,可以参考我的另一篇文章《谈谈4.4中的新增功能对安全类软件的影响》。简而言之,就是如果要在4.4之后实现短信拦截功能,就必须成为default sms,把所有短信相关的功能都包揽了,然后再做短信拦截。但这种做法,适配性和兼容性的工作是非常巨大的,短信、wapush(多种)、彩信、单双卡等等,相当于要求短信拦截类的软件要集成一个功能非常完善的通讯录类应用的功能。 那么,是否有一种方法,可以在不成为default sms的同时也可以对短信
2013-12-04 10:26:14
73975
34
原创 SE For Android 系列
接下来一段时间,准备把SE For Android的WIKI进行翻译,原文链接分别是http://selinuxproject.org/page/NB_SEforAndroid_1和http://selinuxproject.org/page/NB_SEforAndroid_2,同时为了让大家更好阅读和理解,我把其中的内容进行了重新整理和组合,做成三个系列,分别是:《SE For An
2013-12-03 22:58:46
2708
原创 谈谈4.4中的新增功能对安全类软件的影响
Nexus 5到手,把玩了一下,做个了简单的体验,希望对各位android的开发有所帮助。 一、 短信功能变化原来的方法依然可以感知来短信广播和数据库变化,但对无法再通过abort或者删除短信数据库的方式实现短信拦截;原来的逻辑中的“拦截逻辑”不生效,但并不会引起crash;增加了default sms机制:原有的程序需要做额外的配置才可以升级为defaul
2013-11-29 09:47:34
7309
1
原创 针对Android上的ROP攻击剖析
引言 ROP(Return-oriented programming),即“返回导向编程技术”。其核心思想是在整个进程空间内现存的函数中寻找适合指令片断(gadget),并通过精心设计返回堆栈把各个gadget拼接起来,从而达到恶意攻击的目的。构造ROP攻击的难点在于,我们需要在整个进程空间中搜索我们需要的gadgets,这需要花费相当长的时间。但一旦完成了“搜索”和“拼接”,这样
2013-11-01 14:03:14
16516
4
原创 关于ARM平台上的ROP攻击
最近在研究ROP攻击,看了不少相关的资料,接下来准备在这方面做个专题分享,我将会从下面几个方面着手:常见的堆栈溢出及攻击原理基于X86的Ret2Lib的实现原理基于ARM的Ret2ZP的实现原理攻击实例分析——攻击序列的构造
2013-10-09 09:36:42
4887
1
原创 Android 1.6+固件权限泄露分析
漏洞表现直入主题,附件有一个名为PermissionLeakage的Demo, 在PC上安装前的界面如下:从图可以看到,这个DEMO没有定义任何权限(实际也没有定义任何权限,大家可以尝试反编译看一下他的AndroidManifest.xml)。下面是DEMO的界面内容,如下:DEMO可以在零权限的情况下,完成各种手机唯一码
2013-10-02 14:45:20
2120
原创 SmartJNI —— 更简洁更高效的JNI接口封装
引入 平时我们在android NDK开发过程中,碰到最多的情况就是通过JNI回调java的API。JNI可以理解为java反射框架的本地版本。JNI所提供的原生接口,如果需要通过反射获取methodID或fieldID,需要先写出写函数和字段的签名(sign),而且调用过程极其繁琐,详细的使用说明,可以参考链接 JNI使用教程。 另外,相比之下,JAVA层下的
2013-10-02 14:42:37
6438
2
原创 基于Android RIL层实现来电拦截的技术原理(二)
原文相续,书接上一回。在《Android RIL层实现来电拦截的技术原理(一)》(以下简称《一》),已经详细分析了来电的在RIL层的逻辑走向,但缺少了一个强有力的DEMO作为验证。于是花了些时间,把DEMO也弄出来了,也验证了这个方案的技术可性性。在DEMO的开发过程中,也发现了一些在《一》中错误,等下会说明。在《一》中,通过JAVA的反射机制,取出位于CallManager中的mInco
2013-10-02 14:40:58
7110
15
原创 基于Android RIL层实现来电拦截的技术原理(一)
引入 目前市面上,Android上的防骚扰类应用非常多,比如腾讯手机管家、360手机卫士、金山手机卫士等。由于受Android OS设计框架,他们的来电拦截实现,都是通过接受com.android.phone进程所发送的广播而实现。具体的实现方案,网上有很多教程,在此不再叙述。 采用上述的方案实现来电拦截,存在一个先天性的技术缺陷——每当有来电时,都会跳
2013-10-02 14:38:44
12244
13
原创 Android上的内存分配策略优化
在Android上,其实自身有一套完善的内存管理机制。但由于我们深受Windows和塞班的毒害,每当看到手机剩余内存只有30m时,就觉得非常不爽,总是希望通过一些工具清理一下内存,而当Toast显示已经为你清理500m内存时,就会产生无比的快感。比如管家的小火箭发射,就是利用了这种用户心理。所以,那些内存清理工具在windows上是很有必要的,但在Android上,实属多此一举。至于进程的优先
2013-10-02 14:33:00
7100
原创 插件框架实现思路及原理
插件框架实现思路及原理一、技术可行性a) apk的安装处理流程i. apk会copy到/data/app;ii. 解压apk中的class.dex,并对其进行优化,获得odex(即JIT)。最后保存到/data/dalvik_cache;iii. 还有一些权限和包信息,会缓存到/data/system中的packages.list和packages.xml中。b)
2013-10-02 14:31:28
6213
原创 如何让你的进程更加“强硬”
用任何一款具备任务管理器功能的应用,尝试去关闭360安全卫士时,会发现360进程是无法被关闭的。 首先,明确一个前提——360没有roo权限的。那它是如何做到的呢? 先说一下Android上的进程的优先级。在Android上,系统为了管理内存释放有限的空间,会根据优先级杀掉一些进程,进程优先级越低的优先被清除。 从高到低依次是: fo
2013-10-02 14:28:38
4011
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人