吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8580|回复: 13
收起左侧

[Android 求助] 微信wxid加好友代码

[复制链接]
sun4ay 发表于 2020-10-26 16:53
本帖最后由 sun4ay 于 2020-10-26 17:51 编辑

package net.wisedream.x.sayhi;

import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.Toast;

import java.util.HashMap;

import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;

import static de.robv.android.xposed.XposedHelpers.callMethod;
import static de.robv.android.xposed.XposedHelpers.callStaticMethod;
import static de.robv.android.xposed.XposedHelpers.findClass;
import static de.robv.android.xposed.XposedHelpers.newInstance;

/**
* Created by <a href="mailto:manwu91@gmail.com">monk</a> on 2019-11-27.
*/
public class XMain implements IXposedHookLoadPackage {
    static final String process = "com.tencent.mm";
    @Override
    public void handleLoadPackage(final XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
        if(process.equals(lpparam.processName)){
            HideXposed.hideModule(lpparam.classLoader);
            XposedHelpers.findAndHookMethod("com.tencent.mm.ui.LauncherUI", lpparam.classLoader,
                    "onCreateOptionsMenu", Menu.class, new XC_MethodHook() {
                        @Override
                        protected void afterHookedMethod(final MethodHookParam param) throws Throwable {
                            super.afterHookedMethod(param);
                            final Context context = (Context)param.thisObject;
                            Menu menu = (Menu)param.args[0];
                            MenuItem item = menu.add("SayHi");
                            item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
                                @Override
                                public boolean onMenuItemClick(MenuItem item) {
                                    try {
                                        String verName = context.getPackageManager().getPackageInfo("com.tencent.mm", 0).versionName;
                                        if (!isVersionSupported(verName)) {
                                            Toast.makeText(context, "SayHi不支持前版本: " + verName, Toast.LENGTH_SHORT).show();
                                            return true;
                                        }
                                    }catch (Exception e){
                                        return true;
                                    }
                                    AlertDialog.Builder builder = new AlertDialog.Builder(context).setCancelable(true);
                                    builder.setTitle("wxid:");
                                    final EditText etInput = new EditText(context);
                                    builder.setView(etInput);
                                    builder.setPositiveButton("SayHi", new DialogInterface.OnClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which) {
                                            String wxid = etInput.getText().toString().trim();
                                            Log.d("xposed", "say hi to " + wxid);
                                            sayHi(wxid, lpparam.classLoader);
                                        }
                                    });
                                    builder.show();
                                    return true;
                                }
                            });
                        }
                    });
        }
    }
    private static boolean isVersionSupported(String verName){
        return "7.0.6".equals(verName);
    }

    private static void sayHi(String wxid, ClassLoader cl){
        if(wxid==null || wxid.length()<3){
            return;
        }
        Class msgRequestClz = findClass("com.tencent.mm.modelmulti.h", cl);
        Object msgRequest = newInstance(msgRequestClz,
                wxid, // 接收者wxid
                "Hi!", // 消息
                1, // 消息type, 文本 1
                0,
                new HashMap()
        );
        Object requestSenderObj = callStaticMethod(findClass(" ,", cl), "Vs");
        callMethod(requestSenderObj, "a", msgRequest, 0);
    }

}

我想适配低版本的需要修改那些代码了

我想适配微信6.6.3可登录版https://wwa.lanzouj.com/ivrFThrce5a

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
xuejiqiao + 1 + 1 &lt;font style=&quot;vertical-align: inherit;&quot;&gt;&lt;font style=
luojingjun + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

judgecx 发表于 2020-10-26 18:54
sun4ay 发表于 2020-10-26 17:52
大牛怎么修改了我想适配微信6.6.3可登录版https://wwa.lanzouj.com/ivrFThrce5a

不用改啊 我记得有一行代码很少的 发送了点下就可以加了
 楼主| sun4ay 发表于 2020-10-26 17:52
judgecx 发表于 2020-10-26 17:17
那有这么麻烦,,,有一段很简单的代码搞得这么复杂

大牛怎么修改了我想适配微信6.6.3可登录版https://wwa.lanzouj.com/ivrFThrce5a
头像被屏蔽
二怪同学 发表于 2020-10-26 17:08
judgecx 发表于 2020-10-26 17:17
那有这么麻烦,,,有一段很简单的代码搞得这么复杂
坐久落花多 发表于 2020-10-26 17:36

这是自动加好友?
不需对方同意嘛?
ycc2020 发表于 2020-10-26 17:44
对方需要验证吗?
xuejiqiao 发表于 2020-10-26 17:57
本帖最后由 xuejiqiao 于 2020-10-26 17:59 编辑

其实两个js也是可以解决的。https://www.lanzoui.com/iJo1ghrd2uj

 楼主| sun4ay 发表于 2020-10-26 18:00
xuejiqiao 发表于 2020-10-26 17:57
其实两个js也是可以解决的。https://www.lanzoui.com/iJo1ghrd2uj

这个是hook的怎么修改了
QingYi. 发表于 2020-10-26 18:08
其实有一段代码可以直接用
 楼主| sun4ay 发表于 2020-10-26 18:18
QingYi. 发表于 2020-10-26 18:08
其实有一段代码可以直接用

自动适配低版本微信吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止回复与主题无关非技术内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-16 07:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表