:73.3 MB : :1 :2019-10-17 17:07:54
首先我们看下他的结构
6DEDBCF8 8B55 CC |mov edx,dword ptr ss:[ebp-0x34] ; 接受的对象
传入了 接受对象的结构
0FBFB2F0 10077898 UNICODE "filehelper" 接受对象id
0FBFB2F4 0000000A id长度
0FBFB2F8 00000020 暂时不知
lea eax,dword ptr ds:[ebx+0x14] 这句代码的意思 就是 把 ebx+0x14 的地址 直接给eax
我们看看ebx+0x14 00000000 里面是0
11DA7DC0 00000000
也就是 mov eax,xxxx
11DA7DAC 11B13620 UNICODE "111" 消息内容
11DA7DB0 00000003 消息长度
11DA7DB4 00000004 未知
然后就是 消息内容的结构
6DEDBCF8 8B55 CC |mov edx,dword ptr ss:[ebp-0x34] ; 接受的对象
6DEDBCFB 8D43 14 |lea eax,dword ptr ds:[ebx+0x14] ; mov eax,xxxx
6DEDBCFE 6A 01 |push 0x1 ; 1
6DEDBD00 50 |push eax ; 0
6DEDBD01 53 |push ebx ; 消息的内容
6DEDBD02 8D8D E4F7FFFF |lea ecx,dword ptr ss:[ebp-0x81C] ; mov ecx, xxxxx
6DEDBD08 E8 D3F72100 |call WeChatWi.6E0FB4E0
6DEDBD0D 83C4 0C |add esp,0xC
然后我们来构建call
mov edx, 接受对象结构
mov eax,参数
mov ebx,消息内容结构(这里我们需给ebx传入我们的消息内容)
push 0x1
push eax
push ebx
mov ecx, 参数
call call的地址参数
add esp,0xC
这就是一个完整的call;
我们把参数都替换下接受对象结构 就是 []ebp-10
为什么是ebp-10? 因为 局部变量是从ebp-4 开始的 一次类推
这里 eax 我们直接申请一个内存地址 因为 eax=0 所以这里不需要其他的操作了ebx 是消息内容的结构
这里的ecx 我们用eax的值 因为我也没发现他有什么作用call的地址 要计算下这样就可以了。
02-04PC最新Hook源码
02-02CAll速度测试,快速调用外部函数的办法
01-25远程Hook64位任务管理器结束进程
10-15具有拖拖功能的汇编代码注入器
10-12机器人发送文本图片文件消息
10-15VEH+Dr7硬件断点无痕Hook源码
10-13C#写的PC微信加密图片解密工具
07-27PC微信逆向分析实现自动添加好友分享名片