XXPC无痕清粉分析过程
本帖最后由 KongKong20 于 2020-5-29 20:17 编辑一、环境
1、微信版本
2、WeChatWin.dll基址
基址=0FD30000
大小=018A2000 (25829376.)
入口=10A0AA01 WeChatWi.
名称=WeChatWi
文件版本=2.8.0.121
路径=C:\Program Files (x86)\Tencent\WeChat\WeChatWin.dll
二、观察添加好友过程
1、发起添加好友
日志
调试字串: AddFriend wxid_xxxxx
调试字串: new NetSceneVerifyUser (id:330),name:wxid_xxxxx
调试字串: opCode : 1, fromScene : 6 verifyContent: chatroomName :
调试字串: VerifyUser doSceneImpl(seqid:330)
调试字串: in send NetSceneVerifyUser(id:330)
界面
2、点击确认
日志
调试字串: new NetSceneVerifyUser (id:332),name:wxid_xxxxx
调试字串: opCode : 2, fromScene : 6 verifyContent: 我是Kong chatroomName :
调试字串: VerifyUser doSceneImpl(seqid:332)
调试字串: in send NetSceneVerifyUser(id:332)
界面
3、添加好友流程
1、请求服务器判断是不是好友:opCode : 1
2、收到服务器的回复,判断是不是好友
2、如果不是好友,弹出添加好友界面
3、最后发起好友请求:opCode : 2
4、清粉思路
1、模拟添加好友,请求好友状态
2、拦截弹出好友界面,判断好友状态
3、配合通讯录,删除好友,就能实现无痕清粉功能
三、找Call过程
1、添加好友的界面
微信界面是用Duilib,参考Duilib的微信分支,Hook创建界面,得到界面的XML文件
界面文件名:main\VerifyDialog.xml
确认按钮:okbtn
2、判断好友状态
堆栈往下翻 看到 class AddFriendHelper
IDA看下AddFriendHelper
接收服务器的响应是在:AddFriendHelper::eventProc
里面判断各种情况:好友,删除,拉黑
这里就找到了判读好友的状态了
A7:删除
A8:好友
AC:拉黑
3、请求好友状态
点击确认按钮,发送的是opCode : 2,改为opCode : 1,就变成请求好友状态
搜索字符串下断点:opCode :
添加好友,触发这里的断点,第一次先跳过,点击添加好友界面的确认按钮,再次断下
堆栈往回找看到okbtn
IDA对应的地方,可以看出这里就是对各种按钮的处理
点击确认按钮:okbtn之后触发的代码
这里就找到了请求好友状态的Call
四、最终效果图
那人样子好怪 发表于 2020-7-7 22:15
厉害呀,有成品用吗?谢谢楼主
我自己正在使用的版本,用了2年多很稳定,分享给你。蓝奏云下载链接:https://yuzl.lanzoui.com/b01cuvnxg baron123 发表于 2021-11-1 14:20
我自己正在使用的版本,用了2年多很稳定,分享给你。蓝奏云下载链接:https://yuzl.lanzoui.com/b01cuvnx ...
你发的都是要钱的
1111111 谢谢分享,呃。。是不是后面的图片挂了??还是没放上来? 有图我也看不懂,只关心安不安全{:301_993:} qaz003 发表于 2020-4-2 03:30
谢谢分享,呃。。是不是后面的图片挂了??还是没放上来?
补上照片了 回忆小马甲 发表于 2020-4-2 11:28
有图我也看不懂,只关心安不安全
原理和Wetool一样,调用wx的原生接口 楼主求更新,GitHub已star 厉害呀,有成品用吗?谢谢楼主 有软件么
KongKong20 发表于 2020-4-23 20:06
补上照片了
现在还能用吗 我实现了这个功能但是发现hook 那三个状态码地方检测一个好友会循环执行好多次!@KongKong20
页:
[1]
2