1 Star 0 Fork 1

陈奇/ComWeChatRobot

forked from Janisa/ComWeChatRobot 
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
AddFriendByWxid.cpp 2.62 KB
一键复制 编辑 原始数据 按行查看 历史
Jack Li 提交于 2022-08-14 01:16 +08:00 . 增加发送消息http接口
#include "pch.h"
// ӺCALL1ƫ
#define AddFriendByWxidCall1Offset 0x78784540 - 0x786A0000
// ӺCALL2ƫ
#define AddFriendByWxidCall2Offset 0x78E11890 - 0x786A0000
// ӺCALL3ƫ
#define AddFriendByWxidCall3Offset 0x78E11980 - 0x786A0000
// ӺCALL4ƫ
#define AddFriendByWxidCall4Offset 0x78B03970 - 0x786A0000
// ӺѲƫ
#define AddFriendByWxidParamOffset 0x7AA068F4 - 0x786A0000
struct AddFriendByWxidParamStruct
{
DWORD fill0 = 0x0;
DWORD fill1 = 0x0;
DWORD fill2 = -0x1;
DWORD fill3 = 0x0;
DWORD fill4 = 0x0;
DWORD fill5 = 0xF;
char nullbuffer[0xC] = {0};
};
#ifndef USE_SOCKET
struct AddFriendByWxidStruct
{
wchar_t *wxid;
wchar_t *message;
};
#endif
#ifndef USE_SOCKET
BOOL AddFriendByWxidRemote(LPVOID lpParameter)
{
AddFriendByWxidStruct *afbws = (AddFriendByWxidStruct *)lpParameter;
BOOL isSuccess = AddFriendByWxid(afbws->wxid, afbws->message);
return isSuccess;
}
#endif
BOOL __stdcall AddFriendByWxid(wchar_t *wxid, wchar_t *message)
{
DWORD WeChatWinBase = GetWeChatWinBase();
DWORD AddFriendByWxidCall1 = WeChatWinBase + AddFriendByWxidCall1Offset;
DWORD AddFriendByWxidCall2 = WeChatWinBase + AddFriendByWxidCall2Offset;
DWORD AddFriendByWxidCall3 = WeChatWinBase + AddFriendByWxidCall3Offset;
DWORD AddFriendByWxidCall4 = WeChatWinBase + AddFriendByWxidCall4Offset;
DWORD AddFriendByWxidParamAddr = WeChatWinBase + AddFriendByWxidParamOffset;
WxString pwxid(wxid);
AddFriendByWxidParamStruct AddFriendParam;
char *swxid = new char[wcslen(wxid) + 1];
ZeroMemory(swxid, wcslen(wxid) + 1);
WideCharToMultiByte(CP_ACP, 0, wxid, -1, swxid, wcslen(wxid), NULL, NULL);
pwxid.fill1 = (DWORD)swxid;
pwxid.fill2 = wcslen(wxid);
wchar_t *pmessage = message ? message : (wchar_t *)L"";
BOOL isSuccess = 0x0;
__asm {
pushad;
pushfd;
mov edi, 0x6;
mov esi, 0x0;
sub esp, 0x18;
mov eax, esp;
mov dword ptr[eax], 0x0;
mov dword ptr[eax + 0x14], 0xF;
mov dword ptr[eax + 0x10], 0x0;
sub esp, 0x18;
lea eax, AddFriendParam;
mov ecx, esp;
push eax;
call AddFriendByWxidCall1;
push esi;
push edi;
mov edi, pmessage;
sub esp, 0x14;
mov ecx, esp;
push - 0x1;
mov eax, edi;
push eax;
call AddFriendByWxidCall2;
push 0x2;
lea eax, pwxid;
sub esp, 0x14;
mov ecx, esp;
push eax;
call AddFriendByWxidCall3;
mov eax, [AddFriendByWxidParamAddr];
mov eax, [eax];
mov ecx, eax;
call AddFriendByWxidCall4;
mov isSuccess, eax;
popfd;
popad;
}
return isSuccess;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/chen_q_i/ComWeChatRobot.git
git@gitee.com:chen_q_i/ComWeChatRobot.git
chen_q_i
ComWeChatRobot
ComWeChatRobot
master

搜索帮助