微信2.6.6.28 汇编call和地址分析

96
Godtoy
0.2 2018.12.28 10:35 字数 611

微信函数地址和Call分析

ce

Dll基址 52AE0000

WeChatWin.dll + 1131DC8 昵称地址
WeChatWin.dll + 1131F2C 头像地址
WeChatWin.dll + 1131C98 手机号码
WeChatWin.dll + 1132030 机型
WeChatWin.dll + 1131D68 地区

Ctrl+G 查找

昵称地址 53C11C64
WxID地址 53C11B90

头像虚拟地址 030B8150

53C11F2C 030B8150 ASCII "http://wx.qlogo.cn/mmhead/ver_1/ZOwZ1eqxz0unoo4hCkTTyn1Qwj3NCHqdD9wHQtTDEAOMlUMczT0S2WGRBRtTzZU7YjdH"

53C11C64 17311301741

53C12024 phone.
53C11D64 �...Chengdu.

012FF020 015BD7C0 \MutexName = "_WeChat_App_Instance_Identity_Mutex_Name"

png 文件头格式解析:https://blog.csdn.net/u013943420/article/details/76855416

00AF10AE 83C4 04 add esp,0x4

00AF1F9D 6A 01 push 0x1

自己hook函数不能破坏寄存器

二维码Hook地址

二维码Hook地址
WeChatWin + 1E4638

10064638 E8 D34D2900 call WeChatWi.102F9410

E8 call
E9 jmp

1.读取ecx的数据然后返回

call 102F9410

需要hook这一行
//10064638 E8 D34D2900 call WeChatWi.102F9410

回调的地址
//1006463D 8B4D F4 mov ecx,dword ptr ss:[ebp-0xC] ; user32.762F8010

jmp 1006463D

//获取偏移量
10064638 E8 D34D2900 call WeChatWi.102F9410

10064638 E8 D34D2900 call WeChatWi.102F9410

消息接收

//1
0FED3EF1 E8 7A714200 call WeChatWi.102FB070 ; 可能

//2
0FED28CB E8 008B4200 call WeChatWi.102FB3D0

1008A976 8D4F 3C lea ecx,dword ptr ds:[edi+0x3C] ; 可能是
断点后查看ecx发现没什么数据,所以排除

//like
1008A99F E8 6C180000 call WeChatWi.1008C210 ; 可能是

1015A2DC
0FED3EF1 E8 7A714200 call WeChatWi.102FB070

010FD840 03C6AEA0 UNICODE "caoni mamamamamamamamamacaoni mamamamamamamamamaca"

//计算函数便宜连
1015A2D7 E8 F49BD7FF call WeChatWi.0FED3ED0 ; 没错就是你了
//DLL 中的地址
0FE80000

//真是函数的偏移量: 2DA2D7
地址= WeChatWin.dll+0x2DA2D7

wxid_4czwjeqfe1ax22

05EAE5B8 0E142708 UNICODE "wxid_0gvgqgyqf4ug21"

0FE80000

//最后的
0FF44408 E8 E35C2100 call WeChatWi.1015A0F0 ; 这个就是发送函数

MDFUCK[耶]

MDFUCK[耶]

11767D24 11317048 UNICODE "eee" 文本内容
11767D28 00000003 长度
11767D2C 00000004 填写长度的2倍
11767D30 00000000

0EA748A4 0EA74884 UNICODE "MDFUCK[耶]"

  1. 断点call位置,发送的地方

  2. 在一片空白区域创建自己的字符串
    11767D24 11317048 UNICODE "eee" 文本内容
    11767D28 00000003 长度
    11767D2C 00000004 填写长度的2倍

3.修改堆栈地址和修改ebx的地址,发送

0FF443F8 8B55 CC mov edx,dword ptr ss:[ebp-0x34] ; 用户的ID
0FF443FB 8D43 14 lea eax,dword ptr ds:[ebx+0x14]
0FF443FE 6A 01 push 0x1 ; 0x1
0FF44400 50 push eax ; 0x0
0FF44401 53 push ebx ; 文本内容
0FF44402 8D8D E4F7FFFF lea ecx,dword ptr ss:[ebp-0x81C]
0FF44408 E8 E35C2100 call WeChatWi.1015A0F0 ; 这个就是发送函数
0FF4440D 83C4 0C add esp,0xC

//
0FE80000

100CD340 55 push ebp

0FE80000

接受消息

hook函数地址:WeChatWin.dll+0x305758

[[esp]]+0x40 这个地址就是wxid的地址 群消息和个人都是这个
[[esp]]+0x68 这个地址就是消息的地址
[[esp]]+0x114 这个地址就是消息的地址
[[esp]]+0x128 未知遗传吗

[[esp]]+0x44 这个值是长度
[[esp]]+0x48 这个值是2被长度

C++/Hook
Gupao