`

Xpose深入探讨

阅读更多

【BackGround】:

随着Android设备上的隐私安全问题越来越被公众重视,恶意软件对用户隐私,尤其是对电话、短信等私密信息的威胁日益突出,各大主流安全软件均推出了自己的隐私行为监控功能,在root情况下能有效防止恶意软件对用户隐私的窃取,那么这背后的技术原理是什么?我们怎么拦截恶意软件调用短信,通讯录或者你的隐私照片?此涉及到ContentProvider那一章节,感兴趣的同学可以观看http://429899791.iteye.com/blog/2205792

调用这些API在Java层和Dalvik层(安卓虚拟机)是不好调用的,因为这些层没有提供Hook,那么只能在Native原生层的调用了。

那么看到这里肯定会想什么是Hook,ee也有这样的疑问,所以需要查的资料越来越多,那么这里由我来总结给大家:

【什么是Hook】:

android安全可以从三个层面考虑,一次是java虚拟机层,native层,还有linux kernel层,本次hook api是属于native层的。hook api之后就可以使得程序对原有系统函数的调用改为对我们自己编写的函数的调用,这既可以作为一种攻击手段,又可以在维持程序运行的情况下更新程序等等。

这样想来如果我们把打电话HOOK一下,那么调用的函数将替换成我们,然后点击拨打以后,打出的电话号码也是我们指定的号码,比如说ee想追一个男神,去攻击他的手机(当然前提是偷偷装上我们的app)那么无论他打给谁都会打到我这里,是不是功能很强大呢?其实这里讲的是网络安全,但是ee总是想去攻击别人,不过攻击与防护是相辅相成的,只有学好了怎么攻击,才会想好怎么防护。

【如何做】:讲到这里肯定会想如何做的问题:在Native层面,我认为可行的方案是对电话、短信的运行库so进行Hook(比如系统运行库\system\lib\libreference-ril.so或\system\lib\libril.so),如果注入自己的so到上述进程后,并通过dlopen()和dlsym()获取原有API地址,替换原有API地址为自己so中的API地址就可以达到Hook的目的。

那么清楚Hook是什么了么,就是“狸猫换太子下次有面试官问到你你就这样说,不过希望你能把原理讲清。

========================================================================

【关于Xpose框架】:

讲了一大堆Hook,那么Xpose框架是干什么的呢?Xposed框架是一款可以在不修改APK的情况下影响程序运行的框架服务,通过替换/system/bin/app_process程序控制zygote进程,使得app_process在启动过程中会加载XposedBridge.jar这个jar包,从而完成对Zygote进程及其创建的虚拟机的劫持。

妈妈呀,又是一堆新名词,怎么办?一个字“查”!!

Xposed框架实现Hook的原理介绍

Zygote是 Android 的核心,每运行一个 app,Zygote 就会 fork 一个虚拟机实例来运行 app,Xposed Framework 深入到了 Android 核心机制中,通过改造 Zygote 来实现一些很牛逼的功能。Zygote 的启动配置在/init.rc 脚本中,由系统启动的时候开启此进程,对应的执行文件是/system/bin/app_process,这个文件完成类库加载及一些函数调用的工作。

当系统中安装了 Xposed Framework 之后,会对 app_process 进行扩展,也就是说,Xposed Framework 会拿自己实现的 app_process 覆盖掉 Android 原生提供的 app_process 文件,当系统启动的时候,就会加载由 Xposed Framework 替换过的进程文件,并且,XposedFramework 还定义了一个 jar 包,系统启动的时候,也会加载这个包:

/data/data/de.robv.android.xposed.installer/bin/XposedBridge.jar

 

好,看到这里我大概了解了Xpose和Hook是相互协作的,首先由Xposed  FrameWork 去买通Zygote皇宫守卫,然后Hook偷偷潜入皇宫进行“狸猫换太子”见不得人的勾当。

===========================================================================================

原理就讲到这里现在我们开始做准备工作

Xposed框架运行的条件

1.RootedDevice / Emulator (已 root 的手机或者模拟器)

2.XposedInstaller (Xposed 安装程序下载)

3.HookingAndroid App (要被Hook的目标App)

 Xposed 框架安装器可以看成是个Xposed 框架的管理工具,我们要自己编写包含xpose框架的app然后添加到XposedInstaller里面进行管理,同时我们的hook代码已经写好了要对哪个app里面的哪个函数进行攻击狸猫换太子,所以你也不要妄想你能攻击到像QQ微信这样安功能强大的app所以自己编写一低档app来个自己攻击自己的实现吧。

理论课讲到这里,下一节课,开始实战!!!!

 

0
0
分享到:
评论

相关推荐

    Xpose框架的源码

    下面,我们将深入探讨Xpose框架的源码结构、工作原理以及其核心组件——SO和HOOK模块。 1. **源码结构**: Xposed框架的源码通常分为多个模块,包括核心库、接口层、安装器和模块管理器等。`Xposed-master`这个...

    xpose适配模拟器版本(1).rar

    【Xpose适配模拟器版本】是专门为在安卓模拟器上运行Xpose框架而设计的。Xpose是一款功能强大的安卓系统模块化工具,允许用户自定义和扩展安卓系统的功能,通常用于开发者测试、性能优化或者普通用户个性化设置。在...

    xpose安卓手机框架

    xpose安卓手机框架

    安卓Hook教程,里面包含了Xpose框架和实现demo

    通过逍遥模拟器安装xpose框架(有脚本可以一件安装),实现hook功能

    xpose收款平台安卓端.zip

    xpose收款平台安卓端支付宝QRHook支付宝可以通过简书上面的方法,使用url的方式来生成付款码列子alipays://platformapi/startapp?appId=09999988&actionType=toAccount&goBack=NO&amount=1.00&userId=...

    Xpose框架的入门学习

    NULL 博文链接:https://429899791.iteye.com/blog/2347353

    Xpose-开源

    综上所述,Xpose是一款强大的辅助工具,为NONMEM的使用提供了便利,尤其对于那些希望深入了解和应用非线性药代动力学/药效学模型的科研人员来说,Xpose无疑是一个值得信赖的选择。通过持续的社区支持和更新,我们...

    xpose-frontend

    Xpose客户端 欢迎使用xpose社交照片新闻应用程序。 储存库 服务器回购: : 客户端回购: : 实时链接: : 概括 作为摄影和摄影爱好者,xpose可以用同样的心态来满足用户的需求。 xpose是新闻摄影的平台,可将...

    1.3.8.1版(18-04-02)360加固保Hook

    本文将深入探讨1.3.8.1版360加固保的Hook技术及其与Xposed框架的结合使用。 1. Xposed框架简介: Xposed是一个基于Android系统级别的框架,它允许用户通过安装各种模块来改变系统的运行行为,无需修改APK文件。...

    一个基于xposed和inline hook的一代壳脱壳工具

    原理 原理就是去hook libart.so里面的art::DexFile::OpenMemory,然后再把内存中的dex写到文件中去。就是这么简单,最主要的就是hook的时机,大部分的壳都是在attachBaseContext这个方法里面去完成代码的解密。...

    xposed...xpgod.apk

    用于系统框架。搞好了可以改颜色什么的。。。还可以吧我还在用

    XposedAPI54和APK文件

    Xposed框架是一款在Android系统上广泛使用的开源框架,它允许用户通过安装各种模块来修改系统的功能,无需对系统进行根权限操作。XposedAPI54指的是该框架在Android API级别54(即Android 5.1.1)时对应的接口库,...

    Xposed.zip

    Xposed是一款强大的Android系统框架,它允许用户通过安装各种模块来改变系统的功能或者应用的行为,无需修改APK,因此在Android...通过深入研究和实践,你可以更深入地了解Android系统,实现更多个性化和创新的功能。

    【JustTrustMe】破解 app 爬虫网络问题

    JustTrustMe是Github上的一个开源工程,他是一个Xposed模块,用来禁止SSL证书验证。以下是其简介。 JustTrustMe:An xposed module that disables SSL certificate checking. This is useful for auditing an ...

    Xposed_Clipboard:监视和记录其他应用程序中电话剪贴板的使用

    这篇文章将深入探讨这一技术的实现原理和相关知识点。 首先,我们要理解剪贴板在Android系统中的工作方式。在Android中,剪贴板服务由ClipboardManager类提供,它允许应用读取和设置剪贴板的内容。这个服务是全局的...

    android开发人员岗位职责.docx

    1. 规律思维清楚,有做过 xpose,vitualXpose 插件开发优先,由逆向和具体分析过别人 app 为加分点。 2. 两年及以上 Android 应用开发经验,对 Android 的 UI、组件、性能优化、内存优化等有深入实践,有良好的编程...

    微信朋友圈一键转发插件代码

    本文将详细解析如何通过Java代码实现这一功能,并探讨其背后的技术原理和注意事项。 首先,我们要理解微信朋友圈的基本机制。微信朋友圈是微信内置的一个社交模块,用户可以发布文字、图片、视频等内容,而其他用户...

    基于xposed框架开发,有很多好玩的功能,比如:自动抢红包,防止消息撤回,朋友圈防删除,修改运动步数,自动点赞朋友圈等

    XPOSED框架是一个强大的库,可以用来实现各种有趣的功能。在这个框架的基础上,可以开发出很多好玩的应用程序,比如自动抢红包、防止消息撤回、朋友圈防删除、修改运动步数、自动点赞朋友圈等。...

    xposed全版本卸载包

    Xposed框架是一款强大的Android系统修改工具,它允许用户通过安装各种模块来定制和优化系统功能。标题中的"全版本卸载包"意味着这个压缩包包含了适用于不同Android版本的Xposed框架卸载程序,旨在帮助用户在遇到问题...

    stata数据折分或合并.pdf

    示例:xpose, clear // 将数据转置 数据折分示例 现在,我们来看一个示例,将 mydata 数据集按照性别分割成 female 和 male 两个数据集。 ```stata * 将 mydata 拆分成女生数据集 female use mydata, clear keep ...

Global site tag (gtag.js) - Google Analytics