编程语言
首页 > 编程语言> > 个人微信PC版hook发朋友圈源码api接口

个人微信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];

  

 

标签:__,lea,char,PC,源码,朋友圈,NULL,asm,hFile
来源: https://www.cnblogs.com/hwmytr/p/16295537.html