标签:__ lea char PC 源码 朋友圈 NULL asm hFile
通过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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。