本文主要是介绍去除摇一摇功能(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 353invoke-static {}, Lcom/qufan/vp/utils/ai;->a()Lcom/qufan/vp/utils/ai;move-result-object v0const-string v1, "version"const/4 v2, 0x0invoke-virtual {v0, v1, v2}, Lcom/qufan/vp/utils/ai;->c(Ljava/lang/String;I)Imove-result v0.line 354invoke-static {}, Lcom/qufan/vp/utils/d;->a()Imove-result v1if-le v1, v0, :cond_0.line 355const-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 v1invoke-static {p0, v0, v1}, Lcom/qufan/vp/utils/x;->b(Landroid/content/Context;Ljava/lang/Class;Landroid/os/Bundle;)V.line 367:goto_0return-void.line 364:cond_0const-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 v1invoke-static {p0, v0, v1}, Lcom/qufan/vp/utils/x;->b(Landroid/content/Context;Ljava/lang/Class;Landroid/os/Bundle;)Vgoto :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代码如下:
修改完之后测试没问题 去除摇一摇检测 去除模拟器检测 成功。
此文章直供学习使用,仅供参考,禁止非法使用。
这篇关于去除摇一摇功能(hook技术)破解防模拟器检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!