企业微信PC版hook源码api接口

1,267 阅读1分钟

通过hookPC企微内存调用函数,实现各种方便的功能,支持各种开发语言调用,现已实现的功能:

发各种消息,

接收各种消息,外部群内部群管理,手机号加好友,名片加好友,标签管理,开放平台openid和用户id互相转换打通官方人员管理 等等功能,无限更新中…

 

部分c++代码示例:

`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[0x1030];