记录自己的Android hook经历(1)
今天呢正式开始我的Android 逆向学习之旅,当然身为菜鸡的我没有啥能耐,这就作为一个自我学习,自我记录的过程,用来记录自己的学习经历吧。大佬们轻喷。
下面开始我的第一天的学习记录:
Android hook环境搭建:尝试使用Xposed作为Android hook的框架。
工具需求:
- 夜神模拟器或者逍遥模拟器也可以
- 一个测试用的demo
下面开始第一个尝试。
打开夜神模拟器,使用多开器安装Android 5.1的系统版本,因为夜神无法安装外部的xposed,况且夜神提供了root的功能以及自带一个xposed并且已经适配好了相关的东西,所以为了省事我们不再费心思去自己找版本了。
打开多开器:
安装好后打开模拟器:
在桌面中心的那个选项中输入xposed就可以看到专门适配的xposed版本,选择安装就可以安装上了。之后点击打开。点击这个云的标志,选择安装
这个地方必须注意的是我们必须保证安装的虚拟机是5.1版本的那个否则就会出现卡开机的问题,点击安装后他会下载完成后提示给予root权限选择永远授予,之后提示重启,重启后就可以看到我们需要的这个xposed框架中已经显示绿对勾,说明我们已经成功的安装了xposed框架。
这里解释一下xposed的作用,xposed是一个再安卓8.0及以下支持root管理的一个hook框架,如果你有实体机的话也许版本已经安卓9.0及以上了,那么就需要使用edxposed或者太极一类软件进行hook,但是一般我们不使用9.0以上版本的xposed框架进行hook测试,因为(俺不会)。
那么下面我们可以开始一次特别简单的hook测试,我们可以找一个简单的hook测试用的apk文件也许只有一个两个函数的一个apk文件,记住不要带壳,否则我们还需要脱壳才可以进行hook测试,但是为了方便我们直接自己写一个简单的demo测试,下面开始编写demo:
编写demo
打开Android studio 新建一个项目使用默认设置即可,我们写一个简单的登录验证的demo,下面是我的代码,
package com.example.how_debug_hook;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
public final String userName = "root";
public final String passWord = "123456";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.button).setOnClickListener((v)->{
EditText editText1 = findViewById