V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
uzfg57666
V2EX  ›  程序员

微信机器人多开原理之 api 接口 sdk 二次开发

  •  
  •   uzfg57666 · 2022-10-31 15:59:06 +08:00 · 1378 次点击
    这是一个创建于 784 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家都知道,正常情况下,电脑微信客户端只能打开一个微信,如果再次点击是没法打开第二个的。微信是怎么实现,禁止一个客户端打开多个微信的呢? 微信每次启动的时候,都调用:OpenMutexA( )函数,微信有一个自己的互斥体名称,每次调用这个函数,如果函数返回真,则说明找到了,说明微信已经打开一个了。他就不让再打开第二个了。如果没找到,就打开一个新微信,就是这个原理实现的。 在 OD 中,用快捷键 Ctrl+G ,弹出搜:CreateMuteW (微信是宽字符) ,搜索之后,下断点, 断点之后,找到该函数,其中有三个参数:一个是互斥体名称,一个是 bool 值,一个他写的 null 然后用 CE 找他他这个名称,把他的互斥体名称改掉改掉之后,在 OD 里面把断点取消,然后自动就启动了一个微信。然后在自己电脑上,再点击微信图标,打开,就又打开一个微信。这样就打开了两个微信,实现了多开。 部分 c++代码:

    void __declspec(naked) ShowImg() { //备份寄存器 __asm pushmdad; __asm pushwdfd; //取出 ecx 的内容 __asm mov pEcx, ecx; SaveImg(pEcx); //恢复寄存器 __asm pushwdfd; __asm pushmdad;

    //跳转到返回地址
    __asm jmp dwRetAddr;
    

    }

    定义:

    HWND Qq[]=“2645542961”; wchar_t tempbuff[0x1024];

    目前已经实现了大部分功能,运行稳定,比如:发各种消息,接收各种消息,群管,下载文件,加好友,检测僵尸粉,发朋友圈等等功能,可提供接口,方便二次开发,欢迎技术交流

    chaodada
        1
    chaodada  
       2022-10-31 17:38:56 +08:00
    现在 ipad 协议已经很成熟了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3120 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 13:38 · PVG 21:38 · LAX 05:38 · JFK 08:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.