改机是让自己的机型设备信息发生改变,改机主要是应用于账号的批量注册,手机群控等等。这节课的目的当然不是去教大家去变坏。师夷长技以制夷,你肯定也是有一颗成为白帽子的心的。
要么学!要么不学!学和不学之间没有中间值 不学就放弃,学就要去认真的学! --致选择
编译环境:
AndroidStudio2016.1.3
测试手机:
小米5s
测试系统:
7.1.2
一.代码编写
01.用As打开《教我兄弟学Android逆向12 编写xposed模块》最后附件里的课堂Demo
02.打开layout.xml进入text将下面的代码复制进去
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:theme="@android:style/Theme.Black.NoTitleBar"
tools:context=".MainActivity">
<TextView
android:text="TextView"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:id="@+id/tv_imei"/>
<EditText
android:id="@+id/appconfig_accounts"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="top"
android:lines="15"/>
<Button
android:id="@+id/newPhoneSet_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="一键新机"
android:textSize="18sp" />
</LinearLayout>
03.完成后点Design现在界面大概是这个样子
04.我们本节课要实现的是手动点击一键新机左上角显示出本机系统原本的imei和改机后的imei,这里我们选用SharedPreferences储存,程序刚安装完成第一次打开的时候会获取到本机的设备信息然后储存到/data/data/com.example.xposed_test/shared_prefs/oldPhone.xml中。
05.一键新机要做的是点击一键新机左上角显示出系统原本的imei和改机后的imei, 点一键新机的时候我们这里创建出新的imei的数据储存在newPhone.xml里面,然后hook的代码通过这个xml去取数据用来改机
06.关于hook的代码我们知道直接用SharedPreferences需要当前界面的content,这里我们可以在MainActivity中写一个getMainContext方法去获取到当前界面的content,然后程序启动的时候调用,最后用hook去获取到这个content这样hook代码就可以获取到SharedPreferences的存储数据。
07.打开HookMain.java编写hook代码 这里第一步去hook getMainContext方法获取content 第二步去hook getDeviceId设置成我们一键新机的值
08.最终效果,每次点击一键新机imei都会变成我们随机的值,说明新机成功。
二.总结
本节课用一键新机改系统imei的例子带你熟悉了一下改机的流程,搭建了改机的基础代码,本节课我们选用的是SharedPreferences存储,点一键新机的时候创建设备信息储存到xml中,hook的时候从xml取数据完成hook。其实也是可以把新机数据储存为json保存到手机存储目录中,json格式更方便将改机的设备信息数据上传到服务器。下节课我们将会在本节课的基础上继续hook更多的数据来完善改机。
课后作业
1.完成本节课代码的编写
2.用json存储新机数据完成对imei的hook
附件见左下角原文。
-官方论坛
www.52pojie.cn
👆👆👆