xposed源码编译
‘壹’ 什么是xp框架
xp框架即Xposed框架(Xposed Framework),它是一套开源的、在Android高权限模式下运行的框架服务。
Xposed框架可以在不修改APK文件的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。
Android中一般存在两种hook:sdk hook和ndk hook。native hook的难点在于理解ELF文件与学习ELF文件,java层Hook则需要了解虚拟机的特性与java上的反射使用。
另外还存在全局hook,即结合sdk hook和ndk hook,xposed就是一种典型的全局hook框架。
Xposed框架的五个部分:
1、Xposed:
独立实现了一版Xposed版的zyogte,即生成用来替换/system/bin/app_process的可执行文件,该文件在系统启动时在init.rc中被调用,启动Zygote进程。
2、XposedBridge:
Xposed框架的Java部分,编译输出为XposedBridge.jar,为开发者提供接口。
3、android_art:
Xposed框架的C++部分,对XposedBridge的补充。
4、XposedTools:
框架编译工具,因为Xposed和XposedBridge编译依赖于Android源码,而且还有一些定制化的东西。
5、XposedInstaller:
Xposed插件管理和功能选择应用,界面如下图所示,其功能包括启动Xposed框架,下载和启用指定插件,或禁用插件等。
参考资料来源:网络-Xposed框架
‘贰’ Android逆向之手机环境配置
该篇文章主要介绍在Android逆向开始之前的 手机环境配置 。其中包括对手机进行 刷机 (根据所需的Android手机型号、Android系统版本进行刷机。这里我以nexus 5 android 6.0.1为例,其他Google系手机型号及刷其他Android版本系统都是类似的);第二个则是安装Android逆向分析 hook框架山启卜 (Xposed、frida)及一些常用的基础插件等。
一、刷机前准备
二、开始对nexus 5刷机(Android 6.0.1)
需要使用低版本的platform-tools进行替代,具体的操作步骤,可以参考以下文章
https://www.jianshu.com/p/d40db7e08e3e
三、刷入第三方recovery(TWRP)到新系统中
四、对刚刷完的Android系统进行root
五、安装Xposed框架、frida-server 及Android逆向分析中常见的插件
综上所述,该篇文章主要是使用Android官方的系统镜像进行刷机,然后安装旁如配置Android逆向所需的框架及插件。在刷机的时候,我逗穗们也可以选择自己修改编译Android系统源码,再进行刷机,定制我们自己所需的分析环境。
更多精彩内容,请扫码关注以下公众号
‘叁’ xposed框架是什么,有什么作用
Xposed框架(Xposed Framework)是一套开源的、在Android高权限模式下运行的框架服务,可以在不修改APK文件的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。
Per APP Setting(为每个应用设置单独的dpi或修改权限)、XPrivacy(防止隐私泄露)、对原生Launcher替换图标等应用或功能均基于此框架。
(3)xposed源码编译扩展阅读
在Android系统中,应用程序进程以及系统服务进程SystemServer都是由Zygote进程孵化出来的,而Zygote进程是由Init进程启动的,Zygote进程在启动时会创建一个Dalvik虚拟机实例,
每当它孵化一个新的应用程序进程时,都会将这个Dalvik虚拟机实例复制到新的应用程序进程里面去,从而使得每一个应用程序进程都有一个独立的Dalvik虚拟机实例,这也是Xposed选择替换app_process的原因。
参考资料来源:网络-Xposed框架
‘肆’ Xposed鏄浠涔堟剰镐
xposed鏄涓妗嗘灦锛岃兘涓哄畨鍗撴満鎻愪緵淇鏀圭郴缁熻屾棤闇鐪熸d慨鏀箁om镄勫姛鑳斤纴姣斿傛浛鎹㈠浘镙囱屼笉闇瑕佸弽缂栬疟锛屽苟涓斿嵏杞芥嗘灦钖庝竴鍒囱缮铡熺殑搴旂敤锛孹posed妗嗘灦鏄涓娆惧彲浠ュ湪涓崭慨鏀笰PK镄勬儏鍐典笅褰卞搷绋嫔簭杩愯(淇鏀圭郴缁)镄勬嗘灦链嶅姟锛屽熀浜庡畠鍙浠ュ埗浣滃嚭璁稿氩姛鑳藉己澶х殑妯″潡锛屼笖鍦ㄥ姛鑳戒笉鍐茬獊镄勬儏鍐典笅钖屾椂杩愪綔銆
‘伍’ Xposed是什么xposed框架怎么用
一个xda开发的框架,安装之后,让许多软件在此框架里面运行,比如绿色守护借助这个框架可以获得更多的功能,gravitybox必须在这个框架里面运行,需要root,MIUI禁止使用
‘陆’ 如何反编译systemUI.apk
ystemui.apk等特殊软件的编译与反编译步骤如下:
第一:要在你的PC上建立Java的环境,才能执行编译工作。具体设置方法可参考线刷包移植卡刷包教程。
第二:下载Apktool工具 ,下载后解压得到apktool文件夹,把里面的三个文件放在CDM模式(win+R)默认的目录下。例如,我的是Windows7 32位 我的CDM模式默认目录是C:\用户(Users)\Administrator。
第三:如果你是要编译系统文件的话,请将你要修改的rom里提取framework-res.apk,再用CMD模式“安装”。(不这样做会 导致解包错误)
安装方法:把framework-res.apk放在刚才放在C:\用户(Users)\Administrator文件夹下。cmd模式 执行apktool if framework-res.apk 这个是安装framework-res.apk
第四:准备工作都做好了,现在就可以反编译和编译了。将你要反编译的apk放在C:\用户(Users)\Administrator目录下。(你也可以用指定目录)cmd模式 执行apktool d XXXX.apk 这个就是反编译比如反编译SystemUI就执行 apktool d SystemUI.apk 就可以了(会在当前的目录下生成SystemUI的文件夹,修改就是在这个文件夹里进行)
注意:1.第三步很重要,很多人不成功就是因为没做第三步。
2.编辑回去的systemui.apk及framework-res.apk不能直接放回去(framework-res.apk放回去会导致手机不断重启systemui.apk放回去会导致手机无上栏)