ljc545w / ComWeChatRobot

PC微信机器人,实现获取通讯录,发送文本、图片、文件等消息,封装COM接口供Python、C#调用
1.64k stars 451 forks source link

发现貌似没有艾特人的功能,https://github.com/newNcy/wxbot 这是我根据这个项目自己实现的版本,目前卡在艾特上,不知道能否提供思路 #96

Closed newNcy closed 2 years ago

ljc545w commented 2 years ago

SendAtText就是发送群艾特的

newNcy commented 2 years ago

有讨论群吗,想学习下

ljc545w commented 2 years ago

我没有创群聊。有使用者创了个群,issue里应该可以找到

newNcy commented 2 years ago

有转发图片的思路吗大佬,发现发送文本和图片的地方和上层调用都断不到

newNcy commented 2 years ago

给个联系方式交流下吗

ljc545w commented 2 years ago

转发消息的地方我找过,逻辑比较复杂,所以没有动手实现。你可以从消息ID切入。

duo commented 2 years ago

转发消息的地方我找过,逻辑比较复杂,所以没有动手实现。你可以从消息ID切入。

这个我之前倒是整了,需要用到消息的 local id

    DWORD dllBaseAddress = GetWeChatWinBase();
    DWORD callAddress1 = dllBaseAddress + 0x771980;
    DWORD callAddress2 = dllBaseAddress + 0x521760;

    __asm {
        pushad;
        mov eax, 0x5000100;
        push eax;
        mov ecx, localId;
        push ecx;
        lea edi, wxId;
        sub esp, 0x14;
        mov ecx, esp;
        push edi;
        call callAddress1;
        call callAddress2;
        add esp, 0x1C;
        popad;
    }
newNcy commented 2 years ago

转发消息的地方我找过,逻辑比较复杂,所以没有动手实现。你可以从消息ID切入。

这个我之前倒是整了,需要用到消息的 local id

  DWORD dllBaseAddress = GetWeChatWinBase();
  DWORD callAddress1 = dllBaseAddress + 0x771980;
  DWORD callAddress2 = dllBaseAddress + 0x521760;

  __asm {
      pushad;
      mov eax, 0x5000100;
      push eax;
      mov ecx, localId;
      push ecx;
      lea edi, wxId;
      sub esp, 0x14;
      mov ecx, esp;
      push edi;
      call callAddress1;
      call callAddress2;
      add esp, 0x1C;
      popad;
  }

非常感谢,请问这个什么版本,我是3.7.5.23 估计不能直接用,能否给个思路

duo commented 2 years ago

转发消息的地方我找过,逻辑比较复杂,所以没有动手实现。你可以从消息ID切入。

这个我之前倒是整了,需要用到消息的 local id

    DWORD dllBaseAddress = GetWeChatWinBase();
    DWORD callAddress1 = dllBaseAddress + 0x771980;
    DWORD callAddress2 = dllBaseAddress + 0x521760;

    __asm {
        pushad;
        mov eax, 0x5000100;
        push eax;
        mov ecx, localId;
        push ecx;
        lea edi, wxId;
        sub esp, 0x14;
        mov ecx, esp;
        push edi;
        call callAddress1;
        call callAddress2;
        add esp, 0x1C;
        popad;
    }

非常感谢,请问这个什么版本,我是3.7.5.23 估计不能直接用,能否给个思路

是 master 的 3.7.0.30 这个版本 思路的话,时间有点久了,当时好像是 IDA 搜 forward 关键字然后各种断点看了...

ljc545w commented 2 years ago

我已经根据@duo 提供的偏移将转发消息加入到master分支中,具体可查看#110。