3. xposed 环境配置所需文件

4. xposed 框架刷入步骤4·1 刷入第三方 recovery:twrp (twrp-3.2.1-1-hammerhead.img)

可在 https://twrp.me/Devices/ 中查找你自己手机型号的版本。下载后将其 push 到手机 sdcard 根目录下。

a) adb reboot bootloaderb) fastboot flash recovery twrp-3.2.1-1-hammerhead.imgc) 不要重启,不要重启,不要重启,直接音量键选择进入 recovery 模式d)刷入 twrp 成功的话,此时会进入 twrp 界面

4·2 xposed 框架的刷入

紧跟上一步:点击 Install 选择安装 xposed-v89-sdk25-arm64.zip 框架。

4·3 刷入获取 root 管理工具

4·4 最后安装 XposedInstaller(可在 xposed 官网下载)

可通过 adb 命令进行安装:adb install XposedInstaller_3.1.4.apk

5. hook 模块的编写

以上环境搭建好了之后就可以编写我们的第一个 hook 模块了,我们以 Device Id 这个 app 为例进行篡改它的IMEI。

5·1 创建一个空的安卓工程

5·2 修改 AndroidManifest.xml 添加如下三个 meta-data

5·3 导入 Xposed api 库(XposedBridageApi-54.jar,xposed 官网提供下载)

XposedBridageApi.jar 复制到 app/libs 后,通过 build.gradle 引入。

5·4 编写 hook 模块的入口 MainHook 类,实现 IXposedHookLoadPackage 接口

5·5 配置文件 hook 模块主入口(告诉 xposed 从这里开始启动 hook 逻辑)

在 app/src/main/ 下创建文件夹 assets,并创建文件 xposed_init,将入口类全路径配置到该文件中。

6.开始编写 hook 代码6·1 定位要 hook 的函数

我们修改软件的 IMEI 这一行作为目标测试,修改前如下图展示:

通过反编译工具确定获取 IMEI 的 api,对其进行 hook,通过反编译工具分析后确定 acr 类的 c 方法是返回 IMEI 的值,我们 hook 此方法修改返回值达到篡改 IMEI 的目的。

6·2 完整 hook 代码如下

当然还可以通过 hook 安卓获取 IMEI 的 api 来进行篡改 IMEI(一劳永逸,此处留给感兴趣的同学自己来实现)。

public class MainHook implements IXposedHookLoadPackage {private static final String TAG = "fakeimei";//只对目标应用Device Id进行hookpublic static String needHookApp = "com.evozi.deviceid";@Overridepublic void handleLoadPackage(XC_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable {if(!loadPackageParam.packageName.equals(needHookApp)){return;}Log.d(TAG,"发现要hook的app包名:"+loadPackageParam.packageName);//load要hook的类,判断是否存Class> acrClazz = XposedHelpers.findClassIfExists("acr", loadPackageParam.classLoader);if(null!=acrClazz){Log.d(TAG,"发现要hook的app类:"+acrClazz.getSimpleName);XposedHelpers.findAndHookMethod(acrClazz, "c", Context.class, new XC_MethodHook {@Overrideprotected void beforeHookedMethod(MethodHookParam param) throws Throwable {super.beforeHookedMethod(param);//hook 之前操作:可以修改入参}@Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);//hook之后,可以修改返回值String realImei =(String) param.getResult;String fakeImei = "123456789";Log.d(TAG,"真的IMEI:"+realImei+"假的IMEI:"+fakeImei);//用假的替换真的IMEI 调用setResult方法param.setResult(fakeImei);}});}}}

6·3 编译 hook 模块打包为 apk,再勾选 hook 模块,然后选择重启设备(软重启在7.0手机上有时不生效)手机使 hook 模块生效

7. 模块生效后的 hook 效果

xposed 作为一款 hook 工具它的应用场景有很多,并不仅仅只是一个工具而已,如上所述你可以用来修改手机的设备信息,来模拟一台新的手机。

8·1 保护个人隐私信息

比如,你不想接受电商推送的广告或者垃圾短信,由于安卓权限的开放泛滥,很多 app 都会收集手机号,联系人,最近通话记录等等,甚至有些收集短信内容。每当电商狂欢节时会收到一堆的所谓的优惠券垃圾短信。你可以利用 xposed 将关键信息 hook 掉,在某些 app 获取你的敏感信息时返回假的数据或者空,拦截骚扰短信等,以此保护个人隐私。

8·2 黑灰产的利用 xposed 一键新机

利用 xposed 配合成熟的设备模拟插件,可以实现一键新机,一台手机变多台,羊毛党常用来薅电商的羊毛,目前很多电商判断一个新注册用户是否为新用户的时候,往往会采集设备的一些信息,而非单一的从注册时间来判断。羊毛党们为了降低成本,通常会采用 xposed 不定期模拟出一台新设备的方式,甚至能模拟出手机的文件路径,地理位置,电量,和通话记录信息等等。

在618,双十一电商大战中的百亿补贴,不仅吸引了众多用户,更吸引了羊毛党,无数用户在准备下单时发现商品已处售罄的状态,然而真实情况可能是已经被羊毛党捷足先登,甚至于在今年的十月一时,某个电器旗舰店因此面临倒闭的风险。

8·3 app 的去广告,模拟点击等等

某些 app 的自动点击,关注,甚至视频类 app 的去广告,某些 app 的优惠活动,抢单之类等等,都会发现 xposed 的身影。

END

xposed框架修改手机串号教程_xposed 入门之修改手机 IMEI相关推荐

