阿里旺旺聊天发包CALL发送消息

来源:互联网 发布:阿里云acp培训 编辑:程序博客网 时间:2024/05/16 10:38

之所以需要这个CALL是因为之前在淘宝卖一个软件时需要自动发消息功能,自己有时可能不在电脑旁,客人付款后就要把软件激活码及时发送出去。模拟按键又不太准确,所以找到了这个CALL。这段CALL代码是2013年找到的,现在应该也能用,放出来供有需要的人用。

具体怎么找到这个CALL的,自己也记不清了,阿里旺旺用的是UNICODE编码,这个CALL有两个参数wchar_t*类型的名称和wchar_t*类型的内容。

我在软件中把这个CALL包装成了一个成员函数,来看一下吧:

void Widget::sendMsg(QString nameX,QString textX){    QString addr = ui->lineEdit_3->text();    if(addr.isEmpty())    {        QMessageBox::warning(this,"提醒","ESI的值为空,请先向任意人发送一条信息");    }    QString sName = "cntaobao"+nameX;    QString sText = textX;    wchar_t sNameW[200]={0};    wchar_t sTextW[2000]={0};    memset(sNameW,0x0,sizeof(wchar_t) * 200);    memset(sTextW,0x0,sizeof(wchar_t) * 2000);    sName.toWCharArray(sNameW);    sText.toWCharArray(sTextW);    wchar_t* name = sNameW;    wchar_t* text =sTextW;    DWORD ecxAddr = addr.toULong();    __asm    {        PUSHAD        push 0x0        push 0x0        push 0x1        mov eax,text        push eax        push 0x0        mov edx,name        push edx        mov ecx,ecxAddr        mov eax,dword ptr ds:[ecx+0x1DC]        push eax        mov edi,dword ptr ds:[eax]        mov edx,dword ptr ds:[edi+0x28]        call edx        POPAD    }}

void Widget::sendMsg(QString nameX,QString textX)

这就是两个参数,旺旺姓名和需要发送的内容,ESI寄存器应该是一个基址,可以用OD看一下。

程序里可以自动找到这个ESI需要的基址,用HOOK实现的。

特征码是:

QString pattern ="558BEC6AFF68\\w{8}64A1000000005083EC18535657A1\\w{8}33C5508D45F464A3000000008BF9897DE08B45108B4D08C700000000008B01508D4DE8E8";
利用正则反汇编16进制查找的。
最后放出源代码和工程,需要用VC的编译器编译,工程会生成一个WangWangHwnd.dll,利用源码中的DllLoader.exe程序这个Dll注入到阿里旺旺中即可,源码中也有数据库

的操作,那是为了之前为了记录买家数据和获取激活码用的,无视即可。

源码下载地址:

http://download.csdn.net/detail/hats8888/9649238




0 0