首页 > 微信 > 详细

微信无痕清粉分析过程-附源码地址

时间:2020-04-01 12:47:40      阅读:122      评论:0      收藏:0      [点我收藏+]
 

一、环境

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

技术分享图片

四、最终效果图

技术分享图片

五、源码

https://github.com/KongKong20/WeChatPCHook

微信无痕清粉分析过程-附源码地址

原文:https://www.cnblogs.com/wwgk/p/12610850.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!