ITPub博客

首页 > 应用开发 > IT综合 > 企业微信PC版hook源码api接口

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

原创 IT综合 作者:sufstme 时间:2022-02-20 10:30:47 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];


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70011763/viewspace-2856511/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2021-12-21

  • 博文量
    2
  • 访问量
    1474