Xposed 之旅 -- 查看微信群成员入群方式
本文仅做技术交流学习使用,用于其它违法行为的与本作者无关!
最近在研究xposed写插件,发现这个真的有毒,会上瘾,写上根本停不下来。那么就来说说最近写的一个,非群主查看群成员入群方式,正常情况下,群成员如果第一次入群,都会有一条提醒消息,加群后,群主点击群头像还可以查看是谁邀请进来的,但是如果不是群主点击查看就什么都看不到。
思路分析:加群后有提醒消息,那么数据库肯定存储了这条信息,那么也可能保存了是谁邀请的,至于谁可以看,很可能只是做了一个是否是群主的开关。
微信版本 6.5.16
群主查看群成员进群方式:
如果不是群主,就看不到进群方式这一行:
老规矩,先看dump一下UI
FragmentManager misc state:
mHost=android.support.v4.app.FragmentActivity$a@2b7d084d
mContainer=android.support.v4.app.FragmentActivity$a@2b7d084d
mCurState=5 mStateSaved=false mDestroyed=false
View Hierarchy:
com.android.internal.policy.impl.PhoneWindow$DecorView{3ea37717 V.E..... ... 0,0-1152,1920}
android.widget.LinearLayout{3de6db3 V.E..... ... 0,0-1152,1920}
android.view.ViewStub{36936f70 G.E..... ... 0,0-0,0 #1020375}
android.widget.FrameLayout{95ac2e9 V.E..... ... 0,66-1152,1920}
android.support.v7.widget.ActionBarOverlayLayout{6a5907a V.E..... ... 0,0-1152,1854 #7f100108 app:id/gf}
可以确定在 ContactInfoUI 这个页面进行了展示,要找到这个类,因为微信进行了分包,6.5.16版本的微信有三个分包,可以先用jd-gui把这三个分包一起打开,然后全局搜索,确定位置后,在用 luyten打开单个包,因为jd-gui 解析的效果看着实在令人头疼,
luyten看着就舒服很多
可以确定在第三个分包,用 luyten打开查看文件
批啦啪啦,批啦啪啦,查看了一通,发现没有找到合适的入口,这个类里面就是一些参数的操作,也都不是我们想要的,无奈之下,只能全局搜索一下,"进群方式" , 这个字符串,看看哪里用到了,
找到字段名称 aee,继续搜索看看哪里用了aee,找到了这个文件
在点击alx.xml,进去看看
这个布局就有点像了,通过ADM 看一下
应该就是我们要找到
取值,赋值的时候应该会通过
contact_info_invite_source
这个名称,我们就再到 jd-gui里面搜一下这个,看看哪里用到了
k类,用luyten打开
我们发现了这个可疑的地方,Is_RoomOwner 不难理解,肯定是群主的意思,这个
booleanExtra = this.fGo.getIntent().getBooleanExtra("Is_RoomOwner", false);
获取方式在gGo中
这个gGo是 new k对象的时候传过来的,展示的时候是在 ContactInfoUI 这个 activity中,那么先看看是或否是在这个 文件中有new
最后找到了这个鬼地方, 这种写hook就要边写边测,找到关键点,就要hook一下,我的想法是既然在
booleanExtra = this.fGo.getIntent().getBooleanExtra("Is_RoomOwner", false); 这行代码中获取了是否是群主的boonean,那么我直接把这个改了会怎么样,这个改的地方当然没得说是在onCreate() 方法里面
这样就有了如下的hook代码:
findAndHookMethod("com.tencent.mm.plugin.profile.ui.ContactInfoUI", lpparam.classLoader, "onCreate", Bundle.class, new XC_MethodHook() {@Overrideprotected void beforeHookedMethod(MethodHookParam param) throws Throwable {super.beforeHookedMethod(param);Activity activity = (Activity) param.thisObject;activity.getIntent().putExtra("Is_RoomOwner",true);}@Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);}});
重启手机,发现了下面神奇的一幕,没错,我们成功了
经过测试,发现在6.5.16上如果邀请人退群了,是无法再继续点击查看邀请人的,这个也是6.5.16微信的bug,在7.0.4微信修改了这个bug,但是我们还需要hook一个函数才可以,7.0.4的判断方式有些不一样
findAndHookMethod("com.tencent.mm.storage.u", classLoader, "JR", new XC_MethodHook() {@Overrideprotected void beforeHookedMethod(MethodHookParam param) throws Throwable {super.beforeHookedMethod(param);}@Overrideprotected void afterHookedMethod(MethodHookParam param) throws Throwable {super.afterHookedMethod(param);param.setResult(true);}});
这个方法就是7.0.4用来判断是否是群主的。
总结:先通过dumpsys UI的方式先定位到UI,然后在UI中看看有没有直接能用的方法或者类,没有在跟进UI界面的字符串进行查找,如果还是没找到,还可以通过打log的方式进行分析,解析jar包的时候有一个好的解析工具很重要,解析的不好看着都会脑袋大一圈。
Xposed 之旅 -- 查看微信群成员入群方式相关推荐
- 企业微信怎么用?企业微信怎么设置入群欢迎语?
我们使用企业微信的时候,会发现添加好友时,对方会自动给我们打招呼.这是企业微信自带的一项加好友自动发送欢迎语功能,需要管理员提前在企业微信后台或App中配置. 怎么配置加好友自动打招呼欢迎语 web端 ...
- 【企微私域管家】企业微信怎么设置入群欢迎语?可以按部门发吗?
我们使用企业微信的时候,会发现添加好友时,对方会自动给我们打招呼.这是企业微信自带的一项加好友自动发送欢迎语功能,需要管理员提前在企业微信后台或App中配置. 怎么配置加好友自动打招呼欢迎语? web ...
- 微信群成员的群昵称提取与批量查询(Python实现)
wechat_group_members 此脚本不存在任何联网上传机制,可安全使用 主要原理 通过pywinauto分析微信界面元素,提取群成员昵称和用户名 程序代码 from pywinauto.a ...
- Xposed 之旅 -- 让微信低版本也可以登录
本文仅做技术交流学习使用,用于其它违法行为的与本作者无关! 最近拿到一台测试手机(魅族x4),安装的是微信6.5.16版本,登录微信,发现竟然提示版本太低无法登录,简直不友好 最近在研究xposed, ...
- 最简单实现微信活动报名功能,只要将我的微信号拉入群(续)
之前写的看这里 https://blog.csdn.net/wyyyh9458/article/details/89111065 主要还是简单的扩展了一下微信的web协议功能,实现其实比较简单.但想必 ...
- zabbix 使用企业微信群机器人,使用markdown消息艾特群成员(@群成员)发送告警消息
本例只只包含代码,具体步骤可稳步至另外一篇博客查看 https://blog.csdn.net/Huangfei10086/article/details/107713060 将上篇文章中的代码换成如 ...
- python微信群管理开禁言_Python实现微信自动欢迎新人入群(Ⅰ )
Python实现微信群欢迎机器人 今天暗恋的女孩问我能不能实现wx自动欢迎新人入群.刚开始听到这个要求,本以为会很简单,毕竟Github上有很多开源的项目,完全直接可以克隆一个,根据自己的需求进行一下 ...
- 企业微信入群欢迎语最全使用指南
自动发送客户入群欢迎语,不仅是减少员工工作量,其实更是把欢迎语作为"见面礼",告知用户这个群是做什么的,比如告知客户进群后领取福利的流程,在第一时间吸引到用户,让用户感受到社群的价 ...
- 企业微信入群欢迎语怎么设置?企业微信入群欢迎语能发多少条?
社群是企业微信搭建私域流量的重要阵地,而客户入群后的欢迎语是社群运营中非常重要的一环节.欢迎语不仅能让客户快速的对群有初步的认知,还能让我们运营人员第一时间与客户建立联系. 一.如何设置入群欢迎语 企 ...
最新文章
- 无法用计算机名只能用ip访问局域网计算机,win10无法通过计算机名访问共享但能用IP的解决步骤...
- (学)新版动态表单研发,阶段成果----1
- 微軟 ASP.NET 2.0 的 AJAX 利劍 ~ Atlas Framework
- Java实现将list数据取出并加入分隔符拼接,转换成String
- 软考-信息系统项目管理师-项目整体管理
- java代码代替xml实现图片
- python3 socketserver_Python3中的SocketServer
- 录入学员的身份证后控件焦点转移时根据身份证号码获得生日和性别
- C语言程序设计(基础)最后一次作业-- 总结报告
- 【NOI2019】 机器人 【区间dp】【插值】【下降幂多项式】【分段函数】
- python好学么数学_Python难学吗,本人数学和英语都很差,想学,都是兴趣爱好
- html5游戏开发--动静结合(二)-用地图块拼成大地图 初探lufylegend
- 常用的Linux命令组合
- 变量、变量类型与cin的基本用法详解(C++)
- 安卓优雅的svg实践绚丽效果
- 东南大学破格保研挂科_兜兜转转终入四牌楼——东南大学保研心得
- net mvc jQuery print 打印隐藏dom 除去页眉页脚
- 注册一个域名需要多少钱_购买一个域名要多少钱?
- 心跳检测,用oob实现
- 让华为小米抱团 统一推送联盟究竟是何方神圣?
热门文章
- 中国兽药企业寻找整合营销的新契机
- python极简教程_Python 极简教程(一)前言
- html手机页面左滑动空白,ios html滑动区域偶尔不显示问题,ios输入法遮挡输入框问题,关闭输入法页面出现空白问题...
- 在 css 中什么是好的注释?
- 抖音上会视频剪辑的赚钱路子有多野?
- 从共现矩阵到共现图一步到位——详解版
- 小米升级android 版本最好用,安卓 6.0 落伍啦!小米旗舰可以升级 Android 7.0
- 计算机网络题目:一个网络的IP地址为193.12.5.0/24。请写出这个网络的直接广播地址、受限广拍地址与这个网络上的特定主机地址,回送地址
- 阿里式公益有何不同?从阿里文学益读活动说起
- 互联网金融十大生意模式