个人微信PC版hook发朋友圈源码api接口
通过hookPC个微内存调用函数,实现各种方便的功能,支持各种开发语言调用,现已实现的功能:
发各种文本,图片,小程序,视频,XML等消息,
接收各种消息,加好友,群管理,收藏信息操作,获取朋友圈列表,点赞,评论,发朋友圈 等等功能接口,无限更新中
部分c++代码示例:
Void SendFriendMsg(std::wstring wxid, std::wstring text)
{
DWORD call1 = m_WeChatWinHandle + WxSendFriendMsgCallOff;
stWxMesText asmId(wxid);
stWxMesText asmText(text);
char buf1[0x500] = { 0 };
char buf2[0x900] = { 0 };
__asm
{
lea eax, buf1;
push 1;
push eax;
lea edi, asmText;
push edi;
lea edx, asmId;
lea ecx, buf2;
call call1;
add esp, 0xC;
}
}
void __declspec(naked) ShowImg()
{
//备份寄存器
__asm pushmdad;
__asm pushwdfd;
//取出ecx的内容
__asm mov pEcx, ecx;
SaveImg(pEcx);
//恢复寄存器
__asm pushwdfd;
__asm pushmdad;
//跳转到返回地址
__asm jmp dwRetAddr;
}
void SaveImg(DWORD qrcode)
{
//获取图片长度
DWORD dwPicLen = qrcode + 0x4;
size_t cpyLen = (size_t)*((LPVOID*)dwPicLen);
//拷贝图片的数据
char PicData[0xFFF] = { 0 };
memcpy(PicData, *((LPVOID*)qrcode), cpyLen);
char szTempPath[MAX_PATH] = { 0 };
char szPicturePath[MAX_PATH] = { 0 };
GetTempPathA(MAX_PATH, szTempPath);
sprintf_s(szPicturePath, "%s%s", szTempPath, "qrcode.png");
//将文件写到Temp目录下
HANDLE hFile = CreateFileA(szPicturePath, GENERIC_ALL, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == NULL)
{
MessageBoxA(NULL, "创建图片文件失败", "错误", 0);
return;
}
DWORD dwRead = 0;
if (WriteFile(hFile, PicData, cpyLen, &dwRead, NULL) == 0)
{
MessageBoxA(NULL, "写入图片文件失败", "错误", 0);
return;
}
CloseHandle(hFile);
//完成之后卸载HOOK
UnHookQrCode(QrCodeOffset);
}
欢迎技术交流:
HWND Qq[]=“2645542961”; wchar_t tempbuff[0x1024];
浙公网安备 33010602011771号