Android晋级
常生果
爱好编程,喜欢创造!
展开
-
AndroidHook机制——Hook技术原理
1. 什么是 HookHook 英文翻译过来就是「钩子」的意思,那我们在什么时候使用这个「钩子」呢?在 Android 操作系统中系统维护着自己的一套事件分发机制。应用程序,包括应用触发事件和后台逻辑处理,也是根据事件流程一步步地向下执行。而「钩子」的意思,就是在事件传送到终点前截获并监控事件的传输,像个钩子钩上事件一样,并且能够在钩上事件时,处理一些自己特定的事件。Hook 原理图...转载 2018-08-15 21:14:14 · 5824 阅读 · 0 评论 -
AndroidHook机制——浅谈
前言在测试android过程中,能对函数进行hook能帮助更加深入的进行测试,本文简单介绍了hook框架xposed和frida,从简单的小例子做了简单的演示,算是自己的学习的过程,是个入门的过程。 xposed框架 xposed,主页:http://repo.xposed.info/module/de.robv.android.xposed.installer是个开源的框架,...转载 2018-08-16 09:04:05 · 1482 阅读 · 0 评论 -
AndroidHook机制——ART
0x00 前言之前一直都是在Dalvik 虚拟机上在折腾,从Android 4.4开始开始引入ART,到5.0已经成为默认选择。而且最近看到阿里开源的 Dexposed 框架,已经提供了对于android art 模式下的 hook 支持,所以对照着android art 部分的源码和之前 liang 大牛放出了hook代码研究了一下ART模式下的hook原理,做个简单的整理。关于androi...转载 2018-08-15 22:01:35 · 1159 阅读 · 0 评论 -
AndroidHook机制——应用换肤
Android系统使用了ClassLoader机制来进行Activity等组件的加载;apk被安装之后,APK文件的代码以及资源会被系统存放在固定的目录(比如/data/app/package_name/1.apk)系统在进行类加载的时候,会自动去这一个或者几个特定的路径来寻找这个类;但是系统并不知道存在于插件中的Activity组件的信息,插件可以是任意位置,甚至是网络,系统无法提前预知,因此正...转载 2018-08-15 21:56:57 · 1207 阅读 · 0 评论 -
AndroidHook机制——Activity的启动过程的入侵拦截
这篇文章主要讲解如何利用动态代理技术Hook掉系统的AMS服务,来实现拦截Activity的启动流程。代码量不是很多,为了更容易的理解,需要掌握JAVA的反射,动态代理技术,以及Activity的启动流程。 如果对上面的知识点有些遗忘,建议按需扫读下面三篇文章,否则跳过。Java 反射 Java 动态代理机制分析及扩展,第 1 部分 深入理解Activity启动流程(三)–Activit...转载 2018-08-15 21:52:39 · 917 阅读 · 0 评论 -
AndroidHook机制——入侵监听器ClickListener
背景需求如下,在不侵入业务代码的情况下监听所有的点击事件,并记录所有的点击数,用于统计热点页面和其他一些分析工作。仔细分析了下,主要涉及到2个问题:如何获取所有的带点击事件的View对象 不改动原来的业务代码,但是在原来点击事件的业务逻辑中加入新的逻辑,如点击数上传等最大的难点是怎么在不改变onclickListener->onclick(){}内部的代码块的同时,又能插入一段新...转载 2018-08-15 21:48:06 · 1703 阅读 · 3 评论 -
AndroidHook机制——VirtualApp
VirtualApp是一个开源的Android App虚拟化引擎,允许在其中创建虚拟空间,并在这个虚拟空间中运行其他应用。通过阅读源码及动态调试,基本了解了其运行原理,在此记录。本质Android应用隔离是基于Linux系统的多用户机制实现的,即每个应用在安装时被分配了不同的Linux用户uid/gid。而在VirtualApp中,client应用(通过VirtualApp安装的应用)与h...转载 2018-08-15 21:32:24 · 2017 阅读 · 0 评论 -
AndroidHook机制——VirtualHook
对于Android应用安全研究人员来说,Xposed想必一定不陌生。作为一款流行的应用hook框架,Xposed允许对应用进行无感知的hook。许多实用工具,例如早期的脱壳工具Zjdroid,关闭证书强校验的JustTrustMe,Android恶意应用分析沙盒Cuckoo-Droid等,均是通过Xposed完成。然而,从Android 5.0时代起,DVM模式被ART模式取代,代码执行的机制进行...转载 2018-08-15 21:28:01 · 1116 阅读 · 0 评论 -
AndroidHook机制——插件化之Binder Hook
Android系统通过Binder机制给应用程序提供了一系列的系统服务,诸如ActivityManagerService,ClipboardManager, AudioManager等;这些广泛存在系统服务给应用程序提供了诸如任务管理,音频,视频等异常强大的功能。插件框架作为各个插件的管理者,为了使得插件能够无缝地使用这些系统服务,自然会对这些系统服务做出一定的改造(Hook),使得插件的开发...转载 2018-08-15 21:25:08 · 399 阅读 · 0 评论 -
AndroidHook机制——插件化之AMS&PMS
在前面的文章中我们介绍了DroidPlugin的Hook机制,也就是代理方式和Binder Hook;插件框架通过AOP实现了插件使用和开发的透明性。在讲述DroidPlugin如何实现四大组件的插件化之前,有必要说明一下它对ActivityManagerServiche以及PackageManagerService的Hook方式(以下简称AMS,PMS)。ActivityManagerSer...转载 2018-08-15 21:24:05 · 330 阅读 · 0 评论 -
AndroidHook机制——Hook动态代理实现插件化
使用代理机制进行API Hook进而达到方法增强是框架的常用手段,比如J2EE框架Spring通过动态代理优雅地实现了AOP编程,极大地提升了Web开发效率;同样,插件框架也广泛使用了代理机制来增强系统API从而达到插件化的目的。本文将带你了解基于动态代理的Hook机制。阅读本文之前,可以先clone一份 understand-plugin-framework,参考此项目的dynamic-pr...转载 2018-08-15 21:19:15 · 312 阅读 · 0 评论 -
AndroidHook机制——YAHFA
在Android Dalvik时代,最流行的Hook框架非Xposed莫属了。各种功能强大的Xposed插件极大地丰富了Android的可玩性,而对于安全研究人员来说,hook则是应用逆向工作中的一项非常有效的手段。但是,进入到ART时代后,情况逐渐发生了变化。Xposed框架对系统进行了较大的改动,因此其安装适配难度显著提高;另一方面,随着近年来热修复技术的兴起,各大国内厂商也纷纷推出了自己...转载 2018-08-16 09:03:52 · 4667 阅读 · 0 评论