xposed防封号模块:Xposed系列-微信自动登录

微信是我们日常最经常使用的APP,今天我们就使用Xposed来实现自动登录,在实现代码之前我们要先分析微信这个app。

1、查找微信登录窗口

1.1 我们先在雷电模拟器打开微信,进入登录界面。

xposed防封号模块:Xposed系列-微信自动登录(1)

1.2 再打开布局优化利器之 Hierarchy Viewer,通过这个利器我们可以看到微信的登录界面对应的类是:com.tencent.mm.plugin.account.ui.LoginUI。

xposed防封号模块:Xposed系列-微信自动登录(2)

2、通过jadx-gui反编译微信Apk,查找相应的代码,并查找账号、密码、登录按钮对应的字段。

xposed防封号模块:Xposed系列-微信自动登录(3)

通过代码分析,我们可以定位到:gZC为账号输入框,gZD为密码输入框,gZG为登录按钮。

xposed防封号模块:Xposed系列-微信自动登录(4)

3、监听登录界面,并设置账号与密码,并自动登录。

if(packageName.equals("com.tencent.mm")) { findAndHookMethod("com.tencent.mm.plugin.account.ui.LoginUI", loadPackageParam.classLoader, "onCreate", Bundle.class, new XC_MethodHook() { @Override protected void afterHookedMethod(XC_MethodHook.MethodHookParam param) throws Throwable { Class c = loadPackageParam.classLoader.loadClass("com.tencent.mm.plugin.account.ui.LoginUI"); //设置账号 Field uaserName = c.getDeclaredField("gZC"); uaserName.setAccessible(true); EditText uaserNameEditText = (EditText) uaserName.get(param.thisObject); uaserNameEditText.setText("weixin"); //设置密码 Field password = c.getDeclaredField("gZD"); password.setAccessible(true); EditText passwordEditText = (EditText) password.get(param.thisObject); passwordEditText.setText("123456"); //登录 Field login = c.getDeclaredField("gZG"); login.setAccessible(true); Button loginButton = (Button) login.get(param.thisObject); loginButton.callOnClick(); } }); }

xposed防封号模块:Xposed系列-微信自动登录(5)

这样就可以实现微信自动登录功能,有2个地方要注意的:

1、Hierarchy Viewer在真机上,只有root才能连接。

2、我们通过Hierarchy Viewer看到的登录界面对应的类是:com.tencent.mm.plugin.account.ui.LoginUI,但反编译出来的对应是:com.tencent.p194mm.plugin.account.p316ui.LoginUI,这个要注意下。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页