1. 程式人生 > 其它 >個人微信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];