首页
论坛
专栏
课程

安卓黑科技之HOOK详解

世界美景 发布于 Android逆向工程 2017-11-03 19:17

本文带大家进入到安卓另一个世界 互联网攻防大战

Xposed框架 : 它能够让Android设备在没有修改源码的情况下修改系统中的API运行结果

可实现对java层任意HOOK   比如 修改 IMEI IMSI ICCID 这些全球唯一的身份标志

HOOK 三方应用 微信 QQ 实现抢红包 自动回复 换肤 微信朋友圈 QQ朋友圈 改变当前位置

自动添加 附近的人界面的陌生人为好友
三方应用去掉广告

深度定制rom   改变手机传感器灵敏度 功能太多了就不一一介绍了 

xposed框架缺点:   功能太强大,自然也有缺点。Xposed不仅仅是一个插件加载功能,而是它从根上Hook了Android Java虚拟机,所以它需要root,所以每次为它启用新插件APP都需要重新启动 并且无法HOOK jni层


Cydia Substrate 框架:

cydia框架的优势很明显,同时支持jni和java层的HOOK功能,缺点也很明显,兼容性不好,官网上标注最高支持安卓4.3版,但实际中测试发现一些第三方的ROM会出现一些莫名其妙的问题,而据说有人用安卓原生5.0也可以完美运行。所以是否使用CYDIA框架,要根据你目前的硬件情况来选择



计厂商也认识到了APP在JAVA环境下运行收集到的信息被篡改的几率很大,所以很多厂商把目光标准了JNI层

现在APP厂商 基本上都会把比较重要的操作放在jni层操作  比如微信    连接数据库的操作居然都放在了jni层操作 服

其实想搞你还是有办法的你加壳  我脱壳 你把操作放在so 我就用IDA 调试 你有反调试 我就绕过去  不过确实能限制很多人 而且没有一定毅力和能力 根本调试不下去


xposed框架中文站   点击打开链接

环境 一台root的手机 并装上xpsoed框架

手机root之后 在手机上直接搜索xposed框架下载就行

失败就百度自己机型所对应的 xpsoed框架


Xposed框架 作者 Github 地址点击打开链接



IDE  AndroidStudio


下面进入实战操作 本文以Xposed框架为例 毕竟我之前写了好多xpsoed文章 但估计大部分人都不知道xpsoed是什么

Xposed框架 包含以下工程:



Xposed,这个项目属于Xposed框架,其实它就是单独搞了一套xposed版的zygote。这个zygote会替换系统原生的zygote。所以,它需要由XposedInstaller在root之后放到/system/bin下。

XposedInstaller,这是Xposed的插件管理和功能控制APP,也就是说Xposed整体管控功能就是由这个APP来完成的,它包括启用Xposed插件功能,下载和启用指定插件APP,还可以禁用Xposed插件功能等。注意,这个app要正常无误得运行必须能拿到root权限。

XposedBridge。这个项目也是Xposed框架,它属于Xposed框架的Java部分,编译出来是一个XposedBridge.jar包。

XposedTools。Xposed和XposedBridge编译依赖于Android源码,而且还有一些定制化的东西。所以XposedTools就是用来帮助我们编译Xposed和XposedBridge的

1  添加依赖 

添加开发所需要的 XposedBridgeApi-54.jar 包


在AS 上 需要在build.gradle 把jar包 provided 私有化操作 不然没效果


2   配置AndroidManifest.xml文件

 第一项为true 情况下  你写的APK才是个xpsoed框架的模块  APK装到手机里 点开框架的模块

就会看到你写的模块 反之 则就是个普通的APK 框架不会检测到该应用

第二项  每次填写你所使用的jar包版本号

第三项  该模块在xposed框架中所显示的描述


3 创建 MainHook 类

注意继承 IXposedHookLoadPackage 接口


 public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
        if ("".equals(lpparam.packageName))// 程序入口  可以作用与全局 或者指定包名为某个应用
        {
            return;
        }
        readData(lpparam);

    }

4 指定当前模块入口

在main 下创建assets文件夹 并创建xposed_init.txt 文件  内容为包名加上HOOK类的 类名



介绍到这里就告一段落了 这里提供一个早期的版本 代码比较简陋 勿喷 大概改了36个函数 IMEI 手机卡国家  手机号码 无线电 品牌 设备参数 版本 SDK  主板 制造厂商等等 早期的版本根本没做适配 有些机型会不太好使 所以我把大部分代码都注释掉了 只留下了最基本的IMEI 大家有需要可以把注释解开

最后提一下 CSDN的文件上传真是服了 死活上传不上去  显示成功 但就跟死了是的 没反应了 下载界面 个人主页啥也没有 只能用百度云了 好气啊

源码下载




分享到:
最新评论 (2)
VCKFC 2018-1-5
1
非常详细...
lovedalin 6月前
2
66666
登录后即可评论