  1. iPhone手机 手机设备号和手机串号imsi

    经过调研,代码实现获取iPhone手机串号是获取不到的,网上提供的一些获取手机串号都是通过第三方库来写的,使用这些库的app在app store是审核不了的,所以目前还没有办法获取手机串号imsi的. ...

  2. iPhone手机 手机设备号和手机串号imsi

    经过调研,代码实现获取iPhone手机串号是获取不到的,网上提供的一些获取手机串号都是通过第三方库来写的,使用这些库的app在app store是审核不了的,所以目前还没有办法获取手机串号imsi的. ...

  3. 如何在Java ME平台上获取手机串号IMMI

    注意:在Java ME平台上获取手机串号,在某些手机中是可行的,但是某些手机中就是无法获取的.对于即便是可以获取串号的手机来说,也仅仅限于进行了签名的应用程序才可以获得手机串号. 在诺基亚手机中,我们 ...

  4. 如何在Java ME平台上获取手机串号

    注意:在Java ME平台上获取手机串号,在某些手机中是可行的,但是某些手机中就是无法获取的.对于即便是可以获取串号的手机来说,也仅仅限于进行了签名的应用程序才可以获得手机串号. 在诺基亚手机中,我们 ...

  5. 手机串号英文简称“IMEI”

    手机串号英文简称"IMEI",存储在手机的EEPROM(俗称码片)里,每一个移动设备都对应一个唯一的IMEI.其组成结构为TAC(6位数字)+FAC(两位数字)+SNR(6位数字) ...

  6. 手机串号和SIM卡串号

    IMEI 百科名片 IMEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的"电子 串号 ...

  7. IMEI码查询[*#06#-手机串号查询]--你的手机到底是翻新机还是正品行货

    在对手机串号研究时候,找到了一个一家通过手机串号来查询你的手机具体信息的网站,现在把这个网站拿出来和大家分享.以后各位朋友们无论是买行货还是水货,新机还是二手,都可以通过这个网站来查询一下,至少可以知 ...

  8. 手机串号IMEI的国际查询网站及说明

    手机串号IMEI的国际查询网站及说明 IMEI 为TAC + FAC + SNR + SP.IMEI(International Mobile Equipment Identity)是"国际 ...

  9. php获取设备串号,检测手机串号 js, php

    //检测手机串号 public function is_IMEI($s) { $pat = '/^[0-9]{15}$/'; if(!preg_match($pat, $s)) { return fa ...

  10. 获取手机串号 版本 品牌

    判断用户是否开启某个服务 public static boolean serviceIsStart(Context cont, String className) {ActivityManager m ...

最新文章

  1. gif加文字 php,gif动态图片添加文字 gif制作软件 怎样给gif动态图片添加文字
  2. opencv 训练人脸对比_【项目案例python与人脸识别】基于OpenCV开源计算机视觉库的人脸识别之python实现...
  3. Model compatibility cannot be checked because the database does not contain model metadata
  4. Cocos2d-x编程中CCRemoveSelf与CCCallFunc系列函数不能一起使用
  5. Struts2一对多配置
  6. 假如一个程序员有社交牛逼症
  7. Flutter的AnimatedDefaultTextStyle实现文本样式的动画过渡切换效果
  8. mysql日期维表sql文件_《MySQL必知必会》笔记(SQL练习+建表语句)
  9. python实现自动提取句子中的关键字
  10. freeswitch 文件包含关系图
  11. 007 JVM堆内存划分
  12. php Class 'ZipArchive' not found
  13. 班级校园网页设计作业 静态HTML我的班级网页 DW班级网站模板下载 大学生简单班级网页作品代码 我的大学网页制作 学生班级网页设计作业
  14. Laravel -- 实战篇 自制二维码 Simple QrCode
  15. Python/Numpy 合并复数的实部和虚部
  16. bzoj-1565 植物大战僵尸
  17. npm没有权限,显示no such file or directory
  18. 展讯平台lcd频率计算
  19. HCIP实验:MPLS VPN配置
  20. 小程序坑爹玩意儿的 U.createEvent is not a function报错问题汇总

热门文章

  1. 使用爬虫自动登录QQ空间
  2. 计算机会不会取代人类英语作文,人类不能被机器人取代英语作文
  3. Java重命名文件的方法_java重命名文件(附道客巴巴文档下载方法)
  4. 金士顿100 G3U盘写保护无法格式化的解决方法记录
  5. 【Windows 10】U盘量产
  6. DDcGAN:用于多分辨率图像融合的双判别器生成对抗网络
  7. VectorDraw web library javascript Crack
  8. MPEG-2 TS流结构浅析
  9. 5种设计有效按钮的最佳做法
  10. html5在线拍照 源码,html5拍照功能实现代码(htm5上传文件)