Android 动态注入
Omni-Space
专注Android, Mobile Security and AI
展开
-
Android Hook框架Xposed原理与源代码分析
Android Hook框架Xposed原理与源代码分析标签: XposedAndroidSecurityHookInjection2013-12-14 16:58 20072人阅读 评论(17) 收藏 举报 分类: Security版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[-]自己重新做了文章希转载 2016-04-04 15:51:23 · 2556 阅读 · 0 评论 -
Android 插件化原理解析——插件加载机制
上文 Activity生命周期管理 中我们地完成了『启动没有在AndroidManifest.xml中显式声明的Activity』的任务;通过Hook AMS和拦截ActivityThread中H类对于组件调度我们成功地绕过了AndroidMAnifest.xml的限制。但是我们启动的『没有在AndroidManifet.xml中显式声明』的Activity和宿主程序存在于同一个Apk中;转载 2017-06-16 06:44:51 · 724 阅读 · 0 评论 -
全能HOOK框架 JNI NATIVE JAVA ART DALVIK
OneHook目前比较流行的几个安卓HOOK方案,都有功能上的欠缺,有的不支持art模式,有的不支持jni层,有的不支持侵入HOOK。所以OneHook诞生了!这是一个同时支持ART和Dalvik两种模式,理论上支持安卓4.0.3以上所有版本,同时支持JAVA和NATIVE层,使用全局注入技术的侵入式HOOK框架。本框架不需要额外的安装,可以静态编译到自己的APP中转载 2017-06-29 14:46:29 · 3139 阅读 · 0 评论 -
ART深度探索开篇:从Method Hook谈起
Android上的热修复框架 AndFix 想必已经是耳熟能详,它的原理实际上很简单:方法替换——Java层的每一个方法在虚拟机实现里面都对应着一个ArtMethod的结构体,只要把原方法的结构体内容替换成新的结构体的内容,在调用原方法的时候,真正执行的指令会是新方法的指令;这样就能实现热修复,详细代码见 AndFix。为什么可以这么做呢?那得从 Android 虚拟机的方法调用过程说起。作为转载 2017-08-27 15:33:19 · 568 阅读 · 0 评论 -
android linker 浅析
Android 的加载/链接器linker 主要用于实现共享库的加载与链接。它支持应用程序对库函数的隐式和显式调用。对于隐式调用,应用程序的编译与静态库大致相同,只是在静态链接的时候通过--dynamic-linker /system/bin/linker 指定动态链接器,(该信息将被存放在ELF文件的.interp节中,内核执行目标映像文件前将通过该信息加载并运行相应的解释器程序linker.)转载 2017-09-28 05:10:50 · 600 阅读 · 0 评论 -
[Android]用架构师角度看插件化(3)-Replugin 需要占坑跳转?
一.占坑什么是占坑?为什么要占坑?Android插件化中,从一个插件Activity跳转到不同插件的Activity的时候,是否可以能正常跳转成功?声明Activity需要配置什么?声明Activity是需要AndroidManifest中声明,但是插件是依赖于宿主的,插件声明了Activity,但是插件的AndroidManifest信息,是无法动态配置到宿主里面的。那AndroidManife...转载 2018-04-08 12:44:39 · 645 阅读 · 0 评论 -
[Android]用架构师角度看插件化(2)-Replugin 唯一hook点
Replugin,为何我选择要研究这个的插件呢?很大的原因是因为它的介绍中说明,他只会有一个hook点。一.Hookhook点是什么?我们入门Android的时候,一定会看到过这个图,但是你确定深刻了解到这个图的吗?我们试着换着思维,用组件化的角度去看这张图,你会发现其层级依赖关系,与组件化的工程是非常类似的。(当然你看得角度不同,我只能说是类似)倘若你用插件的思想来看,我们上层的众多应用(App...转载 2018-04-08 12:46:31 · 419 阅读 · 0 评论 -
[Android]用架构师角度看插件化(1)-Replugin入门剖析
多谢一直以来的支持,组件化的内容,应该会有一段时间不再更新,一些非常关键的技术将会在我将要出版的组件化书籍中提及。组件化模块化的开发适合于中小型企业的业务叠加,和代码重用。而插件化的开发将组件化和模块的功能完全解耦出来。在国内的开发环境,插件化是用户体验和开发周期的产物,我们要做的是顺应潮流,正如我组件化&模块化&插件化演进中分析一样。Replugin,滴滴出品的VirtualAp...转载 2018-04-09 12:38:41 · 310 阅读 · 0 评论 -
replugin源码解析之replugin-plugin-gradle(插件的gradle插件)
前言replugin-plugin-gradle 是 RePlugin 插件框架中提供给replugin插件用的gradle插件,是一种动态编译方案实现。主要在插件应用的编译期,基于Transform api 注入到编译流程中, 再通过Java字节码类库对编译中间环节的 Java 字节码文件进行修改,以便实现编译期动态修改插件应用的目的。RePlugin 是一套完整的、稳定的、适合全面使用的,占坑...转载 2018-04-09 12:38:46 · 1006 阅读 · 0 评论 -
replugin源码解析之replugin-host-gradle(宿主的gradle插件)
前言replugin-host-gradle 是 RePlugin 插件框架中的宿主gradle插件,主要用于在宿主应用的编译期常规构建任务流中,插入一些定制化的构建任务,以便实现自动化编译期修改宿主应用的目的。RePlugin 是一套完整的、稳定的、适合全面使用的,占坑类插件化方案,由360手机卫士的RePlugin Team研发,也是业内首个提出”全面插件化“(全面特性、全面兼容、全面使用)的...转载 2018-04-09 12:38:50 · 615 阅读 · 0 评论 -
Android插件化原理解析——Hook机制之Binder Hook
Android系统通过Binder机制给应用程序提供了一系列的系统服务,诸如ActivityManagerService,ClipboardManager, AudioManager等;这些广泛存在系统服务给应用程序提供了诸如任务管理,音频,视频等异常强大的功能。插件框架作为各个插件的管理者,为了使得插件能够无缝地使用这些系统服务,自然会对这些系统服务做出一定的改造(Hook),使得插件的转载 2017-06-16 06:40:04 · 626 阅读 · 0 评论 -
Android插件化原理解析——Hook机制之动态代理
使用代理机制进行API Hook进而达到方法增强是框架的常用手段,比如J2EE框架Spring通过动态代理优雅地实现了AOP编程,极大地提升了Web开发效率;同样,插件框架也广泛使用了代理机制来增强系统API从而达到插件化的目的。本文将带你了解基于动态代理的Hook机制。阅读本文之前,可以先clone一份 understand-plugin-framework,参考此项目的dynamic-转载 2017-06-16 06:38:13 · 593 阅读 · 0 评论 -
研究Xposed相关一:Xposed框架的安装
[html] view plain copy说到Xposed,首先得了解Xposed是什么; 参考:http://blog.csdn.net/wxyyxc1992/article/details/17320911,我的Xposed之路就是这位大神引导的啊;在读这篇文章之前请务必仔细阅读这篇博文才能更好的明白接下来的内容;Xposed源码:https:/转载 2016-04-04 15:52:50 · 1287 阅读 · 0 评论 -
研究Xposed相关二:如何root android模拟器(android4.3.1)
从上一篇文章研究Xposed相关一:Xposed框架的安装 了解了Xposed框架的安装过程,但是Xposed的使用有一个基础前提,那就是设备的Root权限已经获取的状态下;那这一篇文章就来讲述下如何来Root android的模拟器,模拟器版本是android4.3.1;首先需要准备的是busybox以及su文件,另外和su对应的授权管理的APP,当然也可以自己编译su来不进转载 2016-04-04 15:54:27 · 964 阅读 · 0 评论 -
Frida-跨平台注入工具基础篇
官方主页githubInject JavaScript to explore native apps on Windows, Mac, Linux, iOS and Android.Hooking FunctionsModifying Function ArgumentsCalling FunctionsSending messages from a target processH转载 2016-03-28 16:34:48 · 4820 阅读 · 0 评论 -
修改源码实现全局(无需root)注入躲开注入检测
看这篇文章需要的技能1.会编译android源码(如果你不愿意编译源码,还有另外一种办法,下面我会提供)2.会使用substrate或者xposed以上2个网上资料很多我就不啰嗦了一、市面上目前的hook和注入工具市面上目前的hook有substrate,xposed,或者一些开源的自己实现的hook和注入,但是会调用一些系统api或者自身一些特征,会被加固检测到,故提供以转载 2016-12-19 08:39:34 · 5334 阅读 · 0 评论 -
利用FRIDA攻击Android应用程序(一)
前言直到去年参加RadareCon大会时,我才开始接触动态代码插桩框架Frida。最初,我感觉这玩意还有点意思,后来发现这种感觉是不对的:应该是非常有意思。您还记得游戏中的上帝模式吗?面对本地应用程序的时候,一旦拥有了Frida,也就拥有了这种感觉。在这篇文章中,我们重点介绍Frida在Android应用方面的应用。在本文的第二篇中,我们将会介绍如何利用Frida来应付Android环境下转载 2017-04-24 16:01:34 · 4304 阅读 · 2 评论 -
利用FRIDA攻击Android应用程序(二)
在本系列文章的第一篇中,我们已经对Frida的原理进行了详细的介绍,现在,我们将演示如何通过Frida搞定crackme问题。有了第一篇的内容作为基础,理论上讲这应该不是什么难事。如果你想亲自动手完成本文介绍的实验的话,请下载 OWASP Uncrackable Crackme Level 1 (APK)BytecodeViewerdex2jar当然转载 2017-04-24 16:04:39 · 1386 阅读 · 0 评论 -
热修复框架AndFix【源码阅读】
前言AndFix是阿里巴巴开源的Android热修复框架。其基本原理是利用JNI来实现方法的替换,以实现Android APP的热修复,即无需发版即可临时修复在线BUG。热修复技术有很多种,AndFix采取的native方法替换方案,优点是即时生效,无性能损耗,缺点是只能修改方法,且兼容性可能有问题。虽然其原理比较简单,但要深入理解,还需要对JNI,以及dalvik和Art转载 2017-05-29 15:55:08 · 598 阅读 · 0 评论 -
Android 插件技术实战总结
前言安卓应用开发的大量难题,其实最后都需要插件技术去解决。现今插件技术的使用非常普遍,比如微信、QQ、淘宝、天猫、空间、携程、大众点评、手机管家等等这些大家在熟悉不过的应用都在使用。插件技术可以给项目开发带来巨大的好处,比如:并行高效开发、模块解耦、解除单个dex函数不能超过65535的限制、动态更新升级、按需加载等等。本文的目的是从一个典型的复杂项目中总结出较为全转载 2017-05-19 14:19:13 · 686 阅读 · 0 评论 -
利用FRIDA攻击Android应用程序(三)
前言在我的有关frida的第二篇博客发布不久之后,@muellerberndt决定发布另一个OWASP Android crackme,我很想知道是否可以再次用frida解决。如果你想跟着我做一遍,你需要下面的工具。OWASP Uncrackable Level2 APKAndroid SDK和模拟器(我使用的是Android 7.1 x64镜像)frida转载 2017-05-19 14:41:29 · 5650 阅读 · 0 评论 -
Android代码入侵原理解析(一)
Original 2017-05-06 付超红 滴滴安全应急响应中心2017年初,在滴滴安全沙龙上,滴滴出行安全专家——付超红,针对App的攻与防进行了分享。会后大家对这个议题反响热烈,纷纷求详情求关注。现在,付超红详细整理了《Android代码入侵原理解析》,在滴滴安全应急响应中心的微信公众号开始连载。技术干货满满,敬请关注。1.代码入侵原理转载 2017-05-19 14:50:06 · 5070 阅读 · 0 评论 -
Xposed简介以及小米去桌面广告的简单实现
提起Xposed,大多数Android开发者都听过或者用过,甚至有一些开发过比较炫酷的模块。这是我前段时间在公司的分享内容,分享给大家。#最先发表于个人博客 https://guolei1130.github.io/Xposed简介Xposed框架是一款可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。项目地址:htt...转载 2018-04-07 13:20:00 · 789 阅读 · 0 评论