去除摇一摇功能(hook技术)破解防模拟器检测

某某社区摇一摇功能

App入口为:com.qufan.vp. module. LaunchActivity
思路:首次安装APP会进入一个引导页面和摇一摇检测页面,检测过后在本地产生一个Code,然后第二进入时候会找到这个code进行对比,如果检测code有数据则直接跳转到Login界面。我们要做的就是找到这个Code的判断,进行直接跳过摇一摇检测页面和引导页面。

GuideActivity.smali 为引导页面
LaunchActivity.smali 为入口页面
LoginActivity.smali 为登陆页面
在这里插入图片描述
此处判断检测是否进入引导页面还是登陆页面

修改 为:
Java代码:

    private void m() {
    
    
        if (d.a() > ai.a().c("version", 0)) {
    
    
            x.b(this, LoginActivity.class, n());
        } else {
    
    
            x.b(this, LoginActivity.class, n());
        }
}

Smali代码:

 .method private m()V
    .locals 3

    .prologue
    .line 353
    invoke-static {
    
    }, Lcom/qufan/vp/utils/ai;->a()Lcom/qufan/vp/utils/ai;

    move-result-object v0

    const-string v1, "version"

    const/4 v2, 0x0

    invoke-virtual {
    
    v0, v1, v2}, Lcom/qufan/vp/utils/ai;->c(Ljava/lang/String;I)I

    move-result v0

    .line 354
    invoke-static {
    
    }, Lcom/qufan/vp/utils/d;->a()I

    move-result v1

    if-le v1, v0, :cond_0

    .line 355
    const-class v0, Lcom/qufan/vp/module/account/module/login/LoginActivity;

    invoke-direct {
    
    p0}, Lcom/qufan/vp/module/LaunchActivity;->n()Landroid/os/Bundle;

    move-result-object v1

    invoke-static {
    
    p0, v0, v1}, Lcom/qufan/vp/utils/x;->b(Landroid/content/Context;Ljava/lang/Class;Landroid/os/Bundle;)V
    .line 367
    :goto_0
    return-void

    .line 364
    :cond_0
    const-class v0, Lcom/qufan/vp/module/account/module/login/LoginActivity;

    invoke-direct {
    
    p0}, Lcom/qufan/vp/module/LaunchActivity;->n()Landroid/os/Bundle;

    move-result-object v1

    invoke-static {
    
    p0, v0, v1}, Lcom/qufan/vp/utils/x;->b(Landroid/content/Context;Ljava/lang/Class;Landroid/os/Bundle;)V

    goto :goto_0
.end method

主要修改位置

在这里插入图片描述
去除模拟器检测功能
搜索关键词 mulator 找到一下几个
在这里插入图片描述
推测应该是向服务器发送请求然后返回判断是否是模拟器,服务器回应然后开始传送数据,是模拟器限制登陆,不是模拟器登陆成功
找到这个smali查看内容
在这里插入图片描述
这个地方应该是把设备型号等信息 还有判断是否模拟器true 或者 false 给treeMap数组
然后这个地方

在这里插入图片描述
就是请求服务器数据 进行加密发送
因为这个APP 是点击登陆或者注册按钮是提示模拟器 那可以看看这个包名是否在登陆或者注册页面加载这个包名

这个包名为:com.qufan.vp.core.net.http.retrofit.http
查找这个包名是否在注册或者登陆包名引用com.qufan.vp.core.net.http.retrofit.http

在这里插入图片描述
的确引入这个包名了 然后就是查看

在这里插入图片描述
的 EmulatorDetectUtil.a来源哪里
查找EmulatorDetectUtil.a

在这里插入图片描述
在这里插入图片描述
这里返回了一个boolean a的值 就是判断true或者false 这里调用了emulator_check 然后应该返回的就是一个判断值
我们手动修改return detect()的值 true=是模拟器 false=不是模拟器

我们直接 返回一个false 给boolean a

把return detect();改为

Detect();
Return false;

在这里插入图片描述
Smali代码如下:
在这里插入图片描述
修改完之后测试没问题 去除摇一摇检测 去除模拟器检测 成功。

此文章直供学习使用,仅供参考,禁止非法使用。

猜你喜欢

转载自blog.csdn.net/kenbo_257/article/details/112981446