微信PC Hook - 接收文本消息

一、环境

操作系统:Windows10
微信版本:2.8.0.121

二、CE附加微信

1、给微信发消息11111111,CE扫描中11111111
微信PC Hook - 接收文本消息_第1张图片

2、发送aaaaaaaa,变成aaaaaaaa的地址是我们要找的。修改type长度为100,再次发送cccccccc含有是我们要找的地址,地址05D06E26
微信PC Hook - 接收文本消息_第2张图片

三、OD找代码

1、打开OD,因为每次内容会改变,所以在dd 05D06E26下一个内存写入的断点。

2、发送一条消息,程序中断,堆栈窗口往下翻,发现“lass SyncMgr”,有价值的信息。
微信PC Hook - 接收文本消息_第3张图片
53524AAB中右键【反汇编窗口跟随】,函数位置下断点
微信PC Hook - 接收文本消息_第4张图片

3、删除内存写入断点,放程序执行完。

4、再发一条消息,程序断下来。查看寄存器的值。

dd esp的值:
微信PC Hook - 接收文本消息_第5张图片

dd [esp]的值:
微信PC Hook - 接收文本消息_第6张图片

dd [[esp]],往下翻能看到消息内容。
微信PC Hook - 接收文本消息_第7张图片

5、计算消息的偏移地址:

// 113F57F8  12081648  UNICODE "wxid_4j4mqsuzdgie22"
消息接收者:[[esp]] + 40
// 113F5820  11EC4C50  UNICODE "123456789"
消息:[[esp]] + 68
// 113F58E0  12081878  UNICODE "4a41e2c81b8aa6ac942f50d24eb2fd06"
[[esp]] + 12C
// 113F5920  11EC48C0  UNICODE "\n"
[[esp]] + 16C

6、发送一条群消息,计算出群消息的偏移地址:

// 113F57F8  12081648  UNICODE “123@chatroom"
[[esp]] + 40
// 113F5820  11EC4C50  UNICODE "123456789"
[[esp]] + 68
// UNICODE "wxid_4j4mqsuzdgie22"
[[esp]] + 118
// 113F58E0  12081878  UNICODE "4a41e2c81b8aa6ac942f50d24eb2fd06"
[[esp]] + 12C
// 113F5920  11EC48C0  UNICODE "\n\t03"
[[esp]] + 16C

四、分析Hook地址

最合适的地方应该是下面这句,有5个字节,且后面是一个常数。

53524AA3    B9 983C8054   mov ecx,WeChatWi.534C3C98

微信PC Hook - 接收文本消息_第8张图片

WeChatWin.dll+354A81 - 83 C4 04              - add esp,04 { 4 }
WeChatWin.dll+354A84 - C7 00 00000000        - mov [eax],00000000 { 0 }
WeChatWin.dll+354A8A - C7 40 04 00000000     - mov [eax+04],00000000 { 0 }
WeChatWin.dll+354A91 - C7 40 08 00000000     - mov [eax+08],00000000 { 0 }
WeChatWin.dll+354A98 - A3 8C5D8553           - mov [WeChatWin.dll+1635D8C],eax { (0A64EB88) }
WeChatWin.dll+354A9D - 50                    - push eax
WeChatWin.dll+354A9E - A1 983C8553           - mov eax,[WeChatWin.dll+1633C98] { (128) }
WeChatWin.dll+354AA3 - B9 983C8553           - mov ecx,WeChatWin.dll+1633C98 { (128) }
WeChatWin.dll+354AA8 - FF 50 08              - call dword ptr [eax+08]
WeChatWin.dll+354AAB - 8B 1D 305D8553        - mov ebx,[WeChatWin.dll+1635D30] { (1) }

无、代码实现

等分析完其他功能一起实现。

你可能感兴趣的:(Hook